Amazon SNS の トピックポリシーCloudTrail - AWS CloudTrail

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

Amazon SNS の トピックポリシーCloudTrail

SNS トピックに通知を送信するには、CloudTrail に必要なアクセス許可が必要です。CloudTrail コンソールで証跡を作成または更新する一環として Amazon SNS トピックを作成すると、CloudTrail はトピックに必要なアクセス許可を自動的にアタッチします。

CloudTrail は、次のフィールドを使用して、ポリシーに次のステートメントを追加します。

  • 許可された SIDs。

  • のサービスプリンシパル名。CloudTrail.

  • SNS トピック (リージョン、アカウント ID、およびトピック名を含む)。

次のポリシーを使用すると、CloudTrail はサポートされているリージョンからログファイルの配信に関する通知を送信できるようになります。詳細については、「」を参照してください。CloudTrail がサポートされているリージョン.

SNS トピックポリシー

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:region:SNSTopicOwnerAccountId:SNSTopicName" } ] }

AWS KMS で暗号化された Amazon SNS トピックを使用して通知を送信するには、次のステートメントをカスタマーマスターキー (CMK) のポリシーに追加して、イベントソース (CloudTrail) と暗号化されたトピックの間の互換性も保つ必要があります。

CMK ポリシー

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" } ] }

詳細については、「AWS サービスと暗号化されたトピックのイベントソース間の互換性を保つ.」を参照してください。

通知の送信用に既存のトピックを指定する

Amazon SNS コンソールで Amazon SNS トピックポリシーへのアクセス許可を手動で追加した後、CloudTrail コンソールでトピックを指定できます。

SNS トピックポリシーを手動で更新するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. [トピック] を選択し、トピックを選択します。

  3. Other topic actions]、[Edit topic policy.] の順に選択します。

  4. [Advanced view] を選択し、リージョン、アカウント ID、およびトピック名の適切な値を使用して、SNS topic policy からステートメントを追加します。

  5. ポリシーの更新.] を選択します。

  6. トピックが暗号化されたトピックの場合は、CloudTrail および kms:GenerateDataKey* のアクセス許可を kms:Decrypt に付与する必要があります。詳細については、「」を参照してください。Encrypted SNS topic CMK policy.

  7. CloudTrail コンソールに戻り、証跡のトピックを指定します。

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

以下のセクションでは、SNS トピックポリシーをトラブルシューティングする方法について説明します。

一般的な SNS ポリシー設定のエラー

証跡を作成または更新する操作の一部として新しいトピックを作成した場合、CloudTrail によって必要なアクセス許可がトピックにアタッチされます。トピックポリシーでは、"cloudtrail.amazonaws.com" というサービスプリンシパル名が使用され、これにより、CloudTrail がすべてのリージョンについて通知を送信できるようになります。

が特定のリージョンについて通知を送信していない場合は、そのトピックで、リージョンごとに CloudTrail アカウント CloudTrail を指定する古いポリシーが使用されている可能性があります。IDsこのポリシーでは、指定されたリージョンについてのみ通知を送信できる CloudTrail アクセス許可が付与されます。

次のトピックポリシーを使用した場合、CloudTrail は、指定された 9 つのリージョンについてのみ、通知を送信できるようになります。

例 アカウント IDs を使用した トピックポリシー

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::903692715234:root", "arn:aws:iam::035351147821:root", "arn:aws:iam::859597730677:root", "arn:aws:iam::814480443879:root", "arn:aws:iam::216624486486:root", "arn:aws:iam::086441151436:root", "arn:aws:iam::388731089494:root", "arn:aws:iam::284668455005:root", "arn:aws:iam::113285607260:root" ]}, "Action": "SNS:Publish", "Resource": "aws:arn:sns:us-east-1:123456789012:myTopic" }] }

このポリシーは、個々の CloudTrail アカウント IDs に基づいたアクセス許可を使用します。 新しいリージョンのログを配信するには、ポリシーを手動で更新して、そのリージョンの CloudTrail アカウント ID を含める必要があります。たとえば、CloudTrail が 米国東部 (オハイオ) リージョン のサポートを追加したので、そのリージョンのアカウント ID ARN "arn:aws:iam::475085895292:root". を追加してポリシーを更新する必要があります。

ベストプラクティスとして、CloudTrail サービスプリンシパルでアクセス権限を使用するようにポリシーを更新します。これを行うには、アカウント ID ARNs をサービスプリンシパル名 "cloudtrail.amazonaws.com" に置き換えます。

これにより、現在のリージョンと新しいリージョンについて通知を送信するためのアクセス許可が CloudTrail に付与されます。以下に示しているのは、以前のポリシーの最新バージョンです。

例 サービスプリンシパル名を使用したトピックポリシー

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:123456789012:myTopic" }] }

ポリシーの値が正しいことを確認します。

  • Resource] フィールドに、トピックの所有者のアカウント番号を指定します。自分で作成したトピックについては、自分のアカウント番号を指定します。

  • リージョンと SNS トピック名の適切な値を指定します。

その他のリソース

SNS トピックとそのサブスクライブの詳細については、「」を参照してください。Amazon Simple Notification Service 開発者ガイド.