AWS Key Management Service
開発者ガイド

エイリアスの操作

このトピックの例では、AWS KMS API を使用してエイリアスを作成、表示、更新、および削除します。

エイリアスは、カスタマーマスターキー (CMK) のオプションの表示名です。各 CMK に複数のエイリアスを持つことができますが、各 CMK は 1 つの CMK のみを指します。エイリアス名は AWS アカウント内およびリージョン内で一意であることが必要です。複数のリージョンで実行するコードを簡素化するために同じエイリアス名を使用できますが、各リージョンの異なる CMK を指してください。

AWS KMS API オペレーションを使用して、エイリアスをリスト、作成、および削除できます。エイリアスを更新することもできます。その場合、既存のエイリアスが別の CMK に関連付けられます。エイリアス名を編集または変更するオペレーションはありません。既にエイリアスがある CMK 用にエイリアスを作成した場合、同じ CMK 用の別のエイリアスが作成されます。エイリアス名を変更するには、現在のエイリアスを削除してから CMK 用の新しいエイリアスを作成します。

エイリアスは CMK のプロパティではないので、CMK のプロパティを変更することなく既存の CMK に関連付けることも、関連付けを解除することもできます。エイリアスを削除しても、基になる CMK は削除されません。

エイリアスは、次のオペレーションで KeyId パラメータの値としてのみ使用できます。

  • DescribeKey

  • Encrypt

  • GenerateDataKey

  • GenerateDataKeyWithoutPlaintext

  • ReEncrypt

エイリアスは AWS アカウントで作成され、作成したアカウントでのみ把握されます。エイリアス名またはエイリアス ARN を使用して、別の AWS アカウントの CMK を識別することはできません。

エイリアスを指定するには、以下の例に示すように、エイリアス名またはエイリアス ARN を使用します。どちらの場合も、エイリアス名の前に "alias/" を付けてください。

// Fully specified ARN arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias

エイリアスの作成

エイリアスを作成するには、CreateAlias オペレーションを使用します。このエイリアスはアカウントとリージョンで一意であることが必要です。既にエイリアスがある CMK 用にエイリアスを作成した場合、CreateAlias によって同じ CMK に対して別のエイリアスが作成されます。既存のエイリアスは置き換えられません。

aws/ で始まるエイリアスを作成することはできません。aws/ プレフィックスは、AWS 管理 CMK のために Amazon Web Services によって予約されています。

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

JavaC#PythonRubyPHPNode.js
Java

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

// Create an alias for a CMK // String aliasName = "alias/projectKey1"; // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String targetKeyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; CreateAliasRequest req = new CreateAliasRequest().withAliasName(aliasName).withTargetKeyId(targetKeyId); kmsClient.createAlias(req);
C#

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

// Create an alias for a CMK // String aliasName = "alias/projectKey1"; // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String targetKeyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; CreateAliasRequest createAliasRequest = new CreateAliasRequest() { AliasName = aliasName, TargetKeyId = targetKeyId }; kmsClient.CreateAlias(createAliasRequest);
Python

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

# Create an alias for a CMK alias_name = 'alias/projectKey1' # 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 target_key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.create_alias( AliasName=alias_name, TargetKeyId=key_id )
Ruby

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

# Create an alias for a CMK aliasName = 'alias/projectKey1' # 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 targetKeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.create_alias({ alias_name: aliasName, target_key_id: targetKeyId })
PHP

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

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

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

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

エイリアスのリスト

アカウントとリージョンにエイリアスをリストするには、ListAliases オペレーションを使用します。

デフォルトでは、ListAliases コマンドはアカウントとリージョンのすべてのエイリアスを返します。これには、作成してカスタマー管理の CMK に関連付けたエイリアスと、AWS が作成し、AWS 管理の CMK に関連付けたエイリアスが含まれます。レスポンスには、TargetKeyId フィールドがないエイリアスが含まれている場合もあります。これらは、AWS が作成したが、まだ CMK と関連付けられていない事前定義されたエイリアスです。

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

JavaC#PythonRubyPHPNode.js
Java

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

// List the aliases in this AWS account // Integer limit = 10; ListAliasesRequest req = new ListAliasesRequest().withLimit(limit); ListAliasesResult result = kmsClient.listAliases(req);
C#

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

