メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

AWS SDK を使用した Amazon S3 への AWS Key Management Service の指定

AWS SDK を使用して、AWS Key Management Service (AWS KMS) が管理する暗号化キーを使用するように Amazon S3 に対してリクエストできます。このセクションでは、AWS SDK for Java および AWS SDK for .NET を使用する例を示します。他の SDK については、「サンプルコードとライブラリ」を参照してください。

AWS SDK for Java

このセクションでは、AWS SDK for Java を使用したさまざまな Amazon S3 オペレーションと、AWS KMS が管理する暗号化キーの使用方法について説明します。

Put オペレーション

AWS SDK for Java を使用してオブジェクトをアップロードする場合、次のリクエストのように SSEAwsKeyManagementParams プロパティを追加することによって、AWS KMS が管理する暗号化キーを使用するように Amazon S3 に対してリクエストできます。

Copy
PutObjectRequest putRequest = new PutObjectRequest(bucketName, keyName, file).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams());

この場合、Amazon S3 はデフォルトのマスターキーを使用します(AWS KMS で管理されたキーによるサーバー側の暗号化 (SSE-KMS) を使用したデータの保護 を参照)。任意で独自のキーを作成し、リクエストで指定することができます。

Copy
PutObjectRequest putRequest = new PutObjectRequest(bucketName, keyName, file).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams(keyID));

キーの作成の詳細については、『AWS Key Management Service Developer Guide』の「AWS KMS API のプログラミング」を参照してください。

オブジェクトをアップロードするためのコード例については、以下のトピックを参照してください。前出のコード例に示したように、これらのコード例は更新して暗号化情報を追加する必要があります。

Copy オペレーション

オブジェクトをコピーするには、同じリクエストプロパティ (ServerSideEncryptionMethod および ServerSideEncryptionKeyManagementServiceKeyId) を追加して、AWS KMS が管理する暗号化キーを使用するように Amazon S3 に対してリクエストします。 オブジェクトのコピーの詳細については、「オブジェクトのコピー」を参照してください。

署名済み URL

AWS KMS が管理する暗号化キーを使用して暗号化されたオブジェクトの、署名済み URL を作成する際には、署名バージョン 4 を明示的に指定する必要があります。

Copy
ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setSignerOverride("AWSS3V4SignerType"); AmazonS3Client s3client = new AmazonS3Client( new ProfileCredentialsProvider(), clientConfiguration); ...

コード例については、「AWS SDK for Java を使用した署名付きオブジェクト URL の生成」を参照してください。

AWS SDK for .NET

このセクションでは、AWS SDK for .NET を使用したさまざまな Amazon S3 オペレーションと、AWS KMS が管理する暗号化キーの使用方法について説明します。

Put オペレーション

AWS SDK for .NET を使用してオブジェクトをアップロードする場合、次のリクエストのように ServerSideEncryptionMethod プロパティを追加することによって、AWS KMS が管理する暗号化キーを使用するように Amazon S3 に対してリクエストできます。

Copy
PutObjectRequest putRequest = new PutObjectRequest { BucketName = bucketName, Key = keyName, // other properties. ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS };

この場合、Amazon S3 はデフォルトのマスターキーを使用します(AWS KMS で管理されたキーによるサーバー側の暗号化 (SSE-KMS) を使用したデータの保護 を参照)。任意で独自のキーを作成し、リクエストで指定することができます。

Copy
PutObjectRequest putRequest1 = new PutObjectRequest { BucketName = bucketName, Key = keyName, // other properties. ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS, ServerSideEncryptionKeyManagementServiceKeyId = keyId };

キーの作成の詳細については、『AWS Key Management Service Developer Guide』の「AWS KMS API のプログラミング」を参照してください。

オブジェクトをアップロードするためのコード例については、以下のトピックを参照してください。前出のコード例に示したように、これらのコード例は更新して暗号化情報を提供する必要があります。

Copy オペレーション

オブジェクトをコピーするには、同じリクエストプロパティ(ServerSideEncryptionMethod および ServerSideEncryptionKeyManagementServiceKeyId)を追加して、AWS KMS が管理する暗号化キーを使用するように Amazon S3 に対してリクエストします。オブジェクトのコピーの詳細については、「オブジェクトのコピー」を参照してください。

署名済み URL

AWS KMS が管理する暗号化キーを使用して暗号化されたオブジェクトの、署名済み URL を作成する際には、署名バージョン 4 を明示的に指定する必要があります。

Copy
AWSConfigs.S3Config.UseSignatureVersion4 = true;

コード例については、「AWS SDK for .NET を使用した署名付きオブジェクト URL の生成」を参照してください。

このページの内容: