本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon SNS 主题的权限
仅当您想要将 Amazon DevOps Guru 配置为向其他 AWS 账户拥有的亚马逊主题发送通知时,才使用本SNS主题中的信息。
要 DevOps让 Guru 向其他账户拥有的亚马逊SNS主题发送通知,您必须在亚马逊SNS主题中附加一项政策,授予 DevOps Guru 向其发送通知的权限。如果您将 DevOps Guru 配置为向与您用于 DevOps Guru 的同一个账户所拥有的亚马逊SNS主题发送通知,则 DevOps Guru 会为您在主题中添加策略。
在附加策略以配置另一个账户中某个亚马逊SNS主题的权限后,您可以在 DevOps Guru 中添加亚马逊SNS主题。您还可以使用通知渠道更新您的Amazon SNS 政策,使其更加安全。
注意
DevOpsGuru 目前仅支持同一地区的跨账户访问。
在另一个账户中为某个 Amazon SNS 主题配置权限
以角色的身份IAM添加权限
要在以IAM角色登录后使用其他账户中的亚马逊SNS主题,您必须为要使用的亚马逊SNS主题附加政策。要在使用角色时将策略附加到其他账户的 Amazon SNS 主题,作为IAM角色的一部分,您需要对该账户资源拥有以下权限: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用户身份使用来自其他账户的亚马逊SNS主题,请将以下政策附加到您要使用的亚马逊SNS主题中。对于Resource
钥匙,topic-owner-account-id
是主题所有者的账户 ID,topic-sender-account-id
是设置 DevOps Guru 的用户的账户 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
"] } } ] }
从其他账户添加亚马逊SNS话题
在另一个账户中为亚马逊SNS主题配置权限后,您可以将该亚马逊SNS主题添加到您的 DevOps Guru 通知设置中。您可以使用 AWS CLI 或 DevOps Guru 控制台添加 Amazon SNS 主题。
使用控制台时,必须选择使用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 主题添加到通知设置后, DevOpsGuru 会使用该主题通知您重要事件,例如创建新见解的时间。
使用通知渠道更新您的亚马逊SNS政策(推荐)
添加主题后,我们建议您仅为包含您的主题的 DevOps Guru 通知渠道指定权限,从而提高策略的安全性。
使用通知渠道更新您的 Amazon SNS 话题政策(推荐)
-
在要从中发送通知的账户中运行
list-notification-channels
DevOps Guru AWS CLI 命令。aws devops-guru list-notification-channels
-
在
list-notification-channels
回复中,记下包含您的 Amazon SNS 话题的频道 ID ARN。通道 ID 是一个指南。例如,在以下响应中,主题的频道 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
" }] }