AWS Key Management Service
開発者ガイド

キーの使用

このトピックの例では、AWS KMS API を使用して AWS KMS カスタマーマスターキーを作成、表示、有効化、無効化し、データキーを生成します。

カスタマーマスターキーの作成

カスタマーマスターキーを作成するには、CreateKey オペレーションを使用します。

次の例では、「クライアントの作成」で作成した KMS クライアントオブジェクトを使用します。

JavaC#PythonRubyPHPNode.js
Java

詳細については、『AWS SDK for Java API Reference』の「createKey メソッド」を参照してください。

// Create a CMK // String desc = "Key for protecting critical data"; CreateKeyRequest req = new CreateKeyRequest().withDescription(desc); CreateKeyResult result = kmsClient.createKey(req);
C#

詳細については、『AWS SDK for .NET』の「CreateKey メソッド」を参照してください。

// Create a CMK // String desc = "Key for protecting critical data"; CreateKeyRequest req = new CreateKeyRequest() { Description = desc }; CreateKeyResponse response = kmsClient.CreateKey(req);
Python

詳細については、『AWS SDK for Python (Boto3)』の「create_key メソッド」を参照してください。

# Create a CMK desc = 'Key for protecting critical data' response = kms_client.create_key( Description=desc )
Ruby

詳細については、『AWS SDK for Ruby』の「create_key」インスタンスメソッドを参照してください。

# Create a CMK desc = 'Key for protecting critical data' response = kmsClient.create_key({ description: desc })
PHP

詳細については、『AWS SDK for PHP』の「CreateKey メソッド」を参照してください。

// Create a CMK // $desc = "Key for protecting critical data"; $result = $KmsClient->createKey([ 'Description' => $desc ]);
Node.js

詳細については、『AWS SDK for JavaScript in Node.js』の「createKey プロパティ」を参照してください。

// Create a CMK // const Description = 'Key for protecting critical data'; kmsClient.createKey({ Description }, (err, data) => { ... });

データキーの生成

データキーを生成するには、GenerateDataKey オペレーションを使用します。このオペレーションでは、作成されるデータキーのプレーンテキストおよび暗号化されたコピーが返されます。

次の例では、「クライアントの作成」で作成した KMS クライアントオブジェクトを使用します。

JavaC#PythonRubyPHPNode.js
Java

詳細については、『AWS SDK for Java API Reference』の「generateDataKey メソッド」を参照してください。

// Generate a data key // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; GenerateDataKeyRequest dataKeyRequest = new GenerateDataKeyRequest(); dataKeyRequest.setKeyId(keyId); dataKeyRequest.setKeySpec("AES_256"); GenerateDataKeyResult dataKeyResult = kmsClient.generateDataKey(dataKeyRequest); ByteBuffer plaintextKey = dataKeyResult.getPlaintext(); ByteBuffer encryptedKey = dataKeyResult.getCiphertextBlob();
C#

詳細については、『AWS SDK for .NET』の「GenerateDataKey メソッド」を参照してください。

// Generate a data key // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; GenerateDataKeyRequest dataKeyRequest = new GenerateDataKeyRequest() { KeyId = keyId, KeySpec = DataKeySpec.AES_256 }; GenerateDataKeyResponse dataKeyResponse = kmsClient.GenerateDataKey(dataKeyRequest); MemoryStream plaintextKey = dataKeyResponse.Plaintext; MemoryStream encryptedKey = dataKeyResponse.CiphertextBlob;
Python

詳細については、『AWS SDK for Python (Boto3)』の「generate_date_key メソッド」を参照してください。

# Generate a data key # 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.generate_data_key( KeyID=key_id, KeySpec='AES_256' ) plaintext_key = response['Plaintext'] encrypted_key = response['CiphertextBlob']
Ruby

詳細については、『AWS SDK for Ruby』の「generate_data_key」 インスタンスメソッドを参照してください。

# Generate a data key # 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.generate_data_key({ key_id: keyId, key_spec: 'AES_256' }) plaintextKey = response.plaintext encryptedKey = response.ciphertext_blob
PHP

詳細については、『AWS SDK for PHP』の「GenerateDataKey メソッド」を参照してください。

// Generate a data key // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $keySpec = 'AES_256'; $result = $KmsClient->generateDataKey([ 'KeyId' => $keyId, 'KeySpec' => $keySpec, ]); $plaintextKey = $result['Plaintext']; $encryptedKey = $result['CiphertextBlob'];
Node.js

詳細については、『AWS SDK for JavaScript in Node.js』の「generateDataKey プロパティ」を参照してください。

// Generate a data key // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; const KeySpec = 'AES_256'; kmsClient.generateDataKey({ KeyId, KeySpec }, (err, data) => { if (err) console.log(err, err.stack); else { const { CiphertextBlob, Plaintext } = data; ... } });

カスタマーマスターキーの表示

CMK ARN およびキーの状態を含むカスタマーマスターキー (CMK) についての詳細を取得するには、DescribeKey オペレーションを使用します。

DescribeKey でエイリアスは取得されません。エイリアスを取得するには、ListAliases オペレーションを使用します。

次の例では、「クライアントの作成」で作成した KMS クライアントオブジェクトを使用します。

JavaC#PythonRubyPHPNode.js
Java

詳細については、『AWS SDK for Java API Reference』の「describeKey メソッド」を参照してください。

// Describe a CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; DescribeKeyRequest req = new DescribeKeyRequest().withKeyId(keyId); DescribeKeyResult result = kmsClient.describeKey(req);
C#

詳細については、『AWS SDK for .NET』の「DescribeKey メソッド」を参照してください。

// Describe a CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; DescribeKeyRequest describeKeyRequest = new DescribeKeyRequest() { KeyId = keyId }; DescribeKeyResponse describeKeyResponse = kmsClient.DescribeKey(describeKeyRequest);
Python

