Amazon S3 インベントリレポートを生成できないのはなぜですか?

所要時間3分
0

Amazon Simple Storage Service (Amazon S3) のインベントリレポートを設定しましたが、配信されず、アクセス拒否エラーが表示されます。

簡単な説明

Amazon S3 Inventory 設定を作成した場合、このエラーが表示されないように、正しいバケットポリシーとアクセス権限を設定する必要があります。

Access denied Inventory export for 2021-02-19 failed because S3 doesn't have access to the destination bucket or KMS key. Ask the owner of the destination bucket or KMS key to grant the necessary access and then try again.

Amazon S3 インベントリレポートを生成するには、以下の要件を満たす必要があります。

  • 移行先バケットは、移行元バケットが Amazon S3 インベントリレポートを宛先バケットにアップロードすることを許可する必要があります。
  • 移行先バケットは、移行元バケット (Amazon S3 インベントリを設定した場所) と同じ AWS リージョンにある必要があります。
  • 送信先バケットポリシーでは、インベントリレポートファイルの暗号化に使用されている AWS KMS キーへのアクセス権を付与する必要があります。

メモ:最初のインベントリレポートが配信されるまでに最大48時間かかる場合があります

解決策

ソースバケットが Amazon S3 インベントリレポートを宛先バケットにアップロードすることを許可する

インベントリレポートを生成して宛先バケットにアップロードするには、バケットポリシーでソースバケットが宛先バケットにアップロードできるようにする必要があります。

例:

{
  "Version": "2012-10-17",
  "Id": "S3PolicyId",
  "Statement": [
    {
      "Sid":"InventoryAndAnalyticsExamplePolicy",
      "Effect":"Allow",
      "Principal": {"Service": "s3.amazonaws.com"},
      "Action":"s3:PutObject",
      "Resource":["arn:aws:s3:::destinationbucket/*"],
      "Condition": {
          "ArnLike": {
              "aws:SourceArn": "arn:aws:s3:::sourcebucket"
           },
         "StringEquals": {
             "aws:SourceAccount": "123456789012",
             "s3:x-amz-acl": "bucket-owner-full-control"
          }
       }
    }
  ]
}

Deny ** ステートメントがないか、送信先バケットポリシーを確認してください。バケットには、Amazon S3 (s3.amazonaws.com) が送信先バケットで PutObject** を実行することを妨げるようなDeny ステートメントを含めることはできません。明示的な拒否は、どの** Allow** ステートメントよりも優先されます。PutObject アクションに影響する可能性のあるすべてのDeny ステートメントから Amazon S3 サービス (s3.amazonaws.com) を除外してください。

Amazon S3 (s3.amazonaws.com) へのアクセスを拒否し、指定した IP 範囲へのアクセスのみを許可するバケットポリシーの例を次に示します。

{
  "Version": "2012-10-17",
  "Id": "S3PolicyId",
  "Statement": [
    {
      "Sid": "IPAllow",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
	       "arn:aws:s3:::destinationbucket",
               "arn:aws:s3:::destinationbucket/*"
      ],
      "Condition": {
	 "NotIpAddress": {"aws:SourceIp": "54.240.143.0/24"}
      }
    }
  ]
}

以前のバケットポリシーを修正するには、以下のようにポリシーを更新してください。

