S3跨帐户设置

问题描述 投票:0回答:1

我在AWS中有两个帐户,例如帐户A和帐户B。在帐户A中,每当我在S3存储桶中上传对象时,它应自动加载到帐户B,S3存储桶中。谁能建议我如何使用python编写Lambda函数以及为此可以使用哪个IAM角色。?

amazon-web-services amazon-s3 aws-lambda amazon-iam
1个回答
0
投票

看来您的要求是:

  • Account-A中创建AWS Lambda函数
  • Lambda函数应该能够创建Amazon S3对象Bucket-B拥有的存储桶(Account-B)中

最简单的设置是:

  • 为Lambda函数创建IAM角色
  • 该角色应具有对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中进行访问。

© www.soinside.com 2019 - 2024. All rights reserved.