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

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

使用 服务器端加密 (SSE)

您可以使用 AWS SDK for Java 添加 服务器端加密 (SSE)到 Amazon SQS 队列。每个队列使用 AWS Key Management Service (AWS KMS)客户主密钥(CMK),用于生成数据加密密钥。此示例使用 AWS 管理的CMK Amazon SQS. 有关使用的更多信息 SSE 以及CMK的作用,请参见 静态加密.

添加 SSE 到现有队列

如何启用 服务器端加密 对于现有队列,使用 SetQueueAttributes 方法设置 KmsMasterKeyId 属性。

以下代码示例将主密钥设置为 AWS 管理的CMK Amazon SQS. 该示例还设置 主密钥重用期 至140秒。

// Create an SqsClient for the specified Region. SqsClient sqsClient = SqsClient.builder().region(Region.US_WEST_1).build(); // Get the URL of your queue. String myQueueName = "my queue"; GetQueueUrlResponse getQueueUrlResponse = sqsClient.getQueueUrl(GetQueueUrlRequest.builder().queueName(myQueueName).build()); String queueUrl = getQueueUrlResponse.queueUrl(); // Create a hashmap for the attributes. Add the key alias and reuse period to the hashmap. HashMap<QueueAttributeName, String> attributes = new HashMap<QueueAttributeName, String>(); final String kmsMasterKeyAlias = "alias/aws/sqs"; // the alias of the AWS managed CMK for Amazon SQS. attributes.put(QueueAttributeName.KMS_MASTER_KEY_ID, kmsMasterKeyAlias); attributes.put(QueueAttributeName.KMS_DATA_KEY_REUSE_PERIOD_SECONDS, "140"); // Create the SetQueueAttributesRequest. SetQueueAttributesRequest set_attrs_request = SetQueueAttributesRequest.builder() .queueUrl(queueUrl) .attributes(attributes) .build(); sqsClient.setQueueAttributes(set_attrs_request);

禁用 SSE 队列的

如何禁用 服务器端加密 对于现有队列,设置 KmsMasterKeyId 实体到空字符串 SetQueueAttributes 方法。

重要

null 对于 KmsMasterKeyId 是无效值。

使用 SSE 创建队列

如何启用 SSE 创建队列时,添加 KmsMasterKeyId 实体到 CreateQueue API方法。

以下示例使用创建新队列 SSE 启用。队列使用 AWS 管理的CMK Amazon SQS. 该示例还设置 主密钥重用期 至160秒。

// Create an SqsClient for the specified Region. SqsClient sqsClient = SqsClient.builder().region(Region.US_WEST_1).build(); // Create a hashmap for the attributes. Add the key alias and reuse period to the hashmap. HashMap<QueueAttributeName, String> attributes = new HashMap<QueueAttributeName, String>(); final String kmsMasterKeyAlias = "alias/aws/sqs"; // the alias of the AWS managed CMK for Amazon SQS. attributes.put(QueueAttributeName.KMS_MASTER_KEY_ID, kmsMasterKeyAlias); attributes.put(QueueAttributeName.KMS_DATA_KEY_REUSE_PERIOD_SECONDS, "140"); // Add the attributes to the CreateQueueRequest. CreateQueueRequest createQueueRequest = CreateQueueRequest.builder() .queueName(queueName) .attributes(attributes) .build(); sqsClient.createQueue(createQueueRequest);

正在检索 SSE 属性

有关检索队列属性的信息,请参阅 示例Amazon Simple Queue Service API Reference.

要检索特定队列的CMKID或数据密钥重复使用期,请运行 GetQueueAttributes 方法和检索 KmsMasterKeyIdKmsDataKeyReusePeriodSeconds 值。