我需要将文件从客户端S3存储桶移动到我们的S3存储桶。我尝试了几件事:
请给我一些指示。预先感谢。
答案 0 :(得分:2)
您有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"
中强制执行ACL的原因。>
这是有关此问题的AWS帖子:https://aws.amazon.com/es/premiumsupport/knowledge-center/cross-account-access-s3/
答案 1 :(得分:0)
This article显示了一些选项...
- AWS S3控制台-适用于处理数量有限的 对象,或在同一AWS账户内进行转移。
- AWS命令行 界面(cli)-EC2命令行工具。
- AWS S3 SDK-如果您 准备进行一些编码并编写自己的脚本。
来自的- s3cmd s3tools.org-用Python编写的命令行工具。看看Alfie La 彼得的文章。
- S3浏览器-仅Windows。
- CloudBerry S3 资源管理器-仅Windows,价格不菲。
- Bucket Explorer-支持 Windows,Mac和Linux(需要付费)。
CloudBuddy-MS Office插件。
S3Fox-Firefox加载项。
...,它也提供有关how to migrate using AWS CLI的详细信息。宏步骤:
- 创建/识别存储桶
- 创建IAM用户帐户
- 设置用户凭据
- 创建用户策略
- 创建存储桶策略
- 在EC2实例上验证AWS S3 CLI的可用性
- 配置S3 CLI凭据
- 最后复制并移动一些S3对象