Amazon SNSトピックのアクセス許可 - Amazon DevOps Guru

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

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

このトピックの情報は、別の AWS アカウントが所有する Amazon SNSトピックに通知を配信するように Amazon DevOpsGuru を設定する場合にのみ使用します。

DevOpsGuru が別のアカウントが所有する Amazon SNSトピックに通知を配信するには、通知を送信する許可を DevOpsGuru に付与するポリシーを Amazon SNSトピックにアタッチする必要があります。 DevOpsGuru で使用しているのと同じアカウントが所有する Amazon SNSトピックに通知を送信するように DevOpsGuru を設定すると、 DevOpsGuru はトピックにポリシーを追加します。

別のアカウントの Amazon SNSトピックのアクセス許可を設定するポリシーをアタッチしたら、 DevOpsGru に Amazon SNSトピックを追加できます。また、Amazon SNSポリシーを通知チャネルで更新して、より安全にすることもできます。

注記

DevOpsGuru は現在、同じリージョンでのクロスアカウントアクセスのみをサポートしています。

別のアカウントで Amazon SNSトピックのアクセス許可を設定する

IAM ロールとしてのアクセス許可の追加

IAM ロールでログインした後に別のアカウントから Amazon SNSトピックを使用するには、使用する Amazon SNSトピックにポリシーをアタッチする必要があります。IAM ロールの使用中に別のアカウントから Amazon SNSトピックにポリシーをアタッチするには、IAMロールの一部としてそのアカウントリソースに対して次のアクセス許可が必要です。

  • sns:CreateTopic

  • sns:GetTopicAttributes

  • sns:SetTopicAttributes

  • sns:Publish

使用する Amazon SNSトピックに次のポリシーをアタッチします。Resource キーの場合、topic-owner-account-id はトピック所有者のアカウント ID です。topic-sender-account-id は DevOpsGuru をセットアップしたユーザーのアカウント ID です。devops-guru-role は、関与する個々のユーザーIAMの役割です。に適切な値を置き換える必要があります region-id (例: us-west-2)、および my-topic-name.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "EnableDevOpsGuruServicePrincipal", "Action": "sns:Publish", "Effect": "Allow", "Resource": "arn:aws:sns:region-id:topic-owner-account-id:my-topic-name", "Principal": { "Service": "region-id.devops-guru.amazonaws.com" }, "Condition": { "StringEquals": { "AWS:SourceAccount": "topic-sender-account-id" } } }, { "Sid": "EnableAccountPrincipal", "Action": "sns:Publish", "Effect": "Allow", "Resource": "arn:aws:sns:region-id:topic-owner-account-id:my-topic-name", "Principal": { "AWS": ["arn:aws:iam::topic-sender-account-id:role/devops-guru-role"] } } ] }

IAM ユーザーとしてのアクセス許可の追加

別のアカウントの Amazon SNSトピックをIAMユーザーとして使用するには、使用する Amazon SNSトピックに次のポリシーをアタッチします。Resource キーの場合、topic-owner-account-id はトピック所有者のアカウント ID です。topic-sender-account-id は DevOpsGuru をセットアップしたユーザーのアカウント ID です。devops-guru-user-name は、関与する個々のIAMユーザーです。に適切な値を置き換える必要があります region-id (例: us-west-2) および my-topic-name.

注記

可能であれば、パスワードやアクセスキーなどの長期的な認証情報を持つIAMユーザーを作成する代わりに、一時的な認証情報に依存することをお勧めします。のベストプラクティスの詳細についてはIAM、「 ユーザーガイド」の「 のセキュリティのベストプラクティスIAM」を参照してください。 IAM

{ "Version": "2012-10-17", "Statement": [{ "Sid": "EnableDevOpsGuruServicePrincipal", "Action": "sns:Publish", "Effect": "Allow", "Resource": "arn:aws:sns:region-id:topic-owner-account-id:my-topic-name", "Principal": { "Service": "region-id.devops-guru.amazonaws.com" }, "Condition": { "StringEquals": { "AWS:SourceAccount": "topic-sender-account-id" } } }, { "Sid": "EnableAccountPrincipal", "Action": "sns:Publish", "Effect": "Allow", "Resource": "arn:aws:sns:region-id:topic-owner-account-id:my-topic-name", "Principal": { "AWS": ["arn:aws:iam::topic-sender-account-id:user/devops-guru-user-name"] } } ] }

