首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lambda函数: Amazon S3 API获取桶标记获取权限错误

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

Stack Overflow用户
提问于 2019-05-02 10:25:33
回答 1查看 1.9K关注 0票数 0

我希望在我的AWS函数(python3.6环境)中获得S3桶对象标记。我正在本地环境中成功地获得对象标记,但是当我在AWS函数中运行它时,我会收到以下错误:

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

尽管我已经创建了包含s3桶和对象的所有写操作的IAM角色。

IAM作用政策:

代码语言:javascript
复制
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "elastictranscoder:*",
                "s3:*"
            ],
            "Resource": "*"
        }
    ]
} 

守则是:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2019-05-05 05:55:51

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

  • 使用作为内联策略提供的权限创建IAM角色
  • 用您的代码创建了一个AWS Lambda函数(但使用了我自己的桶和键)

Lambda代码位于一个函数中:

代码语言:javascript
复制
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)

我以测试的形式调用了该函数,它成功地运行并产生了以下输出:

代码语言:javascript
复制
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  

所以,对我来说一切顺利!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55950396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档