【发布时间】:2018-06-06 21:32:57
【问题描述】:
在我的 CloudFormation 模板中,我有一个 lambda,其代码位于 S3:
MyLambda:
Properties:
Code:
S3Bucket: bucket-name
S3Key: filename.zip
Handler: handler
MemorySize: !Ref 'LambdaMemorySize'
Role: arn:aws:iam::XXXXXXXXXXX:role/my-role
Runtime: python3.6
Timeout: !Ref 'LambdaTimeout'
Type: AWS::Lambda::Function
如果我从 AWS 控制台运行它,那么它工作正常。但是,当我从 AWS CLI(或 boto)运行它时,它不起作用,所以我想我的用户凭证中一定有一些东西会阻止它工作。但是我的 IAM 用户具有管理员访问权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
错误信息:
Your access has been denied by S3, please make sure your request credentials have permission to GetObject for bucket-name/filename.zip.
S3 Error Code: AccessDenied. S3 Error Message: Access Denied (Service: AWSLambda; Status Code: 403; Error Code: AccessDeniedException; Request ID: xxxxx)
【问题讨论】:
-
S3 存储桶是否归您所有?如果没有,您需要在这些存储桶中进行“公开阅读”。
-
检查 S3 存储桶策略。
-
@Phoenix 不想公开
-
验证您的策略和 ACL。
标签: amazon-web-services amazon-s3 aws-lambda amazon-cloudformation