为什么在创建预算警报时收到无效的SNS主题ARN

时间:2018-10-28 03:09:01

标签: amazon-web-services amazon-sns

我只是尝试设置预算警报,而在尝试为警报指定SNS ARN时收到错误无效的SNS主题ARN

我按照以下步骤操作:

  1. 使用SMS作为协议创建了一个新的SNS主题。
  2. 创建了对该主题的订阅(美国电话号码)。
  3. 通过发送文本测试订阅(此方法有效)。
  4. 在AWS SNS的“主题”部分的ARN列下复制了 ARN
  5. 检查通过Amazon Simple Notification Service(SNS)通知主题,并从#4输入ARN。
  6. 在将ARN复制并粘贴到该字段之后,我立即在 SNS Topic ARN 字段旁边收到错误无效的SNS主题ARN

怎么了?我知道它是正确的ARN,因为我直接从控制台复制了它。而且,据我了解,尽管SNS主题是(该主题位于us-east-2 N. Virginia),但预算及其警报并不局限于特定区域。

如果需要更多详细信息,请告诉我。

7 个答案:

答案 0 :(得分:2)

请确保您已允许budget.amazonaws.com能够在SNS主题的基于资源的策略中向该SNS主题发布消息。

在政策中添加以下声明

{
    "Sid": "ExampleSid123456789012",
    "Effect": "Allow",
    "Principal": {
        "Service": "budgets.amazonaws.com"
     },
    "Action": "SNS:Publish",
    "Resource": "your topic ARN"
}

希望它能起作用!

答案 1 :(得分:1)

我之前遇到过同样的问题,但是可以通过以下步骤解决

  

“请遵守SNS ARN格式”

enter image description here

我的解决方法是

-

1。。在 US-EAST-1 地区

中创建一个 SNS主题

2。。刚使用的基本访问策略

3。(可选)字段,我使用了以下选项:仅指定的AWS账户,粘贴了我的AWS账户ID

enter image description here

4。。通过在 中添加服务 budgets.amazonaws.com ,编辑SNS主题并启用访问策略。 > SNS:发布 操作 只需按照下面的格式复制格式,然后保存

enter image description here

5。 成功创建SNS主题后,我重新加载了配置     警报页面,然后粘贴了SNS主题ARN 。没有更多的错误,可以     已经确认预算

enter image description here

您将收到一封确认电子邮件。

具有此内容

  

恭喜,您已成功验证AWS预算的SNS主题!您现在可以接收AWS预算通知   通过这个SNS主题。

答案 2 :(得分:1)

只有在创建标准主题(FIFO不起作用)时,我才将其修复。

enter image description here

答案 3 :(得分:0)

我有同样的问题。这是我的经验。

  • 开始创建AWS账单警报
  • 试图使用现有的SNS主题,收到与您相同的错误消息。有趣的是,如果您的SNS ARN中存在语法错误,则会收到不同的错误消息“请遵守SNS ARN格式”。
  • 认为SNS主题应该位于美国东部地区。在此处创建了一个仅用于计费提醒的对象。仍然是相同的错误消息。
  • 意识到该主题必须附加正确的策略。添加了类似于@mmal建议的策略声明。仍然是相同的错误消息。

但是后来我重新加载了页面,并尝试从头开始创建帐单提醒。

第二次成功!

答案 4 :(得分:0)

仅此一点,在执行了上述步骤之后,它仍然无法正常工作。我发现,如果您在SNS主题上启用了“加密”,则将无法使用。在主题上禁用此功能并刷新“预算”编辑屏幕即可解决此问题!

答案 5 :(得分:0)

您需要将策略添加到现有SNS访问策略的“声明”:[”下方。

{
  "Sid": "AWSBudgets-notification-1",
  "Effect": "Allow",
  "Principal": {
    "Service": "budgets.amazonaws.com"
  },
  "Action": "SNS:Publish",
  "Resource": "SNS-policy-ARN"
},

确保最后不要错过逗号。 SNS-policy-ARN是同一SNS主题的ARN

答案 6 :(得分:0)

如果您在 .net 应用程序中运行此应用程序,并在 ~/.AWS/credentials 文件中使用您的 AWS 凭证,请确保您的 appsettings.json 中定义的区域与您的 SNS 主题所在的区域相匹配.

{
    "AWS": {
        "Profile": "myProfile",
        "Region": "eu-west-2"
    },
    ...