静态加密 - Amazon Simple Queue Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

静态加密

服务器端加密 (SSE) 允许您在加密队列中传输。SSE 使用 SQS 管理的加密密钥 (SSE-SQS) 或在 (SSE-KMS) 中管理的Amazon Key Management Service密钥保护队列中的消息内容。有关使用管理 SSE 的信息Amazon Web Services Management Console,请参阅以下内容:

有关使用Amazon SDK for Java(以及CreateQueueSetQueueAttributes、和GetQueueAttributes操作)管理 SSE 的信息,请参阅以下示例:

一旦 Amazon SQNS 收到消息,SSE 就会对消息进行加密。这些消息以加密形式存储,并且Amazon SQS 消息发送给授权的消费者时,这些消息以加密形式存储。

重要

对启用 SSE 的队列的所有请求都必须使用 HTTPS 和签名版本 4

可以使用Amazon Security Token ServiceAssumeRole操作向 Amazon SQS 发送通知的Amazon服务的某些功能与 SSE 兼容,但仅适用于标准队列:

有关其他服务与加密队列的兼容性的信息,请参阅配置 Amazon 服务的 KMS 权限和您的服务文档。

Amazon KMS 将安全、高度可用的硬件和软件结合起来,提供可扩展到云的密钥管理系统。将 Amazon SQS 与Amazon KMS结合使用时,加密消息数据的数据密钥也将进行加密并且与其保护的数据存储在一起。

使用 Amazon KMS 具有以下好处:

  • 您可以创建和Amazon KMS keys管理。

  • 您还可以为 Amazon SQS 使用Amazon托管 KMS 密钥 ID。

  • Amazon KMS 安全标准可帮助您满足与加密相关的合规性要求。

有关更多信息,请参阅 Amazon Key Management Service 开发人员指南中的什么是 Amazon Key Management Service?

加密范围

SSE 将对 Amazon SQS 队列中的消息正文。

SSE 不对以下各项进行加密:

  • 队列元数据 (队列名称和属性)

  • 消息元数据 (消息 ID、时间戳和属性)

  • 每队列指标

对消息进行加密将使其内容对未经授权的或匿名的用户不可用。启用 SSE 后,匿名SendMessage和对加密队列的ReceiveMessage请求将被拒绝。Amazon SQS 安全最佳实践建议不要使用匿名请求。如果您想向 Amazon SQS 队列发送匿名请求,请确保禁用 SSE。这不会影响 Amazon SQS 的正常运行:

  • 仅在启用队列加密后发送消息。Amazon SQS 不会加密积压的消息。

  • 任何加密的消息将保持加密状态,即使已禁用其队列的加密。

将消息移至死信队列不会影响其加密:

  • 当 Amazon SQS 将消息从加密的源队列移动到未加密的死信队列时,该消息将保持加密状态。

  • 当 Amazon SQS 将消息从未加密的源队列移动到加密的死信队列时,该消息保持未加密状态。

关键术语

以下关键术语有助于您更好地了解 SSE 的功能。有关详细信息,请参阅 Amazon Simple Queue Service API 参考

数据密钥

负责加密 Amazon SQS 消息的内容。

有关更多信息,请参阅开发者指南中Amazon Key Management Service开发者指南中的Amazon Encryption SDK数据密钥

数据密钥重用周期

Amazon SQS 在Amazon KMS再次调用之前,Amazon SQQS 可以重用数据密钥 ID。一个表示秒数的证书,介于 60 秒 (1 分钟) 和 86400 秒 (24 小时) 之间。默认值为 300 (5 分钟)。有关更多信息,请参阅了解数据密钥重用周期

注意

万一无法访问,Amazon SQS 会继续使用缓存的数据密钥,直到重新建立连接。Amazon KMS

KMS 钥 ID ID ID

KMS 钥 ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID IDAmazon 虽然适用于 Amazon SQS 的Amazon托管 KMS 密钥 IDalias/aws/sqs,但自定义 KMS 密钥 ID ID ID,例如 ID IDalias/MyAlias。您可以利用这些密钥 ID KMS 密钥 ID ID ID ID ID ID ID ID ID ID ID Amazon SQS ID ID ID ID

注意

记住以下内容:

  • 如果您未指定自定义 KMS 密钥,则 Amazon SQS 使用适用于 Amazon SQS 的Amazon托管 KMS 密钥 ID。

  • 首次使用为队列的 Amazon SQS 指定Amazon托管 KMS 密钥时,会为 Amazon SQSAmazon KMS 创建Amazon托管 KMS 密钥。Amazon Web Services Management Console

  • 或者,您第一次对启用了 SSE 的队使用SendMessageSendMessageBatch操作时,Amazon KMS创建 Amazon SQS 的Amazon托管 KMS 密钥 ID。

您可以利用控制Amazon KMS台的 Customer managed keys keys keys keys keys keys keys keys keys 使用方式的策略和审核 CMS 密钥使用CreateKeyAmazon KMS情况。有关更多信息,请参阅Amazon Key Management Service开发人员指南中的 KMS 密钥和创建密钥。有关 KMS 密钥标识符的更多示例,请参阅 KeyIdAmazon Key Management ServiceAPI 参考中的有关查找 KMS 密钥 ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID IDAmazon Key Management Service

重要

使用 Amazon KMS 无需支付额外费用。有关更多信息,请参阅 估算 Amazon KMS 成本Amazon Key Management Service 定价

信封加密

加密的数据的安全性部分取决于如何保护可解密该数据的数据密钥。Amazon SQS 使用 KMS 密钥加密数据密钥,然后加密的数据密钥与加密消息一起存储。这种使用 KMS 密钥加密数据密钥的做法称为信封加密。

有关封装加密的更多信息,请参阅 Amazon Encryption SDK 开发人员指南封装加密