【发布时间】:2019-09-20 20:30:27
【问题描述】:
我想在我的 AWS Lambda 函数(python 3.6 环境)中获取 S3 存储桶对象标签。我在本地环境中成功获取对象标签,但是当我在 AWS lambda 函数中运行它时,我收到错误:
"errorMessage": "调用GetObjectTagging操作时发生错误(AccessDenied):访问被拒绝","
虽然我已经创建了 IAM 角色,其中包含对 s3 存储桶和对象的所有写入。
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)
【问题讨论】:
-
我认为这里删除了“*”,您需要检查 Lambda 是否附加了确切的角色,如果是,请检查存储桶是否在同一个帐户中,如果是,它们是否有任何拒绝声明在里面。
标签: python amazon-web-services amazon-s3 aws-lambda boto3