为 Amazon SNS 主题启用服务器端加密 (SSE) - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为 Amazon SNS 主题启用服务器端加密 (SSE)

借助服务器端加密(SSE),您可以采用加密主题的方式存储敏感数据。SSE 使用 Amazon Key Management Service (Amazon KMS)中托管的密钥保护 Amazon SNS 主题中消息的内容。有关 Amazon SNS 的服务器端加密的更多信息,请参阅静态加密。有关创建 Amazon KMS 密钥的更多信息,请参阅《Amazon Key Management Service 开发者指南》中的创建密钥

重要

针对启用了 SSE 的主题的所有请求都必须使用 HTTPS 和签名版本 4

使用 Amazon SNS 主题启用服务器端加密 (SSE) Amazon Web Services Management Console

  1. 登录 Amazon SNS 控制台

  2. 在导航面板上,选择 Topics(主题)。

  3. 主题页面上,选择一个主题,然后选择操作编辑

  4. 展开加密部分并执行以下操作:

    1. 选择 Enable encryption(启用加密)

    2. 指定密 Amazon KMS 钥。有关更多信息,请参阅 关键术语

      对于每个 KMS 类型,都会显示 Description(描述)、Account(账户)和 KMS ARN

      重要

      如果您不是 KMS 的拥有者,或者您登录的账户没有 kms:ListAliaseskms:DescribeKey 权限,则无法在 Amazon SNS 控制台上查看有关 KMS 的信息。

      要求 KMS 的拥有者授予您这些权限。有关更多信息,请参阅 Amazon Key Management Service 开发人员指南中的 Amazon KMS API 权限:操作和资源参考

      • 默认情况下,会选择亚马逊 SNS 的 Amazon 托管 KMS(默认)别名/aws/s ns。

        注意

        记住以下内容:

        • 首次使用为主题指定适用于 Amazon SNS 的 Amazon 托管 KMS 时, Amazon KMS 会为亚马逊 SNS 创建 Amazon 托管 KMS。 Amazon Web Services Management Console

        • 或者,在启用 SSE 的情况下首次对主题使用Publish操作时, Amazon KMS 会为 Amazon SNS 创建 Amazon 托管 KMS。

      • 要使用 Amazon 账户中的自定义 KMS,请选择 KMS 密钥字段,然后从列表中选择自定义 KMS。

        注意

        有关创建自定义 KMS 的说明,请参阅《Amazon Key Management Service 开发人员指南》中的创建密钥

      • 要使用来自您的 Amazon 账户或其他账户的自定义 KMS ARN,请将其输入到 KMS 密钥字段中。 Amazon

  5. 选择保存更改

    您的主题已启用 SSE 并显示MyTopic页面。

    主题的加密状态、 Amazon 账户客户主密钥 (CMK)CMK ARN描述将显示在 Encryption(加密)选项卡上。

使用服务器端加密设置 Amazon SNS 主题

创建 KMS 密钥时,请使用以下 KMS 密钥策略:

{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:service:region:customer-account-id:resource-type/customer-resource-id" }, "StringEquals": { "kms:EncryptionContext:aws:sns:topicArn": "arn:aws:sns:your_region:customer-account-id:your_sns_topic_name" } } }

对消费者的影响

当 Amazon SNS 主题启用 SSE 时,订阅者的消息消费过程将保持不变。 Amazon 使用 KMS 管理加密和解密过程。因此,订阅者无需对其现有设置进行任何更改即可处理加密消息。 Amazon 确保消息在静态状态下进行加密,并在发送给订阅者之前自动解密。这意味着订阅者将继续像启用加密之前一样接收和处理消息,无需任何额外的配置或解密逻辑。此外, Amazon 建议使用 HTTPS 来确保消息的安全传输。