翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SNS トピックへの許可
このトピックの情報は、別の AWS アカウントが所有する Amazon SNS トピックに通知を配信するように Amazon DevOpsGuru を設定する場合にのみ使用します。 Amazon SNS
DevOpsGuru が別のアカウントが所有する Amazon SNS トピックに通知を配信するには、通知を送信する許可を DevOpsGuru に付与するポリシーを Amazon SNS トピックにアタッチする必要があります。 DevOpsGuru で使用するのと同じアカウントが所有する Amazon SNS トピックに通知を配信するように DevOpsGuru を設定すると、Guru DevOpsはトピックにポリシーを追加します。
別のアカウントの Amazon SNS トピックのアクセス許可を設定するポリシーをアタッチしたら、 DevOpsGuru に 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 ユーザーとしてアクセス許可を追加する
他のアカウントから IAM ユーザーとして Amazon SNS トピックを使用する場合は、使用する 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 トピックを追加する
https://console.aws.amazon.com/devops-guru/
で Amazon DevOpsGuru コンソールを開きます。 ナビゲーションペインを開き、[設定] を選択します。
[通知] セクションに移動し、[編集] を選択します。
[SNS トピックを追加] を選択します。
「SNS トピック ARN を使用して既存のトピックを指定する」 を選択します。
使用する Amazon SNS トピックの ARN を入力します。このトピックにポリシーをアタッチすることで、このトピックのアクセス権限をすでに設定しているはずです。
(オプション) [通知設定] を選択して、通知頻度の設定を編集します。
[保存] を選択します。
通知設定に 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 トピックの ARN を含むチャネル ID をメモします。チャネル ID は guid です。例えば、次のレスポンスでは、ARN
arn:aws:sns:
を持つトピックのチャネル ID は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
" }] }