我正在使用Serverless将我的Lambda函数部署到AWS,其中之一读取S3对象。我在serverless.yml
文件中设置了以下权限:
iamRoleStatements:
- Effect: Allow
Action:
- s3:ListBucket
- s3:GetObject
Resource: "arn:aws:s3:::myBucket"
但是,在部署API之后,当我尝试访问Serverless给我的端点时,我得到了403。我还进入AWS控制台中的IAM,检查了适用区域和S3的lambdaRole,我看到了一个“限制:列表”的“访问级别”。我的理解是,根据允许的操作,我也应该在此处看到“阅读”。
有人能指出我所缺少的方向吗?
答案 0 :(得分:3)
GetObject
操作对对象而非桶进行操作,因此您的策略不正确。请尝试以下操作:
iamRoleStatements:
- Effect: Allow
Action:
- s3:ListBucket
Resource: "arn:aws:s3:::myBucket"
- Effect: Allow
Action:
- s3:GetObject
Resource: "arn:aws:s3:::myBucket/*"