针对预算通知创建 Amazon SNS 主题 - Amazon 成本管理
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

针对预算通知创建 Amazon SNS 主题

当您创建向 Amazon Simple Notification Service (Amazon SNS) 主题发送通知的异常检测监控时,您必须有一个预先存在的 Amazon SNS 主题或创建一个。除了电子邮件之外,您还可以使用 Amazon SNS 主题通过 SNS 发送通知。 Amazon 成本异常检测必须具有向您的主题发送通知的权限。

创建 Amazon SNS 通知主题并授予权限
  1. 登录 Amazon Web Services Management Console 并打开亚马逊 SNS 控制台,网址为 https://console.aws.amazon.com/sns/v3/home。

  2. 在导航窗格中,选择 Topics(主题)

  3. 选择创建主题

  4. 对于名称,输入您通知主题的名称。

  5. (可选)对于显示名称,输入您希望在收到通知时显示的名称。

  6. 访问策略 中,选择高级

  7. 在策略文本字段中,在 "Statement": [ 后面,添加以下文本:

    要允许 Amazon 成本异常检测服务向 Amazon SNS 主题发布内容,请使用以下语句。

    { "Sid": "E.g., AWSAnomalyDetectionSNSPublishingPermissions", "Effect": "Allow", "Principal": { "Service": "costalerts.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "your topic ARN" }

    要允许 Amazon 成本异常检测服务仅代表特定账户向 Amazon SNS 主题发布信息,请使用以下声明。

    { "Sid": "E.g., AWSAnomalyDetectionSNSPublishingPermissions", "Effect": "Allow", "Principal": { "Service": "costalerts.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "your topic ARN", "Condition": { "StringEquals": { "aws:SourceAccount": [ "account-ID" ] } } }
    注意

    在本主题策略中,您可以输入订阅的账户 ID 作为 aws:SourceAccount 条件的值。只有在对拥有订阅的账户执行操作时, Amazon 成本异常检测才会与 Amazon SNS 主题进行交互。

    您可以将 Amazon 成本异常检测限制为仅在代表特定订阅执行操作时与主题进行交互。为此,请使用主题策略中的 aws:SourceArn 条件。

    有关角色的更多信息,请参阅 IAM 用户指南中的 aws:SourceAccount 角色术语和概念 aws:SourceArn

  8. 在您选择的主题策略语句中,替换以下值:

    • 用字符串替换(例如 AWSAnomalyDetectionSNSPublishingPermissions)。Sid 在策略中必须是唯一的。

    • 您的ARN主题 替换为 Amazon SNS 主题的 Amazon 资源名称 (ARN)。

    • 如果您使用带有 aws:SourceAccount 条件的语句,请将账户 ID 替换为拥有订阅的账户 ID。如果 Amazon SNS 主题有来自不同账户的多个订阅,请在 aws:SourceAccount 条件中添加多个账户 ID。

  9. 选择创建主题

    您的主题现在显示在主题页面上的主题列表中。

检查或重新发送通知确认电子邮件

当您创建带通知的异常检测监控时,您还将创建 Amazon SNS 通知。对于要发送的通知,您必须接受对 Amazon SNS 通知主题的订阅。

要确认您的通知订阅已接受或重新发送订阅确认电子邮件,请使用 Amazon SNS 控制台。

检查您的通知状态或重新发送通知确认电子邮件
  1. 登录 Amazon Web Services Management Console 并打开亚马逊 SNS 控制台,网址为 https://console.aws.amazon.com/sns/v3/home。

  2. 在导航窗格中,选择订阅

  3. 检查通知的状态。如果未接受并确定订阅,状态下将显示 PendingConfirmation

  4. (可选)要重新发送确认请求,请选择待确认的订阅,然后选择请求确认。Amazon SNS 将向订阅通知的终端节点发送确认请求。

    在终端节点的每个所有者收到电子邮件后,他们必须选择确认订阅链接来激活通知。

使用 SSE 保护您的 Amazon SNS 异常检测警报数据 Amazon KMS

您可以使用服务器端加密 (SSE),采用加密主题的方式传输敏感数据。SSE 通过使用托管在 Amazon Key Management Service (Amazon KMS) 中的密钥保护 Amazon SNS 消息。

要使用 Amazon Web Services Management Console 或 Amazon 软件开发工具包管理 SSE,请参阅亚马逊简单通知服务入门指南中的为亚马逊 SNS 主题启用服务器端加密 (SSE)

要使用创建加密主题 Amazon CloudFormation,请参阅Amazon CloudFormation 用户指南

一旦 Amazon SNS 收到消息,SSE 就会对消息进行加密。消息以加密方式存储,仅在发送后才会使用 Amazon SNS 解密。

配置 Amazon KMS 权限

必须先配置 Amazon KMS 密钥策略,然后才能使用服务器端加密 (SSE)。该配置让您可以加密主题,以及加密和解密消息。有关 Amazon KMS 权限的信息,请参阅《Amazon Key Management Service 开发者指南》中的 Amazon KMS API 权限:操作和资源参考

您还可以使用 IAM 策略来管理 Amazon KMS 密钥权限。有关更多信息,请参阅在 Amazon KMS中使用 IAM 策略

注意

您可以配置发送和接收来自 Amazon SNS 的消息的全局权限。但是, Amazon KMS 要求您在具体中命名(KMS 密钥)的完整亚马逊资源名称 Amazon KMS keys (ARN)。 Amazon Web Services 区域您可以在 IAM policy 的资源部分中找到此内容。

您必须确保 KMS 密钥的密钥政策允许必要的权限。为此,请将在 Amazon SNS 中创建和使用加密消息的委托人指定为 CMK 密钥策略中的用户。

启用 Amazon 成本异常检测和加密的 Amazon SNS 主题之间的兼容性
  1. 创建 KMS 密钥

  2. 将以下策略之一添加为 KMS 密钥政策:

    要向 Amazon 成本异常检测服务授予对 KMS 密钥的访问权限,请使用以下语句。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "costalerts.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }] }

    要仅在代表特定账户执行操作时授予 Amazon 成本异常检测服务访问 KMS 密钥的权限,请使用以下语句。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "costalerts.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": [ "account-ID" ] } } }] }
    注意

    在此 KMS 密钥政策中,您可以输入订阅的账户 ID 作为 aws:SourceAccount 条件的值。在这种情况下,只有在为拥有订阅的账户执行操作时, Amazon 成本异常检测才会与 KMS 密钥进行交互。

    要让 Amazon 成本异常检测仅在代表特定订阅执行操作时才与 KMS 密钥交互,请使用 KMS 密钥策略中的aws:SourceArn条件。

    有关角色的更多信息,请参阅 IAM 用户指南中的 aws:SourceAccount 角色术语和概念 aws:SourceArn

  3. 如果您使用带有 aws:SourceAccount 条件的 KMS 密钥政策,请将账户 ID 替换为拥有订阅的账户 ID。如果 Amazon SNS 主题有来自不同账户的多个订阅,请在 aws:SourceAccount 条件中添加多个账户 ID。

  4. 为 SNS 主题启用 SSE

    注意

    确保您使用的是向 Amazon 成本异常检测授予权限的相同 KMS 密钥,以发布到加密的 Amazon SNS 主题。

  5. 选择保存更改