使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何调用带有 CloudWatch 警报的跨账户 Amazon SNS 主题?

2 分钟阅读
0

我想在不同的 AWS 账户中调用带有 Amazon CloudWatch 警报的 Amazon Simple Notification Service (Amazon SNS) 主题。

解决方法

要调用带有 CloudWatch 警报的跨账户 Amazon SNS 主题,请完成以下步骤:

**注意:**以下步骤使用了两个账户。账户 A 用于创建 CloudWatch 警报,账户 B 用于创建亚马逊 SNS 主题。

在账户 B 中创建 Amazon SNS 主题

完成以下步骤:

  1. 打开 Amazon SNS 控制台
  2. 在导航窗格中,选择 Topics(主题),然后选择 Create Topic(创建主题)。
  3. 为主题类型选择 Standard(标准),然后为该主题创建名称。
  4. 选择 Create topic(创建主题),然后复制该主题的 ARN。
  5. 在导航窗格中,选择 Subscriptions(订阅),然后选择 Create Subscription(创建订阅)。
  6. Topic ARN(主题 ARN)部分添加主题的 ARN,然后选择 Email(电子邮件)作为协议。
  7. 选择 Create Subscription(创建订阅),然后查看您的电子邮件以确认订阅。

在账户 A 中创建 CloudWatch 警报

完成以下步骤:

  1. 打开 CloudWatch 控制台
  2. 在导航窗格中,选择 Alarms(警报),然后选择 Create Alarm(创建警报)。
  3. 选择您的指标,然后提供 thresholdcomparison 参数的详细信息。
  4. Configure Actions(配置操作)中的 Notifications(通知)下,选择 Use topic ARN to notify other accounts(使用主题 ARN 通知其他账户),然后输入账户 B 中的主题 ARN。
  5. 为警报创建名称,然后选择 Create Alarm(创建警报)。

更新账户 B 中 Amazon SNS 主题的访问策略

要更新账户 B 中 Amazon SNS 主题的访问策略以允许警报发布消息,请完成以下步骤:

  1. 打开 Amazon SNS 控制台
  2. 在导航窗格中,选择 Topics(主题),然后选择主题。
  3. 选择 Edit(编辑),然后确保策略采用以下示例格式:
    {
      "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": "example-topic-arn-account-b",
          "Condition": {
            "ArnLike": {
              "aws:SourceArn": "arn:aws:cloudwatch:example-region:111122223333:alarm:"
            }
          }
        }
      ]
    }

测试警报

要测试警报,可以根据指标数据点更改警报阈值,也可以手动更改警报状态。当您更改警报阈值或手动更改警报状态时,您会收到电子邮件通知。

相关信息

允许任何 CloudWatch 警报发布到其他账户中的主题

为什么我没有收到 CloudWatch 警报触发器的 SNS 通知?

SetAlarmState