詳細については、『AWS SDK for Python (Boto3)』の「describe_key メソッド」を参照してください。

# Describe a CMK # 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.describe_key( KeyId=key_id )
Ruby

詳細については、『AWS SDK for Ruby』の「describe_key」インスタンスメソッドを参照してください。

# Describe a CMK # 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.describe_key({ key_id: keyId })
PHP

詳細については、『AWS SDK for PHP』の「DescribeKey メソッド」を参照してください。

// Describe a CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $result = $KmsClient->describeKey([ 'KeyId' => $keyId, ]);
Node.js

詳細については、『AWS SDK for JavaScript in Node.js』の「describeKey プロパティ」を参照してください。

// Describe a CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.describeKey({ KeyId }, (err, data) => { ... });

カスタマーマスターキーのキー ID およびキー ARN の取得

カスタマーマスターキーの ID および ARN を取得するには、ListKeys オペレーションを使用します。

次の例では、「クライアントの作成」で作成した KMS クライアントオブジェクトを使用します。

JavaC#PythonRubyPHPNode.js
Java

詳細については、『AWS SDK for Java API Reference』の「listKeys メソッド」を参照してください。

// List CMKs in this account // Integer limit = 10; ListKeysRequest req = new ListKeysRequest().withLimit(limit); ListKeysResult result = kmsClient.listKeys(req);
C#

詳細については、『AWS SDK for .NET』の「ListKeys メソッド」を参照してください。

// List CMKs in this account // int limit = 10; ListKeysRequest listKeysRequest = new ListKeysRequest() { Limit = limit }; ListKeysResponse listKeysResponse = kmsClient.ListKeys(listKeysRequest);
Python

詳細については、『AWS SDK for Python (Boto3)』の「list_keys メソッド」を参照してください。

# List CMKs in this account response = kms_client.list_keys( Limit=10 )
Ruby

詳細については、『AWS SDK for Ruby』の「list_keys」インスタンスメソッドを参照してください。

# List CMKS in this account response = kmsClient.list_keys({ limit: 10 })
PHP

詳細については、『AWS SDK for PHP』の「ListKeys メソッド」を参照してください。

// List CMKs in this account // $limit = 10; $result = $KmsClient->listKeys([ 'Limit' => $limit, ]);
Node.js

詳細については、『AWS SDK for JavaScript in Node.js』の「listKeys プロパティ」を参照してください。

// List CMKs in this account // const Limit = 10; kmsClient.listKeys({ Limit }, (err, data) => { ... });

カスタマーマスターキーの有効化

無効化されたカスタマーマスターキー (CMK) を有効化するには、EnableKey オペレーションを使用します。

次の例では、「クライアントの作成」で作成した KMS クライアントオブジェクトを使用します。

JavaC#PythonRubyPHPNode.js
Java

Java の実装の詳細については、『AWS SDK for Java API Reference』の「enableKey メソッド」を参照してください。

// Enable a CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; EnableKeyRequest req = new EnableKeyRequest().withKeyId(keyId); kmsClient.enableKey(req);
C#

詳細については、『AWS SDK for .NET』の「EnableKey メソッド」を参照してください。

// Enable a CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; EnableKeyRequest enableKeyRequest = new EnableKeyRequest() { KeyId = keyId }; kmsClient.EnableKey(enableKeyRequest);
Python

詳細については、『AWS SDK for Python (Boto3)』の「enable_key メソッド」を参照してください。

# Enable a CMK # 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.enable_key( KeyId=key_id )
Ruby

詳細については、『AWS SDK for Ruby』の「enable_key」インスタンスメソッドを参照してください。

# Enable a CMK # 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.enable_key({ key_id: keyId })
PHP

詳細については、『AWS SDK for PHP』の「EnableKey メソッド」を参照してください。

// Enable a CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $result = $KmsClient->enableKey([ 'KeyId' => $keyId, ]);
Node.js

詳細については、『AWS SDK for JavaScript in Node.js』の「enableKey のプロパティ」を参照してください。

// Enable a CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.enableKey({ KeyId }, (err, data) => { ... });

カスタマーマスターキーの無効化

CMK を無効にするには、DisableKey オペレーションを使用します。CMK を無効にすると、使用されなくなります。

次の例では、「クライアントの作成」で作成した KMS クライアントオブジェクトを使用します。

JavaC#PythonRubyPHPNode.js
Java

詳細については、『AWS SDK for Java API Reference』の「disableKey メソッド」を参照してください。

// Disable a CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; DisableKeyRequest req = new DisableKeyRequest().withKeyId(keyId); kmsClient.disableKey(req);
C#

詳細については、『AWS SDK for .NET』の「DisableKey メソッド」を参照してください。

// Disable a CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; DisableKeyRequest disableKeyRequest = new DisableKeyRequest() { KeyId = keyId }; kmsClient.DisableKey(disableKeyRequest);
Python

詳細については、『AWS SDK for Python (Boto3)』の「disable_key メソッド」を参照してください。

# Disable a CMK # 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.disable_key( KeyId=key_id )
Ruby

詳細については、『AWS SDK for Ruby』の「disable_key」インスタンスメソッドを参照してください。

# Disable a CMK # 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.disable_key({ key_id: keyId })
PHP

詳細については、『AWS SDK for PHP』の「DisableKey メソッド」を参照してください。

// Disable a CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $result = $KmsClient->disableKey([ 'KeyId' => $keyId, ]);
Node.js

詳細については、​『AWS SDK for JavaScript in Node.js』の「disableKey プロパティ」を参照してください。

// Disable a CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.disableKey({ KeyId }, (err, data) => { ... });