配置通知的 Amazon SNS 主题 - 开发工具控制台

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置通知的 Amazon SNS 主题

设置通知最简单的方法是在创建通知规则时创建 Amazon SNS 主题。如果现有 Amazon SNS 主题满足以下要求,则可使用该主题:

  • 它的创建方式与您要 AWS 区域 为其创建通知规则的资源(生成项目、部署应用程序、存储库或管道)相同。

  • 在 2019 年 11 月 5 日 CodeCommit 之前,它尚未用于发送通知。如果已经使用该主题,它将包含启用了该功能的策略语句。您可以选择使用此主题,但需要添加在该过程中指定的其他策略。如果在 2019 年 11 月 5 日之前仍然为通知配置了一个或多个存储库,则不应删除现有策略语句。

  • 它有一项政策,允许 AWS CodeStar 通知向该主题发布通知。

配置 Amazon SNS 主题以用作 AWS CodeStar 通知通知规则的目标
  1. 登录 AWS Management Console 并打开亚马逊 SNS 控制台,网址为 https://console.aws.amazon.com/sns/v3/home。

  2. 在导航栏中,依次选择 Topics (主题)、要配置的主题和 Edit (编辑)

  3. 展开 Access policy (访问策略),然后选择 Advanced (高级)

  4. 在 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" } ] }
  5. 选择保存更改

  6. 如果您想使用 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使用策略条件