翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SNS トピックへの許可
このトピックの情報は、別の AWS アカウントが所有する Amazon SNS トピックに通知を配信するように Amazon DevOpsGuru を設定する場合にのみ使用します。
別のアカウントが所有する Amazon SNS トピックを DevOps Guru で配信するには、DevOps Guru に通知を送信するアクセス許可を付与するポリシーを Amazon SNS トピックにアタッチする必要があります。DevOps Guru に使用するのと同じアカウントが所有する Amazon SNS トピックを配信するように DevOps Guru を設定すると、DevOps Guru によってトピックにポリシーが追加されます。
他のアカウントで Amazon SNS トピックにアクセス許可を設定するポリシーをアタッチすると、DevOps Guru に Amazon SNS トピックが追加できます。Amazon SNS ポリシーを通知チャネルで更新して、セキュリティをさらに強化することもできます。
注記
現在、DevOps Guru では、同じリージョン内のクロスアカウントアクセスのみがサポートされます。
トピック
他のアカウントで 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
が DevOps Guru をセットアップしたユーザーのアカウント 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
が DevOps Guru をセットアップしたユーザーのアカウント ID です。そして、devops-guru-user-name
が関係する個々の IAM ユーザーです。region-id
と my-topic-name
を適切な値 (前者の場合は us-west-2
など) に置き換える必要があります。
注記
可能であれば、パスワードやアクセスキーなどの長期的な認証情報を保有する 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 トピックにアクセス許可を設定すると、DevOps Guru の通知設定にその Amazon SNS トピックが追加されます。Amazon SNS トピックは、 AWS CLI または DevOpsGuru コンソールを使用して追加できます。
コンソールを使用するときに、別のアカウントのトピックを使用するには、[SNS トピック ARN を使用して既存のトピックを指定する] オプションを選択する必要があります。
AWS CLI オペレーション add-notification-channel
を使用する場合は、 NotificationChannelConfig
オブジェクトTopicArn
内で を指定する必要があります。
コンソールを使用して他のアカウントから Amazon SNS トピックを追加する
Amazon DevOps Guru コンソール (https://console.aws.amazon.com/devops-guru/
) を開きます。 ナビゲーションペインを開き、[設定] を選択します。
[通知] セクションに移動し、[編集] を選択します。
[SNS トピックを追加] を選択します。
「SNS トピック ARN を使用して既存のトピックを指定する」 を選択します。
使用する Amazon SNS トピックの ARN を入力します。このトピックにポリシーをアタッチすることで、このトピックのアクセス権限をすでに設定しているはずです。
(オプション) [通知設定] を選択して、通知頻度の設定を編集します。
[保存] を選択します。
通知設定に Amazon SNS トピックを追加すると、DevOps Guru はそのトピックを使用して、新しいインサイトが作成されたときなどの重要なイベントを通知します。
通知チャネルで Amazon SNS ポリシーを更新する (推奨)
トピックを追加したら、そのトピックを含む DevOps Guru 通知チャネルのみにアクセス許可を指定して、ポリシーのセキュリティを強化することをお勧めします。
通知チャネルで 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
" }] }