我有两个AWS账户A和B,并且我处于设置之下
帐户A:S3存储桶
帐户B:托管需要从帐户A访问S3存储桶的Lambda
我在帐户B中使用以下策略创建了IAM角色,并将其附加到Lambda
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::dest-bucket-name/*"
},
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::dest-bucket-name/*"
}
]
}
我还将存储桶策略(如下)与帐户A中的S3存储桶相关联
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AccountBID:role/lambda-role"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::dest-bucket-name/*"
}
]
}
VPC端点已正确配置。 Lambda请求从存储桶下载工件的请求正在超时,有人可以指出我的错误之处。
答案 0 :(得分:0)
需要注意的两件事:
您确定您的lambda可以成功承担职责吗?
s3:ListBucket
是应用于存储桶的权限。 arn:aws:s3:::dest-bucket-name/*
与存储桶中的所有对象匹配。尝试将ListBucket
分别应用于arn:aws:s3:::dest-bucket-name
。 (通常,该模式有一个针对 object 操作的策略块,而另一个针对 bucket 操作的策略块。)