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

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

查看 CMKs API

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

ListKeys 获得所有ID和ARN CMKs

TheThethe 列表键 操作返回所有ID和Amazon资源名称(ARN) CMKs 在客户和区域。

例如,此电话会给 ListKeys 操作返回每个ID和ARN CMK 在虚构账户中。有关使用多种编程语言的示例,请参阅获取关键ID和关键ARN CMKs

$ 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 获取有关A的详细信息 CMK

TheThethe 描述 操作返回指定的详细信息 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, "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1499988169.234, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333" "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

此示例调用 DescribeKey 对不对称的操作 CMK 用于签署和验证。响应包括签名算法 AWS KMS 支持 CMK.

$ aws kms describe-key --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 { "KeyMetadata": { "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "Origin": "AWS_KMS", "Arn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "KeyState": "Enabled", "KeyUsage": "SIGN_VERIFY", "CreationDate": 1569973196.214, "Description": "", "CustomerMasterKeySpec": "ECC_NIST_P521", "AWSAccountId": "111122223333", "Enabled": true, "KeyManager": "CUSTOMER" "SigningAlgorithms": [ "ECDSA_SHA_512" ] } }

您可以对预定义的 AWS 别名(即没有密钥 ID 的 AWS 别名)使用 DescribeKey 操作。当你做到时 AWS KMS 将别名与 AWS 管理 CMK 并且回报了 KeyIdArn 在响应中。

GetKeyPolicy 获取附加到A的关键政策 CMK

TheThethe GetKeyPolicy 操作会获得附加到 CMK. 以识别 CMK,使用其密钥ID或KeyARN。您还必须指定策略名称,该名称始终是 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 获取别名和ARNS CMKs

ListAliases 操作可返回账户和区域中的别名。TheThethe TargetKeyId 在响应中,显示 CMK 该别名是指(如有)。

默认情况下,ListAliases 命令会返回账户和区域中的所有别名。包括 您创建的别名 与您的 客户管理 CMKs以及别名 AWS 创建并与 AWS 管理 CMKs 在您的帐户中。您可以识别 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 参数。参数值可以是密钥 ID密钥 ARN。您不能指定别名名称别名 ARN

以下示例中的命令会获得参考 客户管理 CMK. 但您可以使用这样的命令来查找别名,这些别名 AWS 管理 CMKs,也是。

$ 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" }, ] }

仅为AWS管理的别名获取 CMKs,使用编程语言的功能筛选响应。

$ aws kms list-aliases --query 'Aliases[?starts_with(AliasName, `alias/aws/`)]'