2017-12-05 5 views
0
  • 私はA AWSアカウントとB AWSアカウントを持ち、AアカウントのSoruceS3BucketからBアカウントのDestinationS3BucketにS3バケットを同期しています。
  • 以下はDestinationバケットに適用されるバケットポリシーであり、ソースAWSアカウントがコンテンツをDestinationS3Bucketと同期させることを許可しています。ここで
    { 
        "Version": "2012-10-17", 
        "Statement": [ 
         { 
          "Sid": "PermissionsToAAccount", 
          "Effect": "Allow", 
          "Principal": { 
           "AWS": "arn:aws:iam::XXXXXXX:root" 
          }, 
          "Action": "s3:*", 
          "Resource": [ 
           "arn:aws:s3:::DestinationS3Bucket", 
           "arn:aws:s3:::DestinationS3Bucket/*" 
          ] 
         } 
        ] 
    }
    • 同期は長い時間以来、完全に仕事をしていた、それはまだ作業が、DestinationS3Bucketファイルでの最後の数日間からさ
  • はエラーを否定した サーバー側の暗号化アクセスとアクセスできません。
  • SourceS3BucketとDestinationS3Bucketに暗号化がない(デフォルトの暗号化なし)と、ソースAWSアカウントの秘密とアクセスキーを使用してコンテンツを同期しています。前もって感謝します。
+1

このエラーが発生した場合、送信元アカウントまたは送信先アカウントとして資格情報を使用していますか?ファイル所有者がソースアカウントです。問題のファイルでS3 ACLを確認してください。 –

+0

資格はソースAWSアカウントから使用されます。 AWS S3コンソールで、「サーバー側の暗号化」のファイルレベルで、「なし」、「AES-256」および「AWS-KMS」の代わりに「アクセスが拒否されました」というエラーが表示されました。ファイル所有者はソースアカウントです。はい、問題はACLにありました。これは "--acl bucket-owner-full-control"フラグで動作します。ありがとうジョン:) – Nitin

+0

ありがとう@ニティン。このソリューションに基づいて回答を作成しました。 –

答えて

3

アカウントAの資格情報をアカウントBのバケットに使用してアカウントAの1つのS3バケットからファイルをコピーすると、宛先バケット内のファイルの所有者はアカウントAになります(アカウントAは、アカウントBのバケットにファイルを作成しました)。

ソースから宛先バケットへのファイルコピー中に、アカウントBがファイルを制御できるように、--acl bucket-owner-full-controlオプションを追加します。そうしないと、アカウントBのバケットにアカウントBがアクセスまたは制御できないファイルが存在する可能性があります。

もう1つの方法は、アカウントBの資格情報を使用して、ソースバケットからコピー先バケットにコピーすることです。この方法で、コピーしたファイルの所有者はアカウントBです。

関連する問題