別のアカウントから Amazon SNSトピックを追加する

別のアカウントで Amazon SNSトピックのアクセス許可を設定したら、その Amazon SNSトピックを DevOpsGuru 通知設定に追加できます。Amazon SNSトピックは、 AWS CLI または DevOpsGuru コンソールを使用して追加できます。

  • コンソールを使用する場合、別のアカウントのトピックを使用するには、 オプション SNSトピックを使用して既存のトピックARNを指定する必要があります。

  • AWS CLI オペレーション を使用する場合はadd-notification-channelNotificationChannelConfig オブジェクトTopicArn内で を指定する必要があります。

コンソールを使用して別のアカウントから Amazon SNSトピックを追加する
  1. で Amazon DevOpsGuru コンソールを開きますhttps://console.aws.amazon.com/devops-guru/

  2. ナビゲーションペインを開き、[設定] を選択します。

  3. [通知] セクションに移動し、[編集] を選択します。

  4. SNS トピックの追加 を選択します。

  5. SNS トピックを使用して既存のトピックARNを指定する を選択します。

  6. 使用する Amazon SNSトピックARNの を入力します。このトピックにポリシーをアタッチすることで、このトピックのアクセス権限をすでに設定しているはずです。

  7. (オプション) [通知設定] を選択して、通知頻度の設定を編集します。

  8. [Save] を選択します。

通知設定に Amazon SNSトピックを追加すると、 DevOpsGuru はそのトピックを使用して、新しいインサイトの作成時など、重要なイベントを通知します。

通知チャネルを使用した Amazon SNSポリシーの更新 (推奨)

トピックを追加したら、トピックを含む DevOpsGuru 通知チャネルにのみアクセス許可を指定して、ポリシーの安全性を高めることをお勧めします。

Amazon SNSトピックポリシーを通知チャネルで更新する (推奨)
  1. 通知を送信するアカウントで list-notification-channels DevOpsGuru AWS CLI コマンドを実行します。

    aws devops-guru list-notification-channels
  2. list-notification-channels レスポンスで、Amazon SNSトピックの を含むチャネル ID を書き留めますARN。チャネル ID は guid です。

    例えば、次のレスポンスでは、 を含むトピックのチャネル ID ARNarn:aws:sns:region-id:111122223333:topic-nameは です。 e89be5f7-989d-4c4c-b1fe-e7145037e531

    { "Channels": [ { "Id": "e89be5f7-989d-4c4c-b1fe-e7145037e531", "Config": { "Sns": { "TopicArn": "arn:aws:sns:region-id:111122223333:topic-name" }, "Filters": { "MessageTypes": ["CLOSED_INSIGHT", "NEW_INSIGHT", "SEVERITY_UPGRADED"], "Severities": ["HIGH", "MEDIUM"] } } } ] }
  3. 別のアカウントで Amazon SNSトピックのアクセス許可を設定する のトピックオーナー ID を使用して別のアカウントで作成したポリシーに移動します。ポリシーの Condition ステートメントで、SourceArn を指定する行を追加します。ARN には、リージョン ID (例: us-east-1)、トピックの送信者の AWS アカウント番号、メモしたチャネル ID が含まれます。

    更新した Condition ステートメントは次のようになります。

    "Condition" : { "StringEquals" : { "AWS:SourceArn": "arn:aws:devops-guru:us-east-1:111122223333:channel/e89be5f7-989d-4c4c-b1fe-e7145037e531", "AWS:SourceAccount": "111122223333" } }

AddNotificationChannel がSNSトピックを追加できない場合は、IAMポリシーに次のアクセス許可があることを確認してください。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "DevOpsGuruTopicPermissions", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Publish" ], "Resource": "arn:aws:sns:region-id:account-id:my-topic-name" }] }