使用别名 - AWS Key Management Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用别名

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

创建别名

在 中创建客户主密钥 (CMK) 时AWS 管理控制台,您需要为其创建别名。但是,创建 CMKs 的 CreateKey 操作不会创建别名。

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

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

Java

有关详细信息,请参阅 https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/kms/AWSKMSClient.html#createAlias-com.amazonaws.services.kms.model.CreateAliasRequest- 中的AWS SDK for Java API ReferencecreateAlias 方法

// Create an alias for a CMK // String aliasName = "alias/projectKey1"; // 将以下示例键 ARN 替换为有效的键 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#

有关详细信息,请参阅 https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceCreateAliasCreateAliasRequest.html 中的 适用于 .NET 的 AWS 开发工具包CreateAlias 方法

// Create an alias for a CMK // String aliasName = "alias/projectKey1"; // 将以下示例键 ARN 替换为有效的键 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

有关详细信息,请参阅 中的 create_alias 方法适用于 Python (Boto3) 的 AWS 软件开发工具包。

# Create an alias for a CMK alias_name = 'alias/projectKey1' # 将以下示例键 ARN 替换为有效的键 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

有关详细信息,请参阅 https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#create_alias-instance_method 中的 适用于 Ruby 的 AWS 开发工具包create_alias 实例方法。

# Create an alias for a CMK alias_name = 'alias/projectKey1' # 将以下示例键 ARN 替换为有效的键 ID 或键 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/aws-sdk-php/latest/api-kms-2014-11-01.html#createalias 中的 适用于 PHP 的 AWS 开发工具包CreateAlias 方法

// Create an alias for a CMK // $aliasName = "alias/projectKey1"; // 将以下示例键 ARN 替换为有效的键 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

有关详细信息,请参阅 中的 https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/KMS.html#createAlias-propertycreateAlias 属性AWS SDK for JavaScript in Node.js

// Create an alias for a CMK // const AliasName = 'alias/projectKey1'; // 将以下示例键 ARN 替换为有效的键 ID 或键 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 CMK $aliasName = 'alias/projectKey1' # 将以下示例键 ARN 替换为有效的键 ID 或键 ARN $targetKeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' New-KMSAlias -TargetKeyId $targetKeyId -AliasName $aliasName

要使用 AWS KMS PowerShell cmdlet,请安装 AWS.Tools.KeyManagementService 模块。有关更多信息,请参阅 适用于 Windows PowerShell 的 AWS 工具 用户指南

列出别名

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

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

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

Java

有关 Java 实施的详细信息,请参阅https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/kms/AWSKMSClient.html#listAliases-com.amazonaws.services.kms.model.ListAliasesRequest-中的 AWS SDK for Java API ReferencelistAliases 方法

// List the aliases in this AWS account // 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 中的 适用于 .NET 的 AWS 开发工具包ListAliases 方法

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

有关详细信息,请参阅 中的 list_aliases 方法适用于 Python (Boto3) 的 AWS 软件开发工具包。

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

有关详细信息,请参阅 https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#list_aliases-instance_method 中的 适用于 Ruby 的 AWS 开发工具包list_aliases 实例方法。

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

有关详细信息,请参阅 https://docs.aws.amazon.com/aws-sdk-php/latest/api-kms-2014-11-01.html#listaliases 中的 适用于 PHP 的 AWS 开发工具包List Aliases 方法

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

有关详细信息,请参阅 中的 listAliases 属性AWS SDK for JavaScript in Node.js

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

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

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

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

要使用 AWS KMS PowerShell cmdlet,请安装 AWS.Tools.KeyManagementService 模块。有关更多信息,请参阅 适用于 Windows PowerShell 的 AWS 工具 用户指南

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

Java

有关 Java 实施的详细信息,请参阅https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/kms/AWSKMSClient.html#listAliases-com.amazonaws.services.kms.model.ListAliasesRequest-中的 AWS SDK for Java API ReferencelistAliases 方法

// List the aliases for one CMK // // 将以下示例键 ARN 替换为有效的键 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#

有关详细信息,请参阅 https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceListAliasesListAliasesRequest.html 中的 适用于 .NET 的 AWS 开发工具包ListAliases 方法

// List the aliases for one CMK // // 将以下示例键 ARN 替换为有效的键 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

有关详细信息,请参阅 中的 list_aliases 方法适用于 Python (Boto3) 的 AWS 软件开发工具包。

# List the aliases for one CMK # 将以下示例键 ARN 替换为有效的键 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

有关详细信息,请参阅 https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#list_aliases-instance_method 中的 适用于 Ruby 的 AWS 开发工具包list_aliases 实例方法。

# List the aliases for one CMK # 将以下示例键 ARN 替换为有效的键 ID 或键 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/aws-sdk-php/latest/api-kms-2014-11-01.html#listaliases 中的 适用于 PHP 的 AWS 开发工具包List Aliases 方法

