Amazon SNS トピックへのアクセス許可 - AWS Config

Amazon SNS トピックへのアクセス許可

暗号化された Amazon SNS はサポートされていません

AWS Config では、暗号化された Amazon SNS トピックはサポートされていません。

このトピックでは、別のアカウントが所有する Amazon SNS トピックを配信するように AWS Config を設定する方法を説明します。AWS Config は、Amazon SNS トピックに通知を送信するのに必要なアクセス許可を持っている必要があります。

新しい Amazon SNS トピックが AWS Config コンソールで作成された場合、AWS Config は必要なアクセス許可を付与します。ユーザーが既存の Amazon SNS トピックを選択する場合は、その Amazon SNS トピックに必要なアクセス許可が含まれ、セキュリティのベストプラクティスに従っていることを確認してください。

クロスリージョン Amazon SNS トピックはサポートされていません

AWS Config では現在、同じ AWS リージョン内および複数アカウントにわたるアクセスのみがサポートされています。

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

アクセス許可ポリシーは、別のアカウントが所有する Amazon SNS トピックに適用できます。他のアカウントから Amazon SNS トピックを使用する場合は、既存の Amazon SNS トピックに以下のポリシーを適用します。

{ "Id": "Policy_ID", "Statement": [ { "Sid": "AWSConfigSNSPolicy", "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": "arn:aws:sns:region:account-id:myTopic", "Principal": { "AWS": [ "account-id1", "account-id2", "account-id3" ] } } ] }

Resource キーの場合、account-id はトピック所有者の AWS アカウント番号です。account-id1account-id2、および account-id3 には、Amazon SNS トピックにデータを送信する AWS アカウントを使用します。regionmyTopic は適切な値に置き換えることができます。

AWS Config が Amazon SNS トピックに通知を送信する場合、最初に IAM ロールの使用を試行しますが、ロールまたは AWS アカウント にトピックに送信するアクセス許可がない場合、この試行は失敗します。この場合、AWS Config は再度通知を送信しますが、今回は AWS Config サービスプリンシパル名 (SPN) となります。配信が正常に実行される前に、オピックのためのアクセスポリシーは sns:Publish プリンシパル名にconfig.amazonaws.com アクセスを許可する必要があります。IAM ロールにトピックへの公開権限がない場合、AWS Config に Amazon SNS トピックへのアクセスを許可するには、次のセクションで説明するアクセスポリシーを、Amazon SNS トピックにアタッチする必要があります。

サービスでリンクされたロールを使用する際 Amazon SNS トピックに必要なアクセス許可

AWS Config サービスにリンクされたロールには、Amazon SNS トピックへのアクセス権限がありません。したがって、お客様が AWS Config サービスにリンクされたロール (SLR) を使用して設定した場合、AWS Config は代わりにAWS Config サービスプリンシパルとして情報を送信します。Amazon SNS トピックに情報を送信するためのアクセスをAWS Config に許可するには、以下に説明するアクセスポリシーを Amazon SNS トピックにアタッチする必要があります。

同じアカウント設定の場合、Amazon SNS トピックと SLR が同じアカウントにあり、Amazon SNS ポリシーが SLR に「sns:Publish」を許可する場合、AWS Config SPN を使用する必要はありません。以下のアクセス許可ポリシーとセキュリティのベストプラクティスの推奨事項は、クロスアカウント設定のためのものです。

Amazon SNS トピックへのアクセスを AWS Config に許可する

このポリシーでは、AWS Config に Amazon SNS トピックの通知の送信を許可します。AWS Config に別のアカウントから Amazon SNS トピックへのアクセスを許可するには、以下のアクセス許可ポリシーをアタッチする必要があります。

注記

セキュリティのベストプラクティスとして、AWS:SourceAccount 条件に記載されているアカウントへのアクセスを制限することにより、AWS Config が想定するユーザーのみがリソースにアクセスすることを強くお勧めします。

{ "Id": "Policy_ID", "Statement": [ { "Sid": "AWSConfigSNSPolicy", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:region:account-id:myTopic", "Condition" : { "StringEquals": { "AWS:SourceAccount": [ "account-id1", "account-id2", "account-id3" ] } } } ] }

Resource キーの場合、account-id はトピック所有者の AWS アカウント番号です。account-id1account-id2、および account-id3 には、Amazon SNS トピックにデータを送信する AWS アカウントを使用します。regionmyTopic は適切な値に置き換えることができます。

前述の Amazon SNS トピックポリシーの AWS:SourceAccount 条件を使い、特定のアカウントに代わって AWS Config サービスプリンシパル名 (SPN) がオペレーションを実行する際に Amazon SNS トピックのみとやり取りするように制限できます。

また、AWS Config では特定の AWS Config 配信チャネルの代わりにオペレーションを実行するときにのみ、AWS Config サービスプリンシパル名 (SPN) が S3 バケットとだけやり取りするように制限する AWS:SourceArn 条件をサポートします。AWS Config サービスプリンシパル名 (SPN) を使用する場合、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 リージョン中の送信チャネルに代わることに限り、AWS Config サービスプリンシパル名 (SPN) が S3 バケットと交信するように制限します。

Amazon SNS トピックのトラブルシューティング

AWS Config には、Amazon SNS トピックに通知を送信するためのアクセス許可が必要です。Amazon SNS トピックで通知を受け取ることができない場合は、想定されていた AWS Config の IAM ロールに必要な sns:Publish アクセス許可が付与されていることを確認します。