本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Amazon SNS 主题启用服务器端加密 (SSE)
借助服务器端加密(SSE),您可以采用加密主题的方式存储敏感数据。SSE 使用 AWS Key Management Service(AWS KMS)中托管的密钥保护 Amazon SNS 主题中消息的内容。有关 Amazon SNS 的服务器端加密的更多信息,请参阅静态加密。有关创建 AWS KMS 密钥的更多信息,请参阅《AWS Key Management Service 开发人员指南》中的创建密钥。
重要
针对启用了 SSE 的主题的所有请求都必须使用 HTTPS 和签名版本 4。
使用 AWS Management Console为 Amazon SNS 主题启用服务器端加密(SSE)
-
登录 Amazon SNS 控制台
。 -
在导航面板上,选择 Topics(主题)。
-
在主题页面上,选择一个主题,然后选择操作和编辑。
-
展开加密部分并执行以下操作:
-
选择 Enable encryption (启用加密)。
-
指定 AWS KMS 密钥。有关更多信息,请参阅关键术语。
对于每个 KMS 类型,都会显示 Description(描述)、Account(账户)和 KMS ARN。
重要
如果您不是 KMS 的拥有者,或者您登录的账户没有
kms:ListAliases
和kms:DescribeKey
权限,则无法在 Amazon SNS 控制台上查看有关 KMS 的信息。要求 KMS 的拥有者授予您这些权限。有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的 AWS KMS API 权限:操作和资源参考。
-
原定设置情况下,选择 Amazon SNS 的 AWS 托管式 KMS(原定设置)alias/aws/sns。
注意
记住以下内容:
-
第一次使用 AWS Management Console为主题指定适用于 Amazon SNS 的 AWS 托管式 KMS 时,AWS KMS 会创建适用于 Amazon SNS 的 AWS 托管式 KMS。
-
或者,您第一次对启用了 SSE 的主题使用
Publish
操作时,AWS KMS 会创建适用于 Amazon SNS 的 AWS 托管式 KMS。
-
-
要从您的 AWS 账户中使用自定义 KMS,请选择 KMS 密钥字段,然后从列表中选择自定义 KMS。
注意
有关创建自定义 KMS 的说明,请参阅《AWS Key Management Service 开发人员指南》中的创建密钥
-
要从您的 AWS 账户或另一个 AWS 账户中使用自定义 KMS ARN,请将其输入到 KMS 密钥字段中。
-
-
-
选择 Save changes(保存更改)。
这将为主题启用 SSE,并显示
我的主题
页面。主题的加密状态、AWS 账户、客户主密钥 (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
" } } }