// List the aliases for one CMK // // 将以下示例键 ARN 替换为有效的键 ID 或键 ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $result = $KmsClient->listAliases([ 'KeyId' => $keyId, ]);
Node.js

有关详细信息,请参阅 中的 https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/KMS.html#listAliases-propertylistAliases 属性AWS SDK for JavaScript in Node.js

// List the aliases for one CMK // // 将以下示例键 ARN 替换为有效的键 ID 或键 ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.listAliases({ KeyId }, (err, data) => { ... });
PowerShell

要列出的别名CMK,请使用 KeyId KMSAliasList cmdlet 的 参数。

# List the aliases for one CMK # 将以下示例键 ARN 替换为有效的键 ID 或键 ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' $response = Get-KmsAliasList -KeyId $keyId

要使用 AWS KMS PowerShell cmdlet,请安装 AWS.Tools.KeyManagementService 模块。有关更多信息,请参阅 适用于 Windows PowerShell 的 AWS 工具 用户指南

更新别名

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

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

Java

有关 Java 实施的详细信息,请参阅https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/kms/AWSKMSClient.html#updateAlias-com.amazonaws.services.kms.model.UpdateAliasRequest-中的 AWS SDK for Java API ReferenceupdateAlias 方法

// Updating an alias // String aliasName = "alias/projectKey1"; // 将以下示例键 ARN 替换为有效的键 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#

有关详细信息,请参阅 https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceUpdateAliasUpdateAliasRequest.html 中的 适用于 .NET 的 AWS 开发工具包UpdateAlias 方法

// Updating an alias // String aliasName = "alias/projectKey1"; // 将以下示例键 ARN 替换为有效的键 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

有关详细信息,请参阅 中的 update_alias 方法适用于 Python (Boto3) 的 AWS 软件开发工具包。

# Updating an alias alias_name = 'alias/projectKey1' # 将以下示例键 ARN 替换为有效的键 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

有关详细信息,请参阅 https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#update_alias-instance_method 中的 适用于 Ruby 的 AWS 开发工具包update_alias 实例方法。

# Updating an alias alias_name = 'alias/projectKey1' # 将以下示例键 ARN 替换为有效的键 ID 或键 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/aws-sdk-php/latest/api-kms-2014-11-01.html#updatealias 中的 适用于 PHP 的 AWS 开发工具包UpdateAlias 方法

// Updating an alias // $aliasName = "alias/projectKey1"; // 将以下示例键 ARN 替换为有效的键 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

有关详细信息,请参阅 中的 updateAlias 属性AWS SDK for JavaScript in Node.js

// Updating an alias // const AliasName = 'alias/projectKey1'; // 将以下示例键 ARN 替换为有效的键 ID 或键 ARN const TargetKeyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321'; kmsClient.updateAlias({ AliasName, TargetKeyId }, (err, data) => { ... });
PowerShell

要更改与别名CMK关联的 ,请使用 KMSAlias cmdlet。别名名称区分大小写。

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

# Updating an alias $aliasName = 'alias/projectKey1' # 将以下示例键 ARN 替换为有效的键 ID 或键 ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321' Update-KMSAlias -AliasName $aliasName -TargetKeyID $keyId

要使用 AWS KMS PowerShell cmdlet,请安装 AWS.Tools.KeyManagementService 模块。有关更多信息,请参阅 适用于 Windows PowerShell 的 AWS 工具 用户指南

删除别名

要删除别名,请使用 DeleteAlias 操作。删除别名对关联的 没有影响CMK。

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

Java

有关详细信息,请参阅 https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/kms/AWSKMSClient.html#deleteAlias-com.amazonaws.services.kms.model.DeleteAliasRequest- 中的AWS SDK for Java API ReferencedeleteAlias 方法

// Delete an alias for a CMK // 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 中的 适用于 .NET 的 AWS 开发工具包DeleteAlias 方法

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

有关详细信息,请参阅 中的 delete_alias 方法适用于 Python (Boto3) 的 AWS 软件开发工具包。

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

有关详细信息,请参阅 https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#delete_alias-instance_method 中的 适用于 Ruby 的 AWS 开发工具包delete_alias 实例方法。

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

有关详细信息,请参阅 https://docs.aws.amazon.com/aws-sdk-php/latest/api-kms-2014-11-01.html#deletealias 中的 适用于 PHP 的 AWS 开发工具包DeleteAlias 方法

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

有关详细信息,请参阅 中的 https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/KMS.html#deleteAlias-propertydeleteAlias 属性AWS SDK for JavaScript in Node.js

// Delete an alias for a CMK // 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 CMK $aliasName = 'alias/projectKey1' Remove-KMSAlias -AliasName $aliasName

要使用 AWS KMS PowerShell cmdlet,请安装 AWS.Tools.KeyManagementService 模块。有关更多信息,请参阅 适用于 Windows PowerShell 的 AWS 工具 用户指南