キーの使用
このトピックの例では、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
-
詳細については、AWS SDK for Python (Boto3) の
create_key
メソッドを参照してください。 # Create a KMS key desc = 'Key for protecting critical data' response = kms_client.create_key( Description=desc )
- Ruby
-
詳細については、
create_key
の AWS SDK for Ruby インスタンスメソッドを参照してください。# 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.js の createKey プロパティを参照してください。
// 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 キーで暗号化されたデータキーのコピーを返します。各コマンドには、KeySpec
または NumberOfBytes
のいずれか (両方ではなく) を指定する必要があります。
データの暗号化にデータキーを使用する方法については、「AWS Encryption SDK」を参照してください。HMAC オペレーションでデータキーを使用することもできます。
クライアントオブジェクトを必要とする言語では、これらの例では「クライアントの作成」で作成した 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
-
詳細については、
generate_data_key
の AWS SDK for Ruby インスタンスメソッドを参照してください。# 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.js の generateDataKey プロパティを参照してください。
// 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
-
詳細については、AWS SDK for Python (Boto3) の
describe_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 = kms_client.describe_key( KeyId=key_id )
- Ruby
-
詳細については、
describe_key
の AWS SDK for Ruby インスタンスメソッドを参照してください。# 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.js の describeKey プロパティを参照してください。
// 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
-
詳細については、AWS SDK for Python (Boto3) の
list_keys
メソッドを参照してください。 # List KMS keys in this account response = kms_client.list_keys( Limit=10 )
- Ruby
-
詳細については、
list_keys
の AWS SDK for Ruby インスタンスメソッドを参照してください。# 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.js の listKeys プロパティを参照してください。
// 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
-
詳細については、AWS SDK for Python (Boto3) の
enable_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 = kms_client.enable_key( KeyId=key_id )
- Ruby
-
詳細については、
enable_key
の AWS SDK for Ruby インスタンスメソッドを参照してください。# 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.js の enableKey プロパティを参照してください。
// 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
-
詳細については、AWS SDK for Python (Boto3) の
disable_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 = kms_client.disable_key( KeyId=key_id )
- Ruby
-
詳細については、
disable_key
の AWS SDK for Ruby インスタンスメソッドを参照してください。# 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.js の disableKey プロパティを参照してください。
// 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 ユーザーガイドをご参照ください。