AWS Config に割り当てられた IAM ロールのアクセス許可 - 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 ロールを更新する場合、S3 バケットへのアクセス、SNS トピックへの発行、およびリソースの設定詳細を取得することを AWS Config に許可するには、ポリシーを手動で更新する必要があります。

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

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

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

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

上記の IAM ロールの信頼関係で AWS:SourceAccount 条件を使用して、特定のアカウントに代わって操作を実行するときに、この AWS IAM ロールのみとやり取りするように Config サービスプリンシパルを制限することができます。

AWS Config は AWS:SourceArn 条件もサポートしています。これは、所有アカウントに代わって操作を実行するときに、その IAM ロールのみを引き受けるように Config サービスプリンシパルを制限します。AWS Config サービスプリンシパルを使用しているときは、AWS:SourceArn プロパティが常に arn:aws:config:sourceRegion:sourceAccountID:* に設定されます。この sourceRegion は設定レコーダーのリージョンで、sourceAccountID は設定レコーダーが含まれるアカウントの ID です。AWS Config 設定レコーダーの詳細については、「設定レコーダーの管理」を参照してください。例えば、以下の条件を追加して、アカウント 123456789012: "ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:*"} にある us-east-1 リージョン内の設定レコーダーに代わって実行する場合にのみ、その IAM ロールを引き受けるように Config サービスプリンシパルを制限します。

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

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

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:PutObjectAcl" ], "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" } ] }

KMS キーの IAM ロールポリシー

以下のポリシーの例では、S3 バケット配信用の新しいオブジェクトで KMS ベースの暗号化を使用するアクセス許可を AWS Config に付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "myKMSKeyARN" } ] }

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 マネージドポリシー AWS_ConfigRole を使用して、それをユーザーが AWS Config に割り当てる IAM ロールにアタッチします。AWS は、AWS Config が AWS リソースタイプに対するサポートを追加するたびにこのポリシーを更新します。これは、ロールにこのマネージドポリシーがアタッチされている限り、AWS Config が設定詳細を取得するために必要な許可を保持し続けることを意味します。

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

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

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

S3 バケット記録のアクセス許可の管理

S3 バケットが作成、更新、または削除されると、AWS Config はそれを記録し、通知します。

AWSServiceRoleForConfig (AWS Config のサービスにリンクされたロールの使用(を参照) または AWS_ConfigRole 管理ポリシーを活用するカスタム IAM ロールのいずれかを使用することをお勧めします。設定記録のベストプラクティスの詳細については、AWS Config のベストプラクティスを参照してください。

バケット記録のオブジェクトレベルのアクセス許可を管理する必要がある場合は、S3 バケットポリシーを見て、AWS_ConfigRole マネージドポリシーから config.amazonaws.com (AWS Config サービスプリンシパル名) アクセスがすべての S3 関連のアクセス許可に対して提供されていることを確認してください。詳細については、Amazon S3 バケットのアクセス許可を参照してください。