キーの使用 - AWS Key Management Service

キーの使用

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

KMS キーを作成する

AWS KMS key (KMS キー) を作成するには、CreateKey オペレーションを使用します。このセクションの例では、対称 KMS キーを作成します。これらの例で使用されている Description パラメータはオプションです。

クライアントオブジェクトを必要とする言語では、これらの例では「AWS KMS」で作成した クライアントの作成 クライアントオブジェクトを使用します。

AWS KMS コンソールで KMS キーを作成する方法については、キーの作成 を参照してください。

Java

詳細については、AWS SDK for Java API リファレンスcreateKey メソッド を参照してください。

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

詳細については、https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceCreateKeyCreateKeyRequest.html の AWS SDK for .NETCreateKey メソッドを参照してください。

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

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

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

詳細については、https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#create_key-instance_method の AWS SDK for Rubycreate_key インスタンスメソッドを参照してください。

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

詳細については、https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#createkey の AWS SDK for PHPCreateKey メソッドを参照してください。

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

詳細については、AWS SDK for JavaScript in Node.jscreateKey プロパティを参照してください。

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

PowerShell で KMS キーを作成するには、New-KmsKey コマンドレットを使用します。

# Create a KMS key $desc = 'Key for protecting critical data' New-KmsKey -Description $desc

AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService モジュールをインストールします。詳細については、AWS Tools for Windows PowerShell ユーザーガイドを参照してください。

データキーの生成

対称データキーを生成するには、 GenerateDataKey 操作を使用します。このオペレーションは、対称 KMS キーを受け取り、プレーンテキストのデータキーと、指定した KMS キーで暗号化されたデータキーのコピーを返します。各コマンドには、KeySpec または NumberOfBytes のいずれか (両方ではなく) を指定する必要があります。

クライアントオブジェクトを必要とする言語では、これらの例では「AWS KMS」で作成した クライアントの作成 クライアントオブジェクトを使用します。

Java

詳細については、AWS SDK for Java API リファレンスgenerateDataKey メソッドを参照してください。

// Generate a data key // // Replace the following example key ARN with any valid key identfier 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#

詳細については、https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceGenerateDataKeyGenerateDataKeyRequest.html の AWS SDK for .NETGenerateDataKey メソッドを参照してください。

// Generate a data key // // Replace the following example key ARN with any valid key identfier 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_data_key メソッドを参照してください。

# Generate a data key # Replace the following example key ARN with any valid key identfier 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

詳細については、https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#generate_data_key-instance_method の AWS SDK for Rubygenerate_data_key インスタンスメソッドを参照してください。

# Generate a data key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.generate_data_key({ key_id: key_id, key_spec: 'AES_256' }) plaintext_key = response.plaintext encrypted_key = response.ciphertext_blob
PHP

詳細については、https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#generatedatakey の AWS SDK for PHPGenerateDataKey メソッドを参照してください。

// Generate a data key // // Replace the following example key ARN with any valid key identfier $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.jsgenerateDataKey プロパティを参照してください。

// Generate a data key // // Replace the following example key ARN with any valid key identfier 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; ... } });
PowerShell

対称データキーを生成するには、 New-KmsDataKey コマンドレットを使用します。

出力では、プレーンテキストキー (Plaintext プロパティ内) と暗号化されたキー (CiphertextBlob プロパティ内) は MemoryStream オブジェクトです。それらを文字列に変換するには、MemoryStream クラス、または MemoryStream オブジェクトを文字列に変換するコマンドレットや関数 (Convert モジュールの ConvertFrom-MemoryStream および ConvertFrom-Base64 関数など) を使用します。

# Generate a data key # Replace the following example key ARN with any valid key identfier $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' $keySpec = 'AES_256' $response = New-KmsDataKey -KeyId $keyId -KeySpec $keySpec $plaintextKey = $response.Plaintext $encryptedKey = $response.CiphertextBlob

AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService モジュールをインストールします。詳細については、AWS Tools for Windows PowerShell ユーザーガイドを参照してください。

AWS KMS key の表示

KMS キー ARN およびキーステータスを含む AWS KMS key の詳細情報を取得するには、DescribeKey オペレーションを使用します。

DescribeKey はエイリアスを取得しません。エイリアスを取得するには、 ListAliases オペレーションを使用します。例については、「エイリアスの使用」を参照してください。

クライアントオブジェクトを必要とする言語では、これらの例では「AWS KMS」で作成した クライアントの作成 クライアントオブジェクトを使用します。

AWS KMS コンソールで KMS キーを表示する方法については、キーの表示 を参照してください。

Java

詳細については、AWS SDK for Java API リファレンスdescribeKey メソッドを参照してください。

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier 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#

詳細については、https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceDescribeKeyDescribeKeyRequest.html の AWS SDK for .NETDescribeKey メソッドを参照してください。

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier 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

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

# Describe a KMS key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.describe_key( KeyId=key_id )
Ruby

詳細については、https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#describe_key-instance_method の AWS SDK for Rubydescribe_key インスタンスメソッドを参照してください。

# Describe a KMS key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.describe_key({ key_id: key_id })
PHP

詳細については、https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#describekey の AWS SDK for PHPDescribeKey メソッドを参照してください。

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier $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.jsdescribeKey プロパティを参照してください。

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.describeKey({ KeyId }, (err, data) => { ... });
PowerShell

