Lambda函数无法从S3读取



帐户A中的S3桶具有以下策略

sid:whitelistIp
Effect: Deny
Principal: *
Resource : 
arn:aws:s3:::my-s3
arn:aws:s3:::my-s3/*
Condition 
NotIpaddress
awsSourceIP
[  list of Ips ]
StringsNotEqual 
awsourcevpce 
[ List of VpceIds ]
Sid: DenyNonSSLTraffic
Effect: Deny
Principal: *
Resource : 
arn:aws:s3:::my-s3
Condition 
Bool
"aws:secureTransport": "false"
Sid: AllowspecificIamRoles
Effect: Allow
Principal: *
Action:
s3:ListBucket
s3:DeleteObject
s3:GetObject
s3:PutObject
Resource : 
arn:aws:s3:::my-s3
arn:aws:s3:::my-s3/*
Condition:
StringsLike:
awsuserId: [ List of userIds ]

现在从帐户B我试图从lambda函数读取对象。

s3_client.list_objects()此方法有效

但是当我使用s3_client.download_file()时,它会得到Access Denied error

我已经验证Lambda有足够的权限从S3读取。

还有一个问题,如果我给桶策略仍然我必须指定ACL跨帐户访问?

如果你的lambda函数运行到VPC中,那么你必须创建一个端点来访问s3

创建s3端点

选择s3网关并附加您的vpc

添加端点路由路由表。

现在可以读取s3对象了。

相关内容

  • 没有找到相关文章

最新更新