本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置通知的 Amazon SNS 主题
设置通知最简单的方法是在创建通知规则时创建 Amazon SNS 主题。如果现有 Amazon SNS 主题满足以下要求,则可使用该主题:
-
它的创建方式与您要 AWS 区域 为其创建通知规则的资源(生成项目、部署应用程序、存储库或管道)相同。
-
在 2019 年 11 月 5 日 CodeCommit 之前,它尚未用于发送通知。如果已经使用该主题,它将包含启用了该功能的策略语句。您可以选择使用此主题,但需要添加在该过程中指定的其他策略。如果在 2019 年 11 月 5 日之前仍然为通知配置了一个或多个存储库,则不应删除现有策略语句。
-
它有一项政策,允许 AWS CodeStar 通知向该主题发布通知。
配置 Amazon SNS 主题以用作 AWS CodeStar 通知通知规则的目标
-
在导航栏中,依次选择 Topics (主题)、要配置的主题和 Edit (编辑)。
-
展开 Access policy (访问策略),然后选择 Advanced (高级)。
-
在 JSON 编辑器中,向策略中添加以下语句。包括主题 ARN、 AWS 区域、 AWS 账户 ID 和主题名称。
{ "Sid": "AWSCodeStarNotifications_publish", "Effect": "Allow", "Principal": { "Service": [ "codestar-notifications.amazonaws.com" ] }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:
us-east-2
:123456789012
:codestar-notifications-MyTopicForNotificationRules
" }该策略语句应与以下内容类似。
{ "Version": "2008-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "__default_statement_ID", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "SNS:GetTopicAttributes", "SNS:SetTopicAttributes", "SNS:AddPermission", "SNS:RemovePermission", "SNS:DeleteTopic", "SNS:Subscribe", "SNS:ListSubscriptionsByTopic", "SNS:Publish" ], "Resource": "arn:aws:sns:
us-east-2
:123456789012
:codestar-notifications-MyTopicForNotificationRules
", "Condition": { "StringEquals": { "AWS:SourceOwner": "123456789012" } } }, { "Sid": "AWSCodeStarNotifications_publish", "Effect": "Allow", "Principal": { "Service": [ "codestar-notifications.amazonaws.com" ] }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-east-2
:123456789012
:codestar-notifications-MyTopicForNotificationRules
" } ] } -
选择保存更改。
-
如果您想使用 AWS KMS加密的 Amazon SNS 主题发送通知,还必须通过在的策略中添加以下语句来启用事件源AWS CodeStar (通知)和加密主题之间的兼容性。 AWS KMS key将 AWS 区域 (在本例中为 us-east-2)替换为密钥 AWS 区域 的创建位置。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codestar-notifications.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "sns.us-east-2.amazonaws.com" } } } ] }
有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的静态加密和针对 AWS KMS使用策略条件。