amazon-web-services - 将文件从一个 AWS 账户中的 S3 存储桶复制到另一个 AWS 账户
问题描述
另一个 AWS 账户拥有一个 S3 存储桶,其中包含文件列表。我需要将文件复制到我的 S3 存储桶。为了做到这一点,我想做两件事:
- 在另一个帐户中添加一个 S3 存储桶事件,这将触发 lambda 以复制我的 aws 帐户中的文件。
- 应该向我的 lambda 提供权限(可能通过假定的角色)以复制文件。
为了实现 1 和 2,我必须执行哪些步骤?
解决方案
复制文件的基本要求很简单:
- 在源 S3 存储桶上创建触发 Lambda 函数的事件
- Lambda 函数将对象复制到另一个存储桶
复杂的因素是需要跨账户复制。
两种情况是可能的:
- 选项 1(“拉取”):账户 A 中的存储桶触发账户 B 中的 Lambda。这可以通过AWS Lambda(Lambda 函数策略)的基于资源的策略 - AWS Lambda来完成。您需要通过命令行而不是管理控制台配置触发器。然后,账户-A 中的存储桶上的存储桶策略需要允许
GetObject
账户-B 中的 Lambda 函数使用的 IAM 角色访问。 - 选项 2(“推送”):账户 A 中的存储桶触发账户 A(同一账户)中的 Lambda。Account-B 中存储桶的 Bucket 策略需要允许
PutObject
Account-A 中的 Lambda 函数使用的 IAM 角色访问。确保它使用 ACL 保存对象,bucket-owner-full-control
以便 Account-B“拥有”复制的对象。
如果可能的话,我会推荐 Push 选项,因为一切都在一个帐户中(除了存储桶策略)。
推荐阅读
- google-analytics - 使用谷歌分析跟踪多个安装
- office-js - 无法使用我的插件更改桌面上的文档标题
- java - 如何将数据传递给getView方法
- javascript - 在 ListView 中垂直对齐图标和文本 - React Native
- asp.net-mvc - 在 asp.net WEB API 中实现 OpenID 连接身份验证
- android - 无法解决:recyclerview-v7
- reactjs - 从 reducer 内部触发对 3rd 方端点的通知:是还是不是?
- algorithm - 确定围绕圆移动的两点是接近还是分离的算法
- r - 将 NA 值公平分配给每列值
- javascript - 无法使用 javascript 更改 z 索引