

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

# 下载公有密钥
<a name="download-public-key"></a>

您可以在 AWS KMS 控制台中或使用该[GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)操作从非对称 KMS 密钥对中下载公钥。要下载公有密钥，您必须具备对非对称 KMS 密钥的 `kms:GetPublicKey` 权限。

 AWS KMS 返回的公钥是 DER-encoded X.509 公钥，也称为 `SubjectPublicKeyInfo` (SPKI)，定义见 [ RFC 5280。](https://datatracker.ietf.org/doc/html/rfc5280)当您使用 HTTP API 或时 AWS CLI，值为 Base64-encoded。否则，不是 Base64-encoded。

要下载非对称 KMS 密钥对的公有密钥，您必须具备 `kms:GetPublicKey` 权限。有关 AWS KMS 权限的更多信息，请参阅[权限参考](kms-api-permissions-reference.md)。

## 使用 AWS KMS 控制台
<a name="download-public-key-console"></a>

您可以使用 AWS 管理控制台 来查看、复制和下载您的 AWS 账户非对称 KMS 密钥中的公有密钥。要从不同的非对称 KMS 密钥下载公钥 AWS 账户，请使用 AWS KMS API。

1. 登录 AWS 管理控制台 并打开 AWS Key Management Service (AWS KMS) 控制台，网址为[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms)。

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

1. 在导航窗格中，选择**客户托管密钥**。

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

1. 选择 **Cryptographic configuration**（加密配置）选项卡。记录**密钥规范**、**密钥用法**和**加密算法**或**签名算法**字段的值。您需要使用这些值才能在之外使用公钥 AWS KMS。在共享公有密钥时，请务必共享以上信息。

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

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

## 使用 AWS KMS API
<a name="download-public-key-api"></a>

该[GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)操作以非对称 KMS 密钥返回公钥。它还会返回您在外部正确使用公钥所需的关键信息 AWS KMS，包括密钥使用和加密算法。请务必保存这些值，并在共享公有密钥时共享它们。

本部分中的示例使用 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)，但您可以使用任何受支持的编程语言。

要指定 KMS 密钥，请使用其[密钥 ID](concepts.md#key-id-key-id)、[密钥 ARN](concepts.md#key-id-key-ARN)、[别名名称](concepts.md#key-id-alias-name)或[别名 ARN](concepts.md#key-id-alias-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..."
}
```