sum*_*tty 15 amazon-web-services amazon-sns aws-codepipeline
我正在尝试使用支持 SNS 的通知规则为代码管道设置通知。
如图所示,状态为“无法访问”
如果我查看此处的链接aws 故障排除
我已经遵循了所有步骤,甚至在 SNS 主题的访问策略中添加 codestar-notifications 的步骤。
{
      "Sid": "AWSCodeStarNotifications_publish",
      "Effect": "Allow",
      "Principal": {
        "Service": "codestar-notifications.amazonaws.com"
      },
      "Action": "SNS:Publish",
      "Resource": "arn:aws:codestar-notifications:us-east-1:272075499248:notificationrule/50d629524d433dceeafdb6c5fe136e404f29e9e5"
    }
但是,状态仍然保持不变,也尝试手动启动管道,但仍然不起作用。
我错过了什么吗?有人能帮我解决这个问题吗?
编辑:
 {
  "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",
        "SNS:Receive"
      ],
      "Resource": "arn:aws:sns:us-east-1:272075499248:develop",
      "Condition": {
        "StringEquals": {
          "AWS:SourceOwner": "272075499248"
        }
      }
    },
    {
      "Sid": "AWSCodeStarNotifications_publish",
      "Effect": "Allow",
      "Principal": {
        "Service": "codestar-notifications.amazonaws.com"
      },
      "Action": "SNS:Publish",
      "Resource": "arn:aws:sns:us-east-1:272075499248:develop"
    }
  ]
}
Rap*_*tin 16
每当您单独创建SNS 主题时,默认访问策略将如下所示:
{
  "Version": "2008-10-17",
  "Id": "__default_policy_ID",
  "Statement": [
    {
      "Sid": "__default_statement_ID",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "SNS:Publish",
        "SNS:RemovePermission",
        "SNS:SetTopicAttributes",
        "SNS:DeleteTopic",
        "SNS:ListSubscriptionsByTopic",
        "SNS:GetTopicAttributes",
        "SNS:AddPermission",
        "SNS:Subscribe"
      ],
      "Resource": "arn:aws:sns:us-east-2:123456789012:my-sns-topic",
      "Condition": {
        "StringEquals": {
          "AWS:SourceOwner": "123456789012"
        }
      }
    }
  ]
}
上面是错误的,不会让您的 CodePipeline 访问SNS 主题(使其可访问/“Active”)!将SNS 主题的访问策略更改为以下内容:
{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Sid": "CodeNotification_publish",
      "Effect": "Allow",
      "Principal": {
        "Service": "codestar-notifications.amazonaws.com"
      },
      "Action": "SNS:Publish",
      "Resource": "arn:aws:sns:us-east-2:123456789012:my-sns-topic"
    }
  ]
}
注意 1:更改123456789012为您的 AWS 账户 ID 和您的SNS 主题my-sns-topic的名称。注意 2:如果您所在的区域与 不同,请在上面的代码片段中进行更改。注意 3:SNS 主题和CodePipeline 通知规则都应该位于同一区域,否则将不起作用。
us-east-2
每当您创建通知规则,然后创建通知规则目标时,AWS 刷新通知目标状态的唯一方法就是您从中删除通知规则目标CodePipeline -> Settings (on the left side bar) -> Notification rules -> Notification rule targets(这非常重要!)。
注意:从通知规则本身中删除通知规则目标不会执行任何操作;因此,当您在该页面中重新添加它时,通知规则目标仍将是旧的,因此通知目标状态将保持“无法访问”。
如果完成所有操作后它仍然显示无法访问,请再次重复步骤 #1 和 #2,您可能错过了某些内容。
小智 2
解决此问题的一种方法是使用 CodePipeline 用户界面来创建主题。这将为您设置所有必需的权限。创建通知规则时,在“目标”下,选择“创建目标”并输入您要创建的主题的名称。将使用已设置的权限创建主题。您只需订阅该主题即可接收通知。
| 归档时间: | 
 | 
| 查看次数: | 7351 次 | 
| 最近记录: |