问题描述
当我们希望Lamdba函数能够访问s3存储桶时,例如:
/job:localhost/replica:0/task:0/device:cpu:0
足以将S3存储桶ARN和操作添加到Lambda上的IAM策略语句中,还是需要向存储桶添加任何授予权限?
解决方法
将策略附加到Lambda角色就足够了。
政策示例:
{
"Version": "2012-10-17","Statement": [
{
"Sid": "ExampleStmt","Action": [
["s3:ListBucket","s3:GetObject","s3:PutObject","s3:DeleteObject"]
],"Effect": "Allow","Resource": [
"arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*"
]
}
]
}
,
如果Lambda与S3存储桶在同一帐户中,则可以将其添加到Lambda的IAM角色中。
如果它在单独帐户中,则需要在存储桶策略中添加Lambda函数的IAM角色Arn作为主体,然后向Lambdas IAM角色添加权限。