Amazon SQS キューでのサーバー側の暗号化の使用 - Amazon Simple Queue Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SQS キューでのサーバー側の暗号化の使用

を使用して AWS SDK for Java 、Amazon SQS キューにサーバー側の暗号化 (SSE) を追加できます。各キューは AWS Key Management Service (AWS KMS) KMS キーを使用してデータ暗号化キーを生成します。この例では、Amazon SQS の AWS マネージド KMS キーを使用します。 Amazon SQS SSE および KMS キーのロールの使用における詳しい情報については、「Amazon での保管時の暗号化 SQS」をご参照ください。

既存のキューに SSE を追加

既存のキューのサーバーサイドの暗号化を有効にするには、SetQueueAttributesメソッドを使用してKmsMasterKeyId属性を設定します。

次のコード例では、 を Amazon SQS の AWS マネージド KMS キー AWS KMS key として設定します。 Amazon SQS また、この例では、AWS KMS key 再利用期間を 140 秒に設定します。

サンプルコードを実行する前に、 AWS 認証情報が設定されていることを確認してください。詳細については、「 AWS SDK for Java 2.x デベロッパーガイド」の「開発用の AWS 認証情報とリージョンの設定」を参照してください。

// 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 KMS key 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の無効化

既存のキューに対してサーバーサイドの暗号化を無効にするには、SetQueueAttributes メソッドを使用して、KmsMasterKeyId属性を空の文字列に設定します。

重要

null は、の有効な値ではありません。KmsMasterKeyId

SSEを使用してキューを作成する

キューの作成時にSSEを有効にするには、API メソッドKmsMasterKeyIdに属性CreateQueueを追加します。

以下の例では、SSE を有効にして新しいキューを作成する方法を示します。このキューは、Amazon SQS の AWS マネージド KMS キーを使用します。また、この例では、AWS KMS key 再利用期間を 160 秒に設定します。

サンプルコードを実行する前に、 AWS 認証情報が設定されていることを確認してください。詳細については、「 AWS SDK for Java 2.x デベロッパーガイド」の「開発用の AWS 認証情報とリージョンの設定」を参照してください。

// 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 KMS key 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 キューサービス API リファレンスをご参照ください。

特定のキューの KMS キー ID またはデータキーの再利用期間を取得する場合、GetQueueAttributes メソッドを実行して KmsMasterKeyId および KmsDataKeyReusePeriodSeconds 値を取得します。