KMS キーに関する詳細情報を取得するには、Get-KmsKey コマンドレットを使用します。

# Describe a KMS key # Replace the following example key ARN with any valid key identfier $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' Get-KmsKey -KeyId $keyId

AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService モジュールをインストールします。詳細については、AWS Tools for Windows PowerShell ユーザーガイドを参照してください。

KMS キーのキー ID とキー ARN を取得する

AWS KMS keys のキー IDキー ARN を取得するには、ListKeys オペレーションを使用します。これらの例では、オプションの Limit パラメータを使用して、各呼び出しで返される KMS キーの最大数を設定します。AWS KMS オペレーションで KMS キーを識別する方法については、キー識別子 (KeyId) を参照してください。

クライアントオブジェクトを必要とする言語では、これらの例では「AWS KMS」で作成した クライアントの作成 クライアントオブジェクトを使用します。

AWS KMS コンソールでキー ID とキー ARN を検索する方法については、「キー ID と ARN を検索する」を参照してください。

Java

詳細については、AWS SDK for Java API リファレンスlistKeys メソッドを参照してください。

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

詳細については、https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceListKeysListKeysRequest.html の AWS SDK for .NETListKeys メソッドを参照してください。

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

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

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

詳細については、https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#list_keys-instance_method の AWS SDK for Rubylist_keys インスタンスメソッドを参照してください。

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

詳細については、https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listkeys の AWS SDK for PHPListKeys メソッドを参照してください。

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

詳細については、AWS SDK for JavaScript in Node.jslistKeys プロパティを参照してください。

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

アカウントとリージョン内のすべての KMS キーのキー ID とキー ARN を取得するには、Get-KmsKeyList コマンドレットを使用します。

出力オブジェクトの数を制限するために、この例では、リストコマンドレットで非推奨の Limit パラメータの代わりに、Select-Object コマンドレットを使用します。AWS Tools for PowerShell での出力のページ分割については、「AWS Tools for PowerShell での出力ページ分割」を参照してください。

# List KMS keys in this account $limit = 10 Get-KmsKeyList | Select-Object -First $limit

AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService モジュールをインストールします。詳細については、AWS Tools for Windows PowerShell ユーザーガイドを参照してください。

AWS KMS keys の有効化

無効になっている AWS KMS key を有効にするには、EnableKey オペレーションを使用します。

クライアントオブジェクトを必要とする言語では、これらの例では「AWS KMS」で作成した クライアントの作成 クライアントオブジェクトを使用します。

AWS KMS コンソールで KMS キーを有効または無効にする方法については、キーの有効化と無効化 を参照してください。

Java

Java の実装の詳細については、AWS SDK for Java API リファレンスenableKey メソッドを参照してください。

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key 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#

詳細については、https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceEnableKeyEnableKeyRequest.html の AWS SDK for .NETEnableKey メソッドを参照してください。

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key 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

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

# Enable a KMS key # Replace the following example key ARN with a valid key ID or key 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

詳細については、https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#enable_key-instance_method の AWS SDK for Rubyenable_key インスタンスメソッドを参照してください。

# Enable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.enable_key({ key_id: key_id })
PHP

詳細については、https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#enablekey の AWS SDK for PHPEnableKey メソッドを参照してください。

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key 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.jsenableKey プロパティを参照してください。

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.enableKey({ KeyId }, (err, data) => { ... });
PowerShell

KMS キーを有効にするには、Enable-KmsKey コマンドレットを使用します。

# Enable a KMS key # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' Enable-KmsKey -KeyId $keyId

AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService モジュールをインストールします。詳細については、AWS Tools for Windows PowerShell ユーザーガイドを参照してください。

AWS KMS key の無効化

KMS キーを無効にするには、DisableKey オペレーションを使用します。KMS キーを無効にすることで、暗号化オペレーションで使用されるのを防ぎます。

クライアントオブジェクトを必要とする言語では、これらの例では「AWS KMS」で作成した クライアントの作成 クライアントオブジェクトを使用します。

AWS KMS コンソールで KMS キーを有効または無効にする方法については、キーの有効化と無効化 を参照してください。

Java

詳細については、AWS SDK for Java API リファレンスdisableKey メソッドを参照してください。

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key 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#

詳細については、https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceDisableKeyDisableKeyRequest.html の AWS SDK for .NETDisableKey メソッドを参照してください。

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key 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

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

# Disable a KMS key # Replace the following example key ARN with a valid key ID or key 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

詳細については、https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#disable_key-instance_method の AWS SDK for Rubydisable_key インスタンスメソッドを参照してください。

# Disable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.disable_key({ key_id: key_id })
PHP

詳細については、https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#disablekey の AWS SDK for PHPDisableKey メソッドを参照してください。

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key 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.jsdisableKey プロパティを参照してください。

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.disableKey({ KeyId }, (err, data) => { ... });
PowerShell

KMS キーを無効にするには、Disable-KmsKey コマンドレットを使用します。

# Disable a KMS key # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' Disable-KmsKey -KeyId $keyId

AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService モジュールをインストールします。詳細については、AWS Tools for Windows PowerShell ユーザーガイドをご参照ください。