amazon-web-services - 如何将文件从一个 AWS 账户复制到另一个 AWS 账户
问题描述
我需要将文件从客户端 S3 存储桶移动到我们的 S3 存储桶。我尝试了几件事:
- 使用 S3 浏览器复制和粘贴
- AWS CLI sync/cp 但我卡住了如何传递源/目标位置的访问密钥和访问 ID
请你给我一些指点。提前致谢。
解决方案
您有 2 个选项:
拉取文件
在源中设置存储桶策略,授予目标账户中用户/角色的读取权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Example",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Principal": {
"AWS": "arn:aws:iam::DEST_ACCOUNT:user/DestinationAccountUserName"
},
"Resource": [
"arn:aws:s3:::source-bucket",
"arn:aws:s3:::source-bucket/*"
]
}
]
}
然后,您可以aws s3 sync s3://source-bucket s3://dest-bucket
与目标帐户中的用户一起运行。
推送文件
在您的目标中设置存储桶策略,授予对源账户中用户/角色的写入权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Example",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Principal": {
"AWS": "arn:aws:iam::SOURCE_ACCOUNT:user/SourceAccountUserName"
},
"Resource": [
"arn:aws:s3:::dest-bucket"
],
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
]
}
然后您可以aws s3 sync --acl bucket-owner-full-control s3://source-bucket s3://dest-bucket
使用源帐户中的用户运行。重要如果您不设置 ACL,目标账户中的存储桶所有者将无法访问对象,这就是我们在"Condition"
.
这是关于此的 AWS 帖子:https ://aws.amazon.com/es/premiumsupport/knowledge-center/cross-account-access-s3/
推荐阅读
- excel - 制作工作表名称的集合
- excel - Excel VBA - 从单元格值另存为建议的文件名和文件路径
- nginx - drf_yasg swagger 中的 base_url 问题
- c++ - IMFTransform::ProcessOutput 效率
- docker - Docker Desktop 版本 2.5.0.0 中断了已安装文件夹内卷的安装
- scala - 如何将表情符号替换为scala数据框中的空字符串?
- maven - 在 CI 中使用本地 Maven 存储库
- c# - 带有 MySql 的 EntityFrameworkCore 未创建所有表
- android - 如何从 Huawei AppGallery Connect 下载我的应用分析?
- javascript - 如何将一列添加到 1d json 数组并将其保存到文件中?