翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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-channel
、 NotificationChannelConfig
オブジェクトTopicArn
内で を指定する必要があります。
コンソールを使用して別のアカウントから Amazon SNSトピックを追加する
で Amazon DevOpsGuru コンソールを開きますhttps://console.aws.amazon.com/devops-guru/
。 ナビゲーションペインを開き、[設定] を選択します。
[通知] セクションに移動し、[編集] を選択します。
SNS トピックの追加 を選択します。
SNS トピックを使用して既存のトピックARNを指定する を選択します。
使用する Amazon SNSトピックARNの を入力します。このトピックにポリシーをアタッチすることで、このトピックのアクセス権限をすでに設定しているはずです。
(オプション) [通知設定] を選択して、通知頻度の設定を編集します。
[Save] を選択します。
通知設定に Amazon SNSトピックを追加すると、 DevOpsGuru はそのトピックを使用して、新しいインサイトの作成時など、重要なイベントを通知します。
通知チャネルを使用した Amazon SNSポリシーの更新 (推奨)
トピックを追加したら、トピックを含む DevOpsGuru 通知チャネルにのみアクセス許可を指定して、ポリシーの安全性を高めることをお勧めします。
Amazon SNSトピックポリシーを通知チャネルで更新する (推奨)
-
通知を送信するアカウントで
list-notification-channels
DevOpsGuru AWS CLI コマンドを実行します。aws devops-guru list-notification-channels
-
list-notification-channels
レスポンスで、Amazon SNSトピックの を含むチャネル ID を書き留めますARN。チャネル ID は guid です。例えば、次のレスポンスでは、 を含むトピックのチャネル ID ARN
arn: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"
] } } } ] } -
別のアカウントで 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
" }] }