{
"Version": "2012-10-17",  "Id": "S3PolicyId",
 "Statement": [
    {
      "Sid": "IPAllow",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::destinationbucket",
        "arn:aws:s3:::destinationbucket/*"
      ],
      "Condition": {
        "NotIpAddress": {
          "aws:SourceIp": "54.240.143.0/24"
        },
        "ArnNotLike": {
          "aws:SourceArn": "arn:aws:s3:::sourcebucket"
        }
      },
      "Principal": "*"
    },
    {
      "Sid": "InventoryAndAnalyticsExamplePolicy",
      "Action": [
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::destinationbucket/*"
      ],
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:s3:::sourcebucket"
        },
        "StringEquals": {
          "aws:SourceAccount": "123456789012",
          "s3:x-amz-acl": "bucket-owner-full-control"
        }
      },
      "Principal": {
        "AWS": [
          "s3.amazonaws.com"
        ]
      }
    }
  ]
}

移行先バケットがソースバケットと同じ AWS リージョンにあることを確認します。

移行先バケットが移行元バケットと同じ AWS リージョンにあることを確認するには、以下を実行してください。

1. AWS マネジメントコンソールにサインインします。

2.    Amazon S3 コンソールを開きます

3.バケットリストの AWS リージョン列を確認して、宛先バケットがソースバケットと同じ AWS リージョンにあることを確認します。(ソースバケットは Amazon S3 インベントリを設定する場所です。)

4.(オプション) ソースとターゲットバケットが異なるリージョンにある場合は、新しいバケットを作成または選択します。これは、ソースバケットとターゲットバケットが同じ AWS リージョンにある必要があるためです。

**メモ:**Amazon S3 は特定のリージョンでバケットを作成します。特定のリージョンでバケットが作成されると、そのバケットに属するオブジェクトは (明示的に転送されない限り) そのリージョンを離れることはありません。Amazon S3 バケットと AWS リージョンの使用方法の詳細については、バケットの概要を参照してください。

インベントリレポートファイルの暗号化に使用された AWS KMS キーへのアクセス権を付与します

Amazon S3 バケットを AWS KMS キーで暗号化した場合は、必ず Amazon S3 に AWS KMS キーへのアクセス権を付与してください。

AWS KMS キーを使用して暗号化のアクセス権限を付与するには、以下を実行してください。

1. AWS マネジメントコンソールにサインインします。

**メモ:**必ず AWS KMS キーを所有する AWS アカウントを使用してサインインしてください。

2.AWS KMS コンソールを開きます

3.左側のナビゲーションペインで、カスタマー管理キーを選択します。

4.カスタマー管理キーで、インベントリレポートファイルの暗号化に使用する AWS KMS キーを選択します。

5.キーポリシーで、ポリシービューに切り替えを選択します。

6 キーポリシーを更新するには、**編集 **を選択します。

7.キーポリシーの編集 で、次のキーポリシーを既存のキーポリシーに追加します。

{
    "Sid": "Allow Amazon S3 use of the KMS key",
    "Effect": "Allow",
    "Principal": {
        "Service": "s3.amazonaws.com"
    },
    "Action": [
        "kms:GenerateDataKey"
    ],
    "Resource": "*",
    "Condition":{
      "StringEquals":{
         "aws:SourceAccount":"source-account-id"
     },
      "ArnLike":{
        "aws:SourceARN": "arn:aws:s3:::source-bucket-name"
     }
   }
}

8.変更を保存を選択します。

メモ:Amazon S3 ** コンソールのインベントリ設定 ** の最終エクスポート 列を確認します。この列が空の場合、Amazon S3 は宛先バケットのインベントリステータスのクエリから 403 AccessDenied レスポンスを受け取ったことになります。最終エクスポート列が空であっても、レポートが配信されなかったことを示すとは限りません。インベントリレポートが正常に配信された可能性があります。この場合、インベントリレポートは宛先バケット内の指定されたパスにあります。

サーバーのアクセスログと CloudTrail 履歴を確認する

サーバーのアクセスログを確認してください。インベントリレポートの配信が停止したときに、バケットポリシーに変更が加えられていないか確認してください。Amazon S3 サーバーアクセスログの形式は次のようになります。

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be awsexamplebucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 891CE47D2EXAMPLE REST.PUT.BUCKETPOLICY - "GET /awsexamplebucket1?logging HTTP/1.1" 200 - 242 - 11 - "-" "S3Console/0.4" - 9vKBE6vMhrNiWHZmb2L0mXOcqPGzQOI5XLnCtZNPxev+Hf+7tpT6sxDwDty4LHBUOZJG96N1234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader awsexamplebucket1.s3.us-west-1.amazonaws.com TLSV1.1

バケットポリシーが変更されたことを示す次のエントリのいずれかを探してください。

REST.PUT.BUCKETPOLICY

また、AWS CloudTrail のイベント履歴で PutBucketPolicy **アクションを検索して、**最近変更が行われたかどうかを確認することもできます。CloudTrail のイベント履歴には 90 日間のウィンドウしか表示されないことに注意してください。**PutBucketPolicy ** アクションが 90 日以上前に実行された場合は、Amazon S3 で CloudTrail ログに直接クエリを実行する必要がありますCloudTrail によってキャプチャされる Amazon S3 API 呼び出しの詳細については、AWS Docs GitHub ウェブサイトの CloudTrail の Amazon S3 情報を参照してください。

関連情報

S3 バケットとオブジェクトの CloudTrail イベントロギングを有効にする

Amazon S3 インベントリと Amazon S3 分析のアクセス権限の付与

Amazon S3 バケットのすべてのオブジェクトを別のバケットにコピーする方法

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