我无法在我的 lambda 中读取 S3。对存储桶的公共访问被阻止。这里有什么看起来不正常的东西吗? 这是 yml 的一个片段
provider:
name: aws
runtime: python3.8
lambdaHashingVersion: 20201221
iam:
role:
statements:
- Effect: 'Allow'
Action:
- 's3:GetObject'
- 's3:PutObject'
Resource: "arn:aws:s3:::my_bucket"
这是失败的代码:
def check_s3(user):
s3 = boto3.client('s3')
obj = s3.get_object(Bucket="my_bucket", Key=user)
data = json.loads(obj['Body'].read())
return data
这是 IAM 角色权限
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::my_bucket/*",
"arn:aws:s3:::my_bucket"
],
"Effect": "Allow"
}
]
}
在谷歌上搜索了很长时间尝试不同的东西后,我觉得它看起来就像每个人在看到这个错误时推荐的那样。我做错了什么?