我正在尝试使用lambda函数交叉帐户从S3存储桶中读取对象,我已经为aws lambda添加了基于资源的策略来访问s3存储桶。
但是当我测试我的lambda函数时,我看到访问被拒绝错误 lambda函数IAM角色对s3资源具有完全访问权限
答案 0 :(得分:1)
您的情况似乎是:
您需要授予帐户B的访问权限。 Lambda资源策略不起作用,因为它位于帐户A中(因此无法授予对帐户B中资源的访问权限)。
您只需在存储桶上使用存储桶策略即可授予对Lambda函数使用的角色的访问权限。该政策看起来类似于:
{
"Id": "Policy1",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GrantAccessToRole",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*",
"Principal": {
"AWS": [
"arn:aws:iam::1234567890:role/my-role"
]
}
}
]
}
修改策略以提供所需的访问权限(例如ListBucket)。
查看角色时,角色的ARN在IAM控制台中可见。