使用别名 - AWS Key Management Service

使用别名

本主题中的示例使用 AWS KMS API 创建、查看、更新和删除别名。有关别名的信息,请参阅 使用别名

创建别名

在 AWS Management Console 中创建 AWS KMS key 时,您必须创建它的别名。但是,创建 KMS 密钥的 CreateKey 操作不会创建别名。

要创建别名,请使用 CreateAlias 操作。别名在账户和区域中必须是唯一的。您无法创建以 aws/ 开头的别名。aws/ 前缀被 Amazon Web Services 保留用于 AWS 托管式密钥

在需要客户端对象的语言中,这些示例使用您在 AWS KMS 中创建的 创建客户端 客户端对象。

Java

有关详细信息,请参阅 AWS SDK for Java API 参考中的 createAlias 方法

// Create an alias for a KMS key // String aliasName = "alias/projectKey1"; // Replace the following example key ARN with a valid key ID or key 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#

有关详细信息,请参阅 https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceCreateAliasCreateAliasRequest.html 中的 AWS SDK for .NETCreateAlias 方法

// Create an alias for a KMS key // String aliasName = "alias/projectKey1"; // Replace the following example key ARN with a valid key ID or key 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 KMS key alias_name = 'alias/projectKey1' # Replace the following example key ARN with a valid key ID or key 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 KMS key alias_name = 'alias/projectKey1' # Replace the following example key ARN with a valid key ID or key ARN target_key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.create_alias({ alias_name: alias_name, target_key_id: target_key_id })
PHP

有关详细信息,请参阅 https://docs.aws.amazon.com/sdk-for-php/latest/reference/api-kms-2014-11-01.html#createalias 中的 AWS SDK for PHPCreateAlias 方法

// Create an alias for a KMS key // $aliasName = "alias/projectKey1"; // 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->createAlias([ 'AliasName' => $aliasName, 'TargetKeyId' => $keyId, ]);
Node.js

有关详细信息,请参阅适用于 Node.js 中的 JavaScript 的 AWS 开发工具包中的 createAlias 属性

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

要创建别名,请使用 New-KMSAlias cmdlet。别名名称区分大小写。

# Create an alias for a KMS key $aliasName = 'alias/projectKey1' # Replace the following example key ARN with a valid key ID or key ARN $targetKeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' New-KMSAlias -TargetKeyId $targetKeyId -AliasName $aliasName

要使用 AWS KMS PowerShell cmdlets,请安装 AWS.Tools.KeyManagementService 模块。有关更多信息,请参阅 AWS Tools for Windows PowerShell 用户指南

列出别名

要列出账户和区域中的别名,请使用 ListAliases 操作。

默认情况下,ListAliases 命令会返回账户和区域中的所有别名。这包括您创建的与您的客户托管密钥关联的别名,以及 AWS 创建并与您的 AWS 托管式密钥 关联的别名。该响应可能还包括没有 TargetKeyId 字段的别名。这些是 AWS 已创建但尚未与 KMS 密钥关联的预定义别名。

在需要客户端对象的语言中,这些示例使用您在 AWS KMS 中创建的 创建客户端 客户端对象。

Java

有关 Java 实施的详细信息,请参阅中的 AWS SDK for Java API 参考中的 listAliases 方法

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

有关详细信息,请参阅 https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceListAliasesListAliasesRequest.html 中的 AWS SDK for .NETListAliases 方法

// List the aliases in this AWS 账户 // 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 账户 response = kms_client.list_aliases( Limit=10 )
Ruby

有关详细信息,请参阅 AWS SDK for Ruby 中的 list_aliases 实例方法。

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

有关详细信息,请参阅 https://docs.aws.amazon.com/sdk-for-php/latest/reference/api-kms-2014-11-01.html#listaliases 中的 AWS SDK for PHPList Aliases 方法

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

有关详细信息,请参阅适用于 Node.js 中的 JavaScript 的 AWS 开发工具包中的 listAliases 属性

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

要列出账户和区域中的别名,请使用 Get-KMSAliasList cmdlet。

为限制输出对象的数量,此示例使用 Select-Object cmdlet,而不是 Limit 参数,该参数在列表 cmdlet 中将被弃用。有关在 AWS Tools for PowerShell 中分页输出的帮助,请参阅使用 AWS Tools for PowerShell 的输出分页

# List the aliases in this AWS 账户 $limit = 10 $result = Get-KMSAliasList | Select-Object -First $limit

要使用 AWS KMS PowerShell cmdlets,请安装 AWS.Tools.KeyManagementService 模块。有关更多信息,请参阅 AWS Tools for Windows PowerShell 用户指南

要仅列出与特定 KMS 密钥关联的别名,请使用 KeyId 参数。其值可以是区域中任何 KMS 密钥的密钥 ID密钥 ARN。您不能指定别名名称或别名 ARN。

Java

有关 Java 实施的详细信息,请参阅中的 AWS SDK for Java API 参考中的 listAliases 方法

// List the aliases for one 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"; ListAliasesRequest req = new ListAliasesRequest().withKeyId(keyId); ListAliasesResult result = kmsClient.listAliases(req);
C#

有关详细信息,请参阅 https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceListAliasesListAliasesRequest.html 中的 AWS SDK for .NETListAliases 方法

// List the aliases for one 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"; ListAliasesRequest listAliasesRequest = new ListAliasesRequest() { KeyId = keyId }; ListAliasesResponse listAliasesResponse = kmsClient.ListAliases(listAliasesRequest);
Python

