キーの使用 - 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#

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

// 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

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

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

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

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

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

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

で KMS キーを作成するには PowerShell、New-KmsKeycmdlet を使用します。

# 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#

詳細については、AWS SDK for .NET の「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() { 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

詳細については、AWS SDK for Ruby の「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 = kmsClient.generate_data_key({ key_id: key_id, key_spec: 'AES_256' }) plaintext_key = response.plaintext encrypted_key = response.ciphertext_blob
PHP

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

// 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 in JavaScript 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 クラスの メソッド、または Convert モジュールの ConvertFrom-MemoryStreamConvertFrom-Base64 関数などのMemoryStreamオブジェクトを文字列に変換するコマンドレットまたは関数を使用します。

# 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オペレーションを使用します。 AWS KMS キーのキーステータス

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#

詳細については、AWS SDK for .NET の「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 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

詳細については、AWS SDK for Ruby の「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 = kmsClient.describe_key({ key_id: key_id })
PHP

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

// 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 in JavaScript 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-KmsKeycmdlet を使用します。

# 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 を取得する

キー IDsキー ARNs を取得するにはAWS KMS keys、 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#

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

// 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

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

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

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

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

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

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

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

出力オブジェクトの数を制限するために、この例では、リストコマンドレットで非推奨の 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#

詳細については、AWS SDK for .NET の「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 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

詳細については、AWS SDK for Ruby の「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 = kmsClient.enable_key({ key_id: key_id })
PHP

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

// 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 in JavaScript 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-KmsKeycmdlet を使用します。

# 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#

詳細については、AWS SDK for .NET の「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 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

詳細については、AWS SDK for Ruby の「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 = kmsClient.disable_key({ key_id: key_id })
PHP

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

// 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 in JavaScript 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 ユーザーガイド」を参照してください。