如何将文件从一个AWS账户复制到另一个AWS账户

时间:2018-09-03 20:58:28

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

我需要将文件从客户端S3存储桶移动到我们的S3存储桶。我尝试了几件事:

  1. 使用S3浏览器复制和粘贴
  2. AWS CLI同步/ cp,但我卡住了如何传递访问密钥和源/目标位置的访问ID

请给我一些指示。预先感谢。

2 个答案:

答案 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"中强制执行A​​CL的原因。

这是有关此问题的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对象
  •