有关详细信息,请参阅 AWS SDK for Python (Boto3) 中的 list_aliases 方法

# List the aliases for one 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.list_aliases( KeyId=key_id )
Ruby

有关详细信息,请参阅 AWS SDK for Ruby 中的 list_aliases 实例方法。

# List the aliases for one 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.list_aliases({ key_id: key_id })
PHP

有关详细信息,请参阅 https://docs.aws.amazon.com/sdk-for-php/latest/reference/api-kms-2014-11-01.html#listaliases 中的 AWS SDK for PHPList Aliases 方法

// List the aliases for one 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->listAliases([ 'KeyId' => $keyId, ]);
Node.js

有关详细信息,请参阅适用于 Node.js 中的 JavaScript 的 AWS 开发工具包中的 listAliases 属性

// List the aliases for one 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.listAliases({ KeyId }, (err, data) => { ... });
PowerShell

若要列出 KMS 密钥的别名,请使用 Get-KMSAliasList cmdlet 的 KeyId 参数。

# List the aliases for one 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' $response = Get-KmsAliasList -KeyId $keyId

要使用 AWS KMS PowerShell cmdlets,请安装 AWS.Tools.KeyManagementService 模块。有关更多信息,请参阅 AWS Tools for Windows PowerShell 用户指南

更新别名

要将现有别名与其他 KMS 密钥关联,请使用 UpdateAlias 操作。

在需要客户端对象的语言中,这些示例使用您在 AWS KMS 中创建的 创建客户端 客户端对象。

Java

有关 Java 实施的详细信息,请参阅中的 AWS SDK for Java API 参考中的 updateAlias 方法

// Updating an alias // String aliasName = "alias/projectKey1"; // Replace the following example key ARN with a valid key ID or key 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#

有关详细信息,请参阅 https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceUpdateAliasUpdateAliasRequest.html 中的 AWS SDK for .NETUpdateAlias 方法

// Updating an alias // String aliasName = "alias/projectKey1"; // Replace the following example key ARN with a valid key ID or key 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' # Replace the following example key ARN with a valid key ID or key 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 alias_name = 'alias/projectKey1' # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321' response = kmsClient.update_alias({ alias_name: alias_name, target_key_id: key_id })
PHP

有关详细信息,请参阅 https://docs.aws.amazon.com/sdk-for-php/latest/reference/api-kms-2014-11-01.html#updatealias 中的 AWS SDK for PHPUpdateAlias 方法

// Updating an alias // $aliasName = "alias/projectKey1"; // Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321'; $result = $KmsClient->updateAlias([ 'AliasName' => $aliasName, 'TargetKeyId' => $keyId, ]);
Node.js

有关详细信息,请参阅适用于 Node.js 中的 JavaScript 的 AWS 开发工具包中的 updateAlias 属性

// Updating an alias // const AliasName = 'alias/projectKey1'; // Replace the following example key ARN with a valid key ID or key ARN const TargetKeyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321'; kmsClient.updateAlias({ AliasName, TargetKeyId }, (err, data) => { ... });
PowerShell

若要更改与别名关联的 KMS 密钥,请使用 Update-KMSAlias cmdlet。别名名称区分大小写。

Update-KMSAlias cmdlet 不返回任何输出。要验证该命令是否有效,请使用 Get-KMSAliasList cmdlet。

# Updating an alias $aliasName = 'alias/projectKey1' # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321' Update-KMSAlias -AliasName $aliasName -TargetKeyID $keyId

要使用 AWS KMS PowerShell cmdlets,请安装 AWS.Tools.KeyManagementService 模块。有关更多信息,请参阅 AWS Tools for Windows PowerShell 用户指南

删除别名

要删除别名,请使用 DeleteAlias 操作。删除别名不会影响关联的 KMS 密钥。

在需要客户端对象的语言中,这些示例使用您在 AWS KMS 中创建的 创建客户端 客户端对象。

Java

有关详细信息,请参阅 AWS SDK for Java API 参考中的 deleteAlias 方法

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

有关详细信息,请参阅 https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceDeleteAliasDeleteAliasRequest.html 中的 AWS SDK for .NETDeleteAlias 方法

// Delete an alias for a KMS key // 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 KMS key alias_name = 'alias/projectKey1' response = kms_client.delete_alias( AliasName=alias_name )
Ruby

有关详细信息,请参阅 AWS SDK for Ruby 中的 delete_alias 实例方法。

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

有关详细信息,请参阅 https://docs.aws.amazon.com/sdk-for-php/latest/reference/api-kms-2014-11-01.html#deletealias 中的 AWS SDK for PHPDeleteAlias 方法

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

有关详细信息,请参阅适用于 Node.js 中的 JavaScript 的 AWS 开发工具包中的 deleteAlias 属性

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

要删除别名,请使用 Remove-KMSAlias cmdlet。别名名称区分大小写。

由于此 cmdlet 永久删除别名,因此 PowerShell 会提示您确认该命令。ConfirmImpactHigh,因此您不能使用 ConfirmPreference 禁止显示此提示。如果必须禁止显示确认提示,请添加值为 Confirm$false 公共参数,例如:-Confirm:$false

Remove-KMSAlias cmdlet 不返回任何输出。要验证该命令是否有效,请使用 Get-KMSAliasList cmdlet。

# Delete an alias for a KMS key $aliasName = 'alias/projectKey1' Remove-KMSAlias -AliasName $aliasName

要使用 AWS KMS PowerShell cmdlets,请安装 AWS.Tools.KeyManagementService 模块。有关更多信息,请参阅 AWS Tools for Windows PowerShell 用户指南