使用服务器端加密设置 Amazon SNS 主题加密 - Amazon Simple Notification Service

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

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

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

重要

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

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

  1. 登录 Amazon SNS 控制台

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

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

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

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

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

      对于每KMS种类型,都会显示描述账户KMSARN和。

      重要

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

      要求的所有者授KMS予您这些权限。有关更多信息,请参阅《AWS Key Management Service 开发者指南》中的 “AWS KMS API权限:操作和资源参考”。

      • 默认选择亚马逊 AWS 托管 KMSSNS(默认)别名/aws/sns

        注意

        记住以下内容:

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

        • 或者,当您首次对SSE启用主题使用Publish操作时, AWS KMS 会创建KMS适用于 Amazon 的 AWS 托管SNS。

      • 要使用 AWS 账户KMS中的自定义项,请选择KMS关键字段,然后KMS从列表中选择自定义字段。

        注意

        有关创建自定义密钥的说明KMSs,请参阅《AWS Key Management Service 开发者指南》中的创建密钥

      • 要使用您 AWS 账户或其他账户KMSARN中的自定义设置,请在KMS密钥字段中输入该自定义项。 AWS

  5. 选择 Save changes(保存更改)

    SSE已为你的主题启用而且 MyTopic页面显示出来。

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

设置使用服务器端加密的 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 AWS 使用管理加密和解密过程。 AWS KMS因此,订阅者无需对其现有设置进行任何更改即可处理加密消息。 AWS 确保消息在静态状态下进行加密,并在发送给订阅者之前自动解密。这意味着订阅者将继续像启用加密之前一样接收和处理消息,无需任何额外的配置或解密逻辑。此外, AWS 建议使用HTTPS来确保消息的安全传输。