AWS Config
開発者ガイド

AWS Config に割り当てられた IAM ロールのアクセス許可

AWS Identity and Access Management (IAM) ロールでは、アクセス許可のセットを設定できます。AWS Config は割り当てられたロールを継承して、S3 バケットへの書き込み、SNS トピックへの発行、AWS リソースの設定詳細を取得するための Describe または List の API リクエストを行います。IAM ロールの詳細については、『IAM ユーザーガイド』の 「IAM ロール」 を参照してください。

AWS Config コンソールを使用して IAM ロールを作成または更新すると、AWS Config は自動的に必要なアクセス許可をアタッチします。詳細については、「コンソールによる AWS Config の設定」を参照してください。

IAM ロールのポリシーの作成

AWS Config コンソールを使用して IAM ロールを作成すると、AWS Config はロールに必要なアクセス許可を自動的にアタッチします。

AWS CLI を使用して AWS Config を設定する場合、または既存の IAM ロールを更新する場合、AWS Config に対して S3 バケットへのアクセス、SNS トピックへの発行、およびリソースの設定詳細の取得を許可するには、ポリシーを手動で更新する必要があります。

ロールへの IAM 信頼ポリシーの追加

リソースを追跡するロールを継承して使用することを AWS Config に許可する IAM 信頼ポリシーを作成できます。信頼ポリシーの詳細については、『IAM ユーザーガイド』の「ロールを引き受ける」を参照してください。

AWS Config ロールの信頼ポリシーの例を次に示します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Amazon S3 バケットの IAM ロールのポリシー

次のポリシー例では、Amazon S3 バケットへのアクセス許可を AWS Config に付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:PutObject"], "Resource": ["arn:aws:s3::: myBucketName/prefix/AWSLogs/myAccountID/*"], "Condition": { "StringLike": { "s3:x-amz-acl": "bucket-owner-full-control" } } }, { "Effect": "Allow", "Action": ["s3:GetBucketAcl"], "Resource": "arn:aws:s3::: myBucketName " } ] }

Amazon SNS トピックの IAM ロールのポリシー

次のポリシー例では、SNS トピックへのアクセス許可を AWS Config に付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"sns:Publish", "Resource":"mySNStopicARN" } ] }

追加の設定手順で SNS トピックが暗号化された場合は、『Amazon Simple Notification Service 開発者ガイド』の「AWS KMS アクセス許可の設定」 を参照してください 。

設定詳細を取得するための IAM ロールのポリシー

AWS Config で AWS リソースの設定を記録するには、リソースの設定詳細を取得するための IAM アクセス許可が必要です。

AWS マネージドポリシー AWSConfigRole を使用して、AWS Config に割り当てる IAM ロールにアタッチします。AWS Config が AWS リソースタイプのサポートを追加するたびに、AWS がこのポリシーを更新します。つまり、このマネージドポリシーがロールにアタッチされている限り、AWS Config は設定詳細を取得するために必要なアクセス許可を保持し続けます。

コンソールでロールを作成または更新すると、AWS Config は AWSConfigRole をアタッチします。

AWS CLI を使用する場合は、attach-role-policy コマンドを使用して AWSConfigRole の Amazon リソースネーム (ARN) を指定します。

$ aws iam attach-role-policy --role-name myConfigRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSConfigRole

S3 バケットの記録のトラブルシューティング

アカウントの S3 バケットを記録するように AWS Config を設定すると、AWS Config は S3 バケットの作成、更新、または削除を記録し、通知を配信します。

S3 バケットを記録するように AWS Config を設定した後で、設定変更の通知が受信されない場合は、以下のように対応します。

  • AWS Config に割り当てられた IAM ロールに AWSConfigRole マネージドポリシーがあることを確認します。

  • バケットに S3 バケットポリシーがアタッチされている場合は、バケットの変更を記録するためのアクセス許可が AWS Config に付与されていることを確認します。

S3 バケットのカスタムポリシーがある場合は、既存のバケットポリシーに次のポリシーを追加できます。ポリシー入力は、英数字である必要があります。このポリシーは、S3 バケットを記録するためのアクセス許可を AWS Config に付与します。

{ "Sid": "AWSConfig_ReadConfiguration_Access", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::myAccountID::role/config-role"}, "Action": [ "s3:GetAccelerateConfiguration", "s3:GetBucketAcl", "s3:GetBucketCORS", "s3:GetBucketLocation", "s3:GetBucketLogging", "s3:GetBucketNotification", "s3:GetBucketPolicy", "s3:GetBucketRequestPayment", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetBucketWebsite", "s3:GetLifecycleConfiguration", "s3:GetReplicationConfiguration" ], "Resource": "arn:aws:s3:::myBucketName" }