无法将S3源存储桶内容复制到新目标S3存储桶

时间:2016-10-25 11:29:45

标签: amazon-s3 bucket policies

我一直在尝试按照以下说明将存储桶内容从S3复制到另一个存储桶:

http://blog.vizuri.com/how-to-copy/move-objects-from-one-s3-bucket-to-another-between-aws-accounts

我有一个目标存储桶(我想复制内容)和源存储桶。

在目的地,我使用以下用户的政策创建了一个新用户:

{
  "Version": "2012-10-17",
  "Statement": [
     {
         "Effect":"Allow",
         "Action":[
            "s3:ListAllMyBuckets"
         ],
         "Resource":"arn:aws:s3:::*"
      },
      {
         "Effect":"Allow",
         "Action":[

              "s3:GetObject"             
              ],
         "Resource":[

              "arn:aws:s3:::to-destination/*"
              ]
      },
    {
      "Effect": "Allow",
      "Action": [
            "s3:ListBucket",
            "s3:GetBucketLocation"
            ],
      "Resource": [
              "arn:aws:s3:::to-destination"

            ]
    }

  ]
}

并创建了目标存储桶。

在源端,我对存储桶有以下策略:

{
    "Version": "2008-10-17",
    "Id": "Policy****",
    "Statement": [
        {
            "Sid": "Stmt****",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "*****"
        }
    ]
}

当我尝试使用aws cli复制源的内容到目的地时:

aws s3 sync s3://source-bucket-name  s3://destination-bucket-name

我总是收到此错误

An error occurred (AccessDenied) when calling the ListObjects operation: Access Denied
Completed 1 part(s) with ... file(s) remaining

我做错了什么?我的政策起草方式是否存在问题?

更新

我也尝试过这篇文章,建议更新源存储桶策略和目标存储区策略:

https://serverfault.com/questions/556077/what-is-causing-access-denied-when-using-the-aws-cli-to-download-from-amazon-s3

但我在命令行上仍然遇到同样的错误

2 个答案:

答案 0 :(得分:0)

您是否使用$ aws configure从CLI配置了帐户? 您可以使用策略生成器来验证上面提到的自定义策略是否构建正确。

答案 1 :(得分:0)

此错误归因于SSL验证。使用此代码无需经过SSL验证即可将对象传输到新存储桶。

aws s3 sync s3://source-bucket-name  s3://destination-bucket-name --no-verify-ssl

使用-no-verify-ssl