下载公有密钥 - AWS Key Management Service

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

下载公有密钥

您可以使用 AWS Management Console 或 AWS KMS API 查看、复制和下载非对称 KMS 密钥对中的公有密钥。您必须具备对非对称 KMS 密钥的 kms:GetPublicKey 权限。

每个非对称 KMS 密钥对都包含一个永远不会保持 AWS KMS 未加密状态的私钥和一个您可以下载和共享的公钥。

你可以共享一个公钥,让其他人加密公钥之外的数据 AWS KMS ,而你只能用你的私钥来解密。或者,允许其他人在 AWS KMS 外部验证您使用私有密钥生成的数字签名。或者,与同行共享您的公钥以获取共享密钥。

当您在中的非对称 KMS 密钥中使用公钥时 AWS KMS,您将受益于每项 AWS KMS 操作中包含的身份验证、授权和日志记录。您还可以降低对无法解密的数据进行加密的风险。这些功能在外面无效 AWS KMS。有关更多信息,请参阅 下载公有密钥的特殊注意事项

提示

正在寻找数据密钥或 SSH 密钥? 本主题介绍如何管理 AWS Key Management Service中的非对称密钥,私有密钥在其中不可导出。有关私钥受对称加密 KMS 密钥保护的可导出数据密钥对,请参阅。GenerateDataKeyPair有关下载与 Amazon EC2 实例关联的公钥的帮助,请参阅 Amazon EC2 用户指南和 Amazon EC2 用户指南中的检索公有密钥。

下载公有密钥的特殊注意事项

为了保护您的 KMS 密钥, AWS KMS 提供了访问控制、经过身份验证的加密以及每项操作的详细日志。 AWS KMS 还允许您暂时或永久禁止使用 KMS 密钥。最后, AWS KMS 操作旨在最大限度地降低加密无法解密的数据的风险。当您在之外使用下载的公钥时,这些功能不可用 AWS KMS。

授权

控制内部 KMS 密钥访问权限的密钥策略和 IAM 策略对在外部执行的操作 AWS KMS 没有影响 AWS。任何能够获得公钥的用户都可以在外部使用公钥, AWS KMS 即使他们无权使用 KMS 密钥加密数据或验证签名。

密钥用法限制

密钥使用限制在以外无效 AWS KMS。如果您使用的 KMS 密钥调用 Encrypt KeyUsage 操作SIGN_VERIFY,则 AWS KMS 操作将失败。但是,如果您使用来自SIGN_VERIFY或的 KMS 密钥中的公钥KeyUsage对外部的数据进行加密KEY_AGREEMENT,则无法解密数据。 AWS KMS

算法限制

对 AWS KMS 支持的加密和签名算法的限制在外部无效 AWS KMS。如果您使用来自外部的 KMS 密钥的公钥加密数据 AWS KMS,并且使用 AWS KMS 不支持的加密算法,则无法解密数据。

禁用和删除 KMS 密钥

您可以采取的防止在内部的加密操作中使用 KMS 密钥的操作 AWS KMS 不会阻止任何人在外部使用公钥。 AWS KMS例如,禁用 KMS 密钥、调度删除 KMS 密钥、删除 KMS 密钥或删除 KMS 密钥的密钥材料,对 AWS KMS外部的公有密钥没有影响。如果您删除非对称 KMS 密钥或删除或丢失其密钥材料,则使用外部的公钥加密的数据将无法恢 AWS KMS 复。

日志记录

AWS CloudTrail 记录每个 AWS KMS 操作(包括请求、响应、日期、时间和授权用户)的日志不会记录外部公钥的使用情况 AWS KMS。

使用 SM2 密钥对进行离线验证(仅限中国区域)

要 AWS KMS 使用 SM2 公钥验证外部的签名,必须指定区分 ID。默认情况下, AWS KMS 使用1234567812345678作为区分 ID。有关更多信息,请参阅使用 SM2 密钥对进行离线验证(仅限中国区域)。

下载公有密钥(控制台)

您可以使用查看、复制和下载您的 AWS 账户非对称 KMS 密钥中的公有密钥。 AWS Management Console 要从不同的非对称 KMS 密钥下载公钥 AWS 账户,请使用 AWS KMS API。

  1. 登录 AWS Management Console 并打开 AWS Key Management Service (AWS KMS) 控制台,网址为 https://console.aws.amazon.com/kms

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

  3. 在导航窗格中,选择客户托管密钥

  4. 选择非对称 KMS 密钥的别名或密钥 ID。

  5. 选择 Cryptographic configuration(加密配置)选项卡。记录 Key spec(密钥规范)、Key usage(密钥用法)和 Encryption algorithms(密钥算法)或 Signing Algorithms(签名算法)字段的值。你需要使用这些值才能在之外使用公钥 AWS KMS。在共享公有密钥时,请务必共享以上信息。

  6. 选择 Public key (公有密钥) 选项卡。

  7. 要将公有密钥复制到剪贴板,请选择 Copy (复制)。要将公有密钥下载到文件,请选择 Download (下载)

下载公钥 (AWS KMS API)

GetPublicKey操作返回非对称 KMS 密钥中的公钥。它还会返回您需要在外部正确使用公钥的关键信息 AWS KMS,包括密钥使用情况和加密算法。请务必保存这些值,并在共享公有密钥时共享它们。

本部分中的示例使用 AWS Command Line Interface (AWS CLI),但您可以使用任何受支持的编程语言。

要指定 KMS 密钥,请使用其密钥 ID密钥 ARN别名名称别名 ARN。使用别名时,应加上 alias/ 前缀。要在其他密钥中指定 KMS 密钥 AWS 账户,必须使用其密钥 ARN 或别名 ARN。

在运行此命令之前,请将示例别名替换为 KMS 密钥的有效标识符。要运行此命令,必须具备对 KMS 密钥的 kms:GetPublicKey 权限。

$ aws kms get-public-key --key-id alias/example_RSA_3072 { "KeySpec": "RSA_3072", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyUsage": "ENCRYPT_DECRYPT", "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ], "PublicKey": "MIIBojANBgkqhkiG..." }