Amazon S3 バケットへのアクセス許可 - AWS Config

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

Amazon S3 バケットへのアクセス許可

デフォルトでは、すべての Amazon S3 バケットとオブジェクトはプライベートです。リソース所有者のみが AWS バケットを作成した科目は、そのバケットとそのバケットに含まれるすべてのオブジェクトにアクセスできます。ただし、リソース所有者は、他のリソースとユーザーにアクセス許可を付与することを選択できます。これを行う 1 つの方法として、アクセスポリシーを記述します。

AWS Config が自動的に Amazon S3 バケットを作成する場合 (AWS Config コンソールを使用して配信チャネルを設定する場合など)、これらのアクセス許可は自動的に Amazon S3 バケットに追加されます。ただし、既存の Amazon S3 バケットを指定した場合は、S3 バケットのアクセス許可が正しいことを確認する必要があります。

IAM ロール使用時に Amazon S3 バケットに必要なアクセス許可

AWS Config では、アカウントの Amazon S3 バケットに設定情報 (履歴ファイルやスナップショット) を送信する場合、AWS Config の設定時に割り当てた IAM ロールを引き受けます。AWS Config では、別のアカウントの Amazon S3 バケットに設定情報を送信する場合、最初に IAM ロールの使用を試行します。ただし、バケットのアクセスポリシーが IAM ロールへの WRITE アクセス許可を付与しない場合、この試行は失敗します。この場合、AWS Config は再度情報を送信しますが、今回は AWS Config サービスプリンシパルとして送信します。配信が正常に実行される前に、アクセスポリシーは WRITE アクセス許可を config.amazonaws.com プリンシパル名に付与する必要があります。 AWS Config は S3 バケットに配信するオブジェクトの所有者になります。Amazon S3 バケットへのアクセスを AWS Config に許可するには、以下のステップ 6 で説明したアクセスポリシーを別のアカウントの Amazon S3 バケットにアタッチする必要があります。

AWS Config が Amazon S3 バケットにログを配信する前に、AWS Config は、そのバケットが存在するかどうか、およびどの AWS リージョンにバケットがあるか確認します。AWS Config は Amazon S3 HeadBucket API を呼び出して、バケットが存在するかどうかの確認と、バケットのリージョンの取得を試みます。場所を確認するときに、バケットを見つけるアクセス許可が付与されていない場合は、AccessDenied エラーが AWS CloudTrail ログに記録されます。ただし、バケットの場所のアクセス許可を付与しない場合、Amazon S3 バケットへのログ配信は成功します。

サービスでリンクされたロール使用時に Amazon S3 バケットに必要なアクセス許可

サービスにリンクされたロールを使用して AWS Config を設定する場合は、以下のステップ 6 で説明したアクセスポリシーを自分のアカウントまたは別のアカウントの Amazon S3 バケットにアタッチして、Amazon S3 バケットへの AWS Config アクセスを付与する必要があります。

Amazon S3 バケットへの AWS Config アクセス許可の付与

自分のアカウントまたは別のアカウントの Amazon S3 バケットにアクセスポリシーを追加するには、以下のステップを実行します。このアクセスポリシーにより、AWS Config は Amazon S3 バケットに設定情報を送信することを許可されます。

  1. S3 バケットがあるアカウントを使用して AWS マネジメントコンソール にサインインします。

  2. https://console.aws.amazon.com/s3/ にある Amazon S3 コンソールを開きます。

  3. AWS Config で設定項目の配信に使用するバケットを選択し、[Properties(プロパティ)] を選択します。

  4. [Permissions] を選択します。

  5. [Edit Bucket Policy] を選択します。

  6. 次のポリシーを [Bucket Policy Editor] ウィンドウ内にコピーします。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AWSConfigBucketPermissionsCheck", "Effect": "Allow", "Principal": { "Service": [ "config.amazonaws.com" ] }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::targetBucketName" }, { "Sid": "AWSConfigBucketExistenceCheck", "Effect": "Allow", "Principal": { "Service": [ "config.amazonaws.com" ] }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::targetBucketName" }, { "Sid": "AWSConfigBucketDelivery", "Effect": "Allow", "Principal": { "Service": [ "config.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::targetBucketName/[optional] prefix/AWSLogs/sourceAccountID-WithoutHyphens/Config/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }
  7. バケットポリシーの以下の値を置き換えます。

    • targetBucketName – _の名前 Amazon S3 バケットを AWS Config が構成アイテムを配信します。

    • [optional] prefix – へのオプションの追加 Amazon S3 バケットにフォルダのような組織を作成するのに役立つオブジェクトキー。

    • sourceAccountID-WithoutHyphens – のアカウントのID AWS Config は、構成アイテムをターゲットバケットに配信します。

  8. [Save]、[Close] の順に選択します。