// List the aliases in this AWS account // int limit = 10; ListAliasesRequest listAliasesRequest = new ListAliasesRequest() { Limit = limit }; ListAliasesResponse listAliasesResponse = kmsClient.ListAliases(listAliasesRequest);
Python

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

# List the aliases in this AWS account response = kms_client.list_aliases( Limit=10 )
Ruby

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

# List the aliases in this AWS account response = kmsClient.list_aliases({ limit: 10 })
PHP

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

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

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

// List the aliases in this AWS account // const Limit = 10; kmsClient.listAliases({ Limit }, (err, data) => { ... });

特定の CMK に関連付けられているエイリアスのみをリストするには、KeyId パラメータを使用します。その値はリージョンの CMK の ID または Amazon リソースネーム (ARN) とすることができます。エイリアス名またはエイリアス ARN を指定することはできません。

JavaC#PythonRubyPHPNode.js
Java

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

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

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

// List the aliases for one CMK // // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; ListAliasesRequest listAliasesRequest = new ListAliasesRequest() { KeyId = keyId }; ListAliasesResponse listAliasesResponse = kmsClient.ListAliases(listAliasesRequest);
Python

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

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

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

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

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

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

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

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

エイリアスの更新

既存のエイリアスを別の CMK に関連付けるには、UpdateAlias オペレーションを使用します。

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

JavaC#PythonRubyPHPNode.js
Java

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

// Updating an alias // String aliasName = "alias/projectKey1"; // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String targetKeyId = "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321"; UpdateAliasRequest req = new UpdateAliasRequest() .withAliasName(aliasName) .withTargetKeyId(targetKeyId); kmsClient.updateAlias(req);
C#

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

// Updating an alias // String aliasName = "alias/projectKey1"; // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 String targetKeyId = "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321"; UpdateAliasRequest updateAliasRequest = new UpdateAliasRequest() { AliasName = aliasName, TargetKeyId = targetKeyId }; kmsClient.UpdateAlias(updateAliasRequest);
Python

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

# Updating an alias alias_name = 'alias/projectKey1' # 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 key_id = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321' response = kms_client.update_alias( AliasName=alias_name, TargetKeyID=key_id )
Ruby

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

# Updating an alias aliasName = 'alias/projectKey1' # 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 keyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321' response = kmsClient.update_alias({ alias_name: aliasName, target_key_id: keyId })
PHP

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

// Updating an alias // $aliasName = "alias/projectKey1"; // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 $keyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321'; $result = $KmsClient->updateAlias([ 'AliasName' => $aliasName, 'TargetKeyId' => $keyId, ]);
Node.js

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

// Updating an alias // const AliasName = 'alias/projectKey1'; // 以下の架空の CMK ARN を有効な CMK ID または ARN に置き換えます。 const TargetKeyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321'; kmsClient.updateAlias({ AliasName, TargetKeyId }, (err, data) => { ... });

エイリアスの削除

エイリアスを削除するには、DeleteAlias オペレーションを使用します。エイリアスを削除しても、基になる CMK には影響はありません。

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

JavaC#PythonRubyPHPNode.js
Java

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

// Delete an alias for a CMK // String aliasName = "alias/projectKey1"; DeleteAliasRequest req = new DeleteAliasRequest().withAliasName(aliasName); kmsClient.deleteAlias(req);
C#

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

// Delete an alias for a CMK // String aliasName = "alias/projectKey1"; DeleteAliasRequest deleteAliasRequest = new DeleteAliasRequest() { AliasName = aliasName }; kmsClient.DeleteAlias(deleteAliasRequest);
Python

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

# Delete an alias for a CMK alias_name = 'alias/projectKey1' response = kms_client.delete_alias( AliasName=alias_name )
Ruby

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

# Delete an alias for a CMK aliasName = 'alias/projectKey1' response = kmsClient.delete_alias({ alias_name: aliasName })
PHP

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

// Delete an alias for a CMK // $aliasName = "alias/projectKey1"; $result = $KmsClient->deleteAlias([ 'AliasName' => $aliasName, ]);
Node.js

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

// Delete an alias for a CMK // const AliasName = 'alias/projectKey1'; kmsClient.deleteAlias({ AliasName }, (err, data) => { ... });