我在AWS中有两个帐户,例如帐户A和帐户B。在帐户A中,每当我在S3存储桶中上传对象时,它应自动加载到帐户B,S3存储桶中。谁能建议我如何使用python编写Lambda函数以及为此可以使用哪个IAM角色。?
看来您的要求是:
Account-A
中创建AWS Lambda函数Bucket-B
拥有的存储桶(Account-B
)中最简单的设置是:
PutObject
中的Bucket-B
(甚至是任何存储桶)的许可,例如:{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:PutObject"
],
"Resource":"arn:aws:s3:::bucket-b/*"
}
]
}
Bucket-B
(在Account-B
中,添加一个存储桶策略,该策略允许上述IAM角色写入存储桶:{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"PublicRead",
"Effect":"Allow",
"Principal": "arn:aws:iam::<ACCOUNT-B>:role/lambda-role",
"Action":["s3:PutObject"],
"Resource":["arn:aws:s3:::bucket-b/*"]
}
]
}
Bucket-B
时,请确保Lambda函数设置为ACL='bucket-owner-full-control'
,以便将所有权转移到Account-B
上述方法不需要在Account-B
中扮演角色,因为Bucket-B
上的存储桶策略允许通过IAM角色从Account-A
中进行访问。