本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon SNS主題的許可
只有當您想要設定 Amazon DevOpsGuru 將通知傳遞給另一個 AWS 帳戶所擁有的 Amazon SNS主題時,才使用此主題中的資訊。
若要讓 DevOpsGuru 將通知傳遞至不同帳戶擁有的 Amazon SNS主題,您必須將政策附加至 Amazon SNS主題,以授予 DevOpsGuru 傳送通知的許可。如果您設定 DevOpsGuru 將通知傳遞至您用於 DevOpsGuru 的相同帳戶所SNS擁有的 Amazon 主題,則 DevOpsGuru 會將政策新增至主題。
連接政策以設定另一個帳戶中 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 通知設定。您可以使用 AWS CLI 或 DevOpsGuru 主控台新增 Amazon SNS主題。
使用主控台時,您必須選取 選項使用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主題 的頻道 IDARN。頻道 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"
] } } } ] } -
前往您在另一個帳戶中使用 中的主題擁有者 ID 建立的政策設定另一個帳戶中 Amazon SNS主題的許可。在政策的
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
" }] }