AWS Key Management Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

查看密钥

您可以使用 AWS 管理控制台AWS Key Management Service (AWS KMS) API 查看客户主密钥 (CMK),包括您管理的 CMK 和 AWS 托管 CMK。

查看 CMK(控制台)

您可以在 AWS 管理控制台中看到客户管理的密钥的列表。

导航到 CMK 显示

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS Key Management Service (AWS KMS) 控制台:https://console.amazonaws.cn/kms

  2. 要更改 AWS 区域,请使用页面右上角的区域选择器。

  3. 要查看您账户中自己所创建和管理的密钥,请在导航窗格中选择 Customer managed keys (客户托管密钥). 要查看您账户中 AWS 为您创建和管理的密钥,请在导航窗格中,选择 AWS managed keys (AWS 托管密钥)

    提示

    要查看缺少别名的 AWS 托管 CMK,请使用 Customer managed keys (客户托管密钥) 页面。

查找您的 CMK

  • AWS managed keys (AWS 托管密钥)Customer managed keys (客户托管密钥) 页面上的筛选器框中,输入 CMK 的所有或部分别名名称或密钥 ID。筛选器会搜索所有 AWS 托管 CMK 或所有客户托管 CMK,即使您有太多而无法显示在当前页面上也是如此。它仅显示具有别名的 CMK 或包含筛选短语的密钥 ID。密钥 ID 筛选条件区分大小写;别名筛选条件不区分大小写。

    例如,当您在 Customer managed keys (客户托管密钥) 页面上的筛选器中键入 exam 时,只会显示在其别名中或密钥 ID 字段含有 exam 的客户托管 CMK,如下图所示。

    
            根据密钥 ID 和别名的值筛选 CMK。

显示有关 CMK 的更多信息

  • AWS managed keys (AWS 托管密钥)Customer managed keys (客户托管密钥) 页面上,选择 CMK 的别名或密钥 ID。

详细信息包括 CMK 的 CMK ID、Amazon 资源名称 (ARN)、别名、描述、密钥策略、标签和密钥轮换设置。

“Alias (别名)”部分仅列出一个别名。要查找与 CMK 关联的所有别名,请使用 ListAliases 操作。

自定义 CMK 显示

此将显示您的 AWS 账户和区域中每种类型的所有 CMK。默认情况下,此页面显示每个 CMK 的别名、密钥 ID、状态和创建日期,但您可将此页面自定义为显示您需要的信息。

  1. AWS managed keys (AWS 托管密钥)Customer managed keys (客户托管密钥) 页面上,选择页面右上角的设置图标 ( )。

  2. Preferences (首选项) 页面上,选择您的首选设置,然后选择 Confirm (确认)

查看 CMK(KMS API)

您可以使用 AWS Key Management Service (AWS KMS) API 查看 CMK。本部分演示几种返回现有 CMK 详细信息的操作。此示例使用 AWS Command Line Interface (AWS CLI),但您可以使用任何受支持的编程语言。

ListKeys:获取所有 CMK 的 ID 和 ARN

ListKeys 操作返回账户和区域中所有 CMK 的 ID 和 Amazon 资源名称 (ARN)。要查看有别名的 CMK 的别名和密钥 ID,请使用 ListAliases 操作。

例如,这个对 ListKeys 的调用会返回该虚构账户中每个 CMK 的 ID 和 ARN。

$ aws kms list-keys { "Keys": [ { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, { "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "KeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" } }

DescribeKey:获取有关 CMK 的详细信息

DescribeKey 操作返回特定 CMK 的详细信息。要标识 CMK,请使用其密钥 ID、密钥 ARN、别名名称或别名 ARN。

例如,这个对 DescribeKey 的调用会返回有关现有 CMK 的信息。响应中的字段因密钥状态和密钥来源而异。

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1499988169.234, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333" } }

您可以对预定义的 AWS 别名(即没有密钥 ID 的 AWS 别名)使用 DescribeKey 操作。当您执行此操作时,AWS KMS 会将该别名与 AWS 托管 CMK 关联并在响应中返回其 KeyIdArn

GetKeyPolicy:获取附加到 CMK 的密钥策略

GetKeyPolicy 操作获取附加到 CMK 的密钥策略。要标识 CMK,请使用其密钥 ID 或密钥 ARN。您还必须指定策略名称,而策略名称始终是 default。(如果您的输出难以读取,请向您的命令中添加 --output text 选项。)

$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default { "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ] }

ListAliases:按别名名称查看 CMK

ListAliases 操作可返回账户和区域中的别名。响应中的 TargetKeyId 会显示别名所引用 CMK 的密钥 ID(如果有)。

默认情况下,ListAliases 命令会返回账户和区域中的所有别名。这包括您创建的别名(此别名与您的客户托管 CMK 关联),以及 AWS 创建并与您账户中的 AWS 托管 CMK 关联的别名。您可以识别 AWS 别名,因为其名称的格式为 aws/<service-name>(例如 aws/dynamodb)。

响应可能还包含没有 TargetKeyId 字段的别名,如本示例中的 aws/redshift 别名。这些是 AWS 已创建但尚未与 CMK 关联的预定义别名。

$ aws kms list-aliases { "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ImportedKey", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "AliasName": "alias/ExampleKey" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/test-key", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasName": "alias/test-key" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/financeKey", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasName": "alias/financeKey" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb", "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "AliasName": "alias/aws/dynamodb" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/redshift", "AliasName": "alias/aws/redshift" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/s3", "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef", "AliasName": "alias/aws/s3" } ] }

要获取引用特定 CMK 的别名,请使用 KeyId 参数。该参数值可以是 CMK 的 Amazon 资源名称 (ARN) 或 CMK ID。您不能指定别名或别名 ARN。

以下示例中的命令可获取引用客户托管 CMK 的别名。但也可以使用类似命令来查找引用 AWS 托管 CMK 的别名。

$ aws kms list-aliases --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab { "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/test-key", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasName": "alias/test-key" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/financeKey", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasName": "alias/financeKey" }, ] }

查找密钥 ID 和 ARN

要在程序、脚本和命令行界面 (CLI) 命令中标识您的 AWS KMS CMK,您可以使用 CMK 的 ID 或其 Amazon 资源名称 (ARN)。您还可通过加密操作使用 CMK 别名。

查找 CMK ID 和 ARN (控制台)

  1. https://console.amazonaws.cn/kms 打开 AWS KMS 控制台。

  2. 要更改 AWS 区域,请使用页面右上角的区域选择器。

  3. 要查看您账户中自己所创建和管理的密钥,请在导航窗格中选择 Customer managed keys (客户托管密钥). 要查看您账户中 AWS 为您创建和管理的密钥,请在导航窗格中,选择 AWS managed keys (AWS 托管密钥)

  4. 要查找密钥 ID,请参阅以 CMK 别名开头的行。每行都显示每个 CMK 的密钥 ID 和别名,以及状态和创建日期。

  5. 要查找 CMK 的 Amazon 资源名称 (ARN),请选择密钥 ID 或别名。这将打开一个详细信息页面,其中包括 ARN。

查找 CMK ID 和 ARN(KMS API)

使用 ListKeys API 操作

  • 要查找 CMK ID 和 ARN,请使用 ListKeys 操作。