AWS - 调用 GetObject 操作时发生错误 (AccessDenied):拒绝访问

时间:2021-07-14 18:04:35

标签: amazon-web-services amazon-s3 aws-lambda

我无法在我的 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"
        }
    ]
}

在谷歌上搜索了很长时间尝试不同的东西后,我觉得它看起来就像每个人在看到这个错误时推荐的那样。我做错了什么?

0 个答案:

没有答案