

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Config 配信チャネルの Amazon S3 バケットのアクセス許可
<a name="s3-bucket-policy"></a>

**重要**  
このページでは、 AWS Config 配信チャネルの Amazon S3 バケットをセットアップします。このページは、 AWS Config 設定レコーダーが記録できる`AWS::S3::Bucket`リソースタイプに関するものではありません。

デフォルトでは、Amazon S3 バケットとオブジェクトはプライベートです。バケットを AWS アカウント 作成した (リソース所有者) のみがアクセス許可を持ちます。リソース所有者は、アクセスポリシーを作成することで、他のリソースやユーザーにアクセスを許可できます。

 AWS Config が自動的に S3 バケットを作成すると、必要なアクセス許可が追加されます。しかし、ユーザーが既存の S3 バケットを指定する場合は、これらのアクセス許可を手動で追加する必要があります。

**Topics**
+ [IAM ロールを使用する場合](#required-permissions-in-another-account)
+ [サービスにリンクされたロールを使用する場合](#required-permissions-using-servicelinkedrole)
+ [AWS Config アクセスの許可](#granting-access-in-another-account)
+ [アカウント間での配信](#required-permissions-cross-account)

## IAM ロールの使用時に Amazon S3 バケットに必要なアクセス許可
<a name="required-permissions-in-another-account"></a>

AWS Config は、設定レコーダーに割り当てた IAM ロールを使用して、アカウントの S3 バケットに設定履歴とスナップショットを配信します。クロスアカウント配信の場合、 AWS Config 最初に割り当てられた IAM ロールの使用を試みます。バケットポリシーによってその IAM ロールに `WRITE` アクセスが許可されない場合、 AWS Config は `config.amazonaws.com` サービスプリンシパルを使用します。配信を完了するためには、バケットポリシーが `WRITE` アクセスを `config.amazonaws.com` に許可する必要があります。配信が成功すると、 はクロスアカウント S3 バケットに配信するすべてのオブジェクトの所有権 AWS Config を維持します。

AWS Config は、設定レコーダーに割り当てた IAM ロールを使用して Amazon S3 [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RESTBucketHEAD.html) API を呼び出し、S3 バケットが存在するかどうか、およびその場所を確認します。 AWS Config の確認に必要なアクセス許可がない場合は、 AWS CloudTrail ログに`AccessDenied`エラーが表示されます。ただし、 AWS Config は、S3 バケットが存在するかどうかとその場所を確認するために必要なアクセス許可がない場合でも、設定履歴とスナップショットを配信 AWS Config できます。

**最小アクセス許可**  
Amazon S3 `HeadBucket` API には `s3:ListBucket` アクションが必要です。

## サービスでリンクされたロールの使用時に Amazon S3 バケットに必要なアクセス許可
<a name="required-permissions-using-servicelinkedrole"></a>

 AWS Config サービスにリンクされたロールには、Amazon S3 バケットにオブジェクトを配置するアクセス許可がありません。サービスにリンクされたロール AWS Config を使用して を設定すると、 AWS Config は`config.amazonaws.com`サービスプリンシパルを使用して設定履歴とスナップショットを配信します。アカウントまたはクロスアカウント送信先の S3 バケットポリシーには、 AWS Config サービスプリンシパルがオブジェクトを書き込むためのアクセス許可が含まれている必要があります。

## Amazon S3 バケット AWS Config へのアクセスの許可
<a name="granting-access-in-another-account"></a>

以下のステップを完了すると AWS Config 、 が設定履歴とスナップショットを Amazon S3 バケットに配信できるようになります。

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

1. Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. 設定項目の配信 AWS Config に使用するバケットを選択し、**プロパティ**を選択します。

1. **[Permissions]** (アクセス許可) を選択します。

1. **Edit Bucket Policy** を選択します。

1. 次のポリシーを **Bucket Policy Editor** ウィンドウ内にコピーします。
**セキュリティのベストプラクティス**  
`AWS:SourceAccount` 条件を使用してバケットポリシーでアクセスを制限することを強くお勧めします。これにより、 AWS Config が想定ユーザーに代わってのみアクセスが許可されます。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AWSConfigBucketPermissionsCheck",
         "Effect": "Allow",
         "Principal": {
           "Service": "config.amazonaws.com"
         },
         "Action": "s3:GetBucketAcl",
         "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}",
         "Condition": { 
           "StringEquals": {
             "AWS:SourceAccount": "{{sourceAccountID}}"
           }
         }
       },
       {
         "Sid": "AWSConfigBucketExistenceCheck",
         "Effect": "Allow",
         "Principal": {
           "Service": "config.amazonaws.com"
         },
         "Action": "s3:ListBucket",
         "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}",
         "Condition": { 
           "StringEquals": {
             "AWS:SourceAccount": "{{sourceAccountID}}"
           }
         }
       },
       {
         "Sid": "AWSConfigBucketDelivery",
         "Effect": "Allow",
         "Principal": {
           "Service": "config.amazonaws.com"
         },
         "Action": "s3:PutObject",
         "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/{{[optional] prefix}}/AWSLogs/{{sourceAccountID}}/Config/*",
         "Condition": { 
           "StringEquals": { 
             "s3:x-amz-acl": "bucket-owner-full-control",
             "AWS:SourceAccount": "{{sourceAccountID}}"
           }
         }
       }
     ]
   }
   ```

------

1. バケットポリシーの以下の値を置き換えます。
   + {{amzn-s3-demo-bucket}} – AWS Config が設定履歴とスナップショットを配信する Amazon S3 バケットの名前。
   + {{[optional] prefix}} – オプションで Amazon S3 にオブジェクトキーに追加するプレフィックス。バケット内でフォルダのような構成を作成するのに役立ちます。
   + {{sourceAccountID}} – AWS Config が設定履歴とスナップショットを配信するアカウントの ID。

1. **Save**、**Close** の順に選択します。

`AWS:SourceAccount` 条件は、 AWS Config オペレーションを指定された に制限します AWS アカウント。単一の S3 バケットに配信する組織内のマルチアカウント設定では、サービスにリンクされたロールではなく、 AWS Organizations 条件キーで IAM ロールを使用します。例えば、`AWS:PrincipalOrgID`。詳細については、「*AWS Organizations ユーザーガイド*」の「[AWS Organizations を使用した組織のアクセス許可の管理](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions_overview.html)」を参照してください。

`AWS:SourceArn` 条件は、指定された配信チャネルに AWS Config オペレーションを制限します。`AWS:SourceArn` 形式は `arn:aws:config:{{sourceRegion}}:{{123456789012}}` です。

例えば、アカウント 123456789012 の米国東部 (バージニア北部) リージョンの配信チャネルへの S3 バケットアクセスを制限するには、次の条件を追加します。

```
"ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:"}
```

## クロスアカウントの配信時に Amazon S3 バケットに必要なアクセス許可
<a name="required-permissions-cross-account"></a>

別のアカウントの Amazon S3 バケットに設定履歴とスナップショットを配信するように AWS Config が設定されている場合 (クロスアカウント設定）、配信チャネルに指定された設定レコーダーと S3 バケットが異なる場合は AWS アカウント、次のアクセス許可が必要です。
+ 設定レコーダーに割り当てる IAM ロールには、`s3:ListBucket` オペレーションを実行するための明示的なアクセス許可が必要です。これは、 がこの IAM ロールを使用して Amazon S3 [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RESTBucketHEAD.html) API を AWS Config 呼び出してバケットの場所を決定するためです。
+ S3 バケットポリシーには、設定レコーダーに割り当てられた IAM ロールのアクセス許可が含まれている必要があります。

以下は、バケットポリシー設定の例です。

```
{
      "Sid": "AWSConfigBucketExistenceCheck",
      "Effect": "Allow",
      "Principal": {
        "AWS": "{{IAM Role-Arn assigned to the configuration recorder}}"
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}",
}
```