当前位置: 首页 > 知识库问答 >
问题:

Lambda函数:Amazon S3 API获取桶标记获取权限错误

印劲
2023-03-14

我想在我的AWS Lambda函数(python 3.6环境)中获得S3桶对象标签。我在本地环境中成功获得对象标签,但当我在AWS lambda函数中运行时,我收到错误:

“errorMessage”:“调用GetObjectTagging操作时发生错误(AccessDenied):拒绝访问”

虽然我已经用s3桶和对象上的所有写入创建了IAM角色。

IAM角色策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "elastictranscoder:*",
                "s3:*"
            ],
            "Resource": "*"
        }
    ]
} 

代码是:

python
import boto3

s3 = boto3.client('s3')
bucket = 'bucket_name'
key = 'SampleVideo_360x240_2mb (1)----swae.mp4'
response = s3.get_object_tagging(
        Bucket=bucket,
         Key=key,
     )
tag_set = response.get("TagSet")
print(tag_set)

共有1个答案

卫嘉言
2023-03-14

为了测试这种情况,我做了以下操作:

  • 使用您作为内联策略提供的权限创建了IAM角色

Lambda代码位于一个函数中:

import boto3

def lambda_handler(event, context):

    s3 = boto3.client('s3')
    bucket = 'my-bucket'
    key = 'foo.jpg'
    response = s3.get_object_tagging(
            Bucket=bucket,
             Key=key,
         )
    tag_set = response.get("TagSet")
    print(tag_set)

我将函数作为测试调用,它成功运行并生成以下输出:

START RequestId: 9e21b6b5-5456-4ec7-9488-0c11c1d52fca Version: $LATEST
[{'Key': 'cheese', 'Value': 'gruyere'}]
END RequestId: 9e21b6b5-5456-4ec7-9488-0c11c1d52fca
REPORT RequestId: 9e21b6b5-5456-4ec7-9488-0c11c1d52fca  Duration: 1218.70 ms    Billed Duration: 1300 ms    Memory Size: 128 MB Max Memory Used: 60 MB  

所以,对我来说一切都很好!

 类似资料:
  • 接口说明 获取用户权限 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /permissions/api/team/user/v1.0.0/getUserPermissionsList 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN 响应字段说

  • 接口说明 获取用户权限 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /permissions/api/team/user/v1.0.0/getUserPermissions 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN 响应字段说明 无

  • 接口说明 获取用户权限 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /permissions/api/team/user/v1.0.0/

  • 接口说明 获取用户权限 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /permissions/api/team/user/v1.0.0/

  • 接口说明 获取权限列表 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/power/1.0.0/query 是否需要登录 是 请求字段说明 无 响应字段说明 参数 类型 说明 id String 权限编号 name String 权限名称 url String 权限对应的页面路径 createtime String 权限创

  • 我正在尝试在我的Android10(API29)设备上获得MANAGE_EXTERNAL_STORAGE权限。 https://developer.android.com/training/data-storage/manage-all-files 清单: 主要活动: 但我怎样才能得到那个许可呢?