使用Lambda将S3数据从一个AWS账户推送到另一个S3存储桶

时间:2019-06-11 03:59:40

标签: amazon-web-services amazon-s3 aws-lambda

我的用例是将数据从一个AWS账户S3存储桶连续推送到另一个AWS账户S3存储桶。跨帐户推送。

我正在使用lambda来完成这项工作。

假设在AWS账户A中,数据经常从某个来源登陆到S3存储桶中。我需要创建一个S3触发器,该触发器将在AWS账户A中调用Lambda函数,并将账户A的S3存储桶数据推送到AWS账户B中的另一个S3存储桶。

这可能吗?

1 个答案:

答案 0 :(得分:0)

是的!

首先,如果存储桶位于不同的区域,则可以使用跨区域复制,Amazon S3会自动为您完成所有操作。

如果没有,那么您建议的计划会很好。它将涉及:

  • 一个 Amazon S3事件,用于在创建新对象时触发Lambda函数
  • Lambda函数接收新对象的存储桶名称和密钥
  • 然后Lambda函数应调用CopyObject()将对象复制到另一个存储桶(在另一个帐户中)

最重要的元素是授予在Account-A中运行的Lambda函数的权限,以在Account-B中写入存储桶。可以通过以下方式完成:

  • Role-A中创建由Lambda函数使用的 IAM角色Account-A
  • Account-B中的存储桶添加存储桶策略,以允许PutObject中的Role-A(通过指定Role-A的ARN)