

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

# 使用公有密钥执行离线操作
<a name="offline-public-key"></a>

在非对称 KMS 密钥中，私钥是在中创建的 AWS KMS ，永远不会处于 AWS KMS 未加密状态。要使用私钥，您必须致电 AWS KMS。您可以 AWS KMS 通过调用 AWS KMS API 操作来使用其中的公钥。或者，您可以[下载公钥](download-public-key.md)并共享以供外部使用 AWS KMS。

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

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

**提示**  
正在寻找数据密钥或 SSH 密钥？ 本主题介绍如何管理 AWS Key Management Service中的非对称密钥，私有密钥在其中不可导出。有关私钥受对称加密 KMS 密钥保护的可导出数据密钥对，请参阅。[GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)有关下载与 Amazon EC2 实例关联的公有密钥的帮助，请参阅[《Amazon EC2 用户指南》](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/describe-keys.html#retrieving-the-public-key)和[《Amazon EC2 用户指南》](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/describe-keys.html#retrieving-the-public-key)中的*检索公有密钥*。

**Topics**
+ [下载公有密钥的特殊注意事项](#download-public-key-considerations)
+ [下载公有密钥](download-public-key.md)
+ [离线操作示例](offline-operations.md)

## 下载公有密钥的特殊注意事项
<a name="download-public-key-considerations"></a>

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

**Authorization**  
控制内部 KMS [密钥访问权限的密钥策略](key-policies.md)[和 IAM 策略](iam-policies.md)对在外部执行的操作 AWS KMS 没有影响 AWS。任何能够获得公钥的用户都可以在外部使用公钥， AWS KMS 即使他们无权使用 KMS 密钥加密数据或验证签名。

**密钥用法限制**  
密钥使用限制在以外无效 AWS KMS。如果您[使用](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)的 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 密钥对进行离线验证（仅限中国区域）**  
要使用 SM2 公钥验证外部 AWS KMS 的签名，必须指定可区分的 ID。默认情况下， AWS KMS 使用`1234567812345678`作为区分 ID。有关更多信息，请参阅[使用 SM2 密钥对进行离线验证（仅限中国区域）](offline-operations.md#key-spec-sm-offline-verification)。