

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

# 正在访问 Amazon Key Management Service
<a name="accessing-kms"></a>

您可以通过以下 Amazon KMS 方式使用：

**Topics**
+ [Amazon Web Services 管理控制台](#kms-console)
+ [Amazon Command Line Interface](#kms-cli)
+ [Amazon KMS REST API](#kms-api)
+ [Amazon SDKs](#kms-sdk)
+ [将此服务与 Amazon SDK 配合使用](sdk-general-information-section.md)
+ [Amazon Encryption SDK](#crypto-sdk)
+ [Amazon KMS 最终一致性](#programming-eventual-consistency)
+ [将混合后量子 TLS 与 Amazon KMS](pqtls.md)
+ [Amazon KMS 通过 VPC 终端节点连接到](kms-vpc-endpoint.md)
+ [双堆栈端点支持](ipv6-kms.md)

## Amazon Web Services 管理控制台
<a name="kms-console"></a>

控制台是一个基于 Web 的用户界面，用于 Amazon KMS 管理和 Amazon 资源。如果您已经注册了 Amazon Web Services 账户，则可以通过登录 Amazon Web Services 管理控制台 并 Amazon KMS 从 Amazon Web Services 管理控制台 主页上进行选择来访问 Amazon KMS 控制台。

### 使用 Amazon KMS 控制台所需的权限
<a name="console-permissions"></a>

要使用 Amazon KMS 控制台，用户必须拥有一组允许他们使用控制台中的 Amazon KMS 资源的最低权限 Amazon Web Services 账户。除这些 Amazon KMS 权限以外，用户还必须拥有列出 IAM 用户和 IAM 角色的权限。如果创建比必需的最低权限更为严格的 IAM policy，对于附加了该 IAM policy 的用户， Amazon KMS 控制台将无法按预期正常运行。

有关允许用户对 Amazon KMS 控制台进行只读访问所需的最低权限，请参阅[允许用户在 Amazon KMS 控制台中查看 KMS 密钥](customer-managed-policies.md#iam-policy-example-read-only-console)。

要允许用户使用 Amazon KMS 控制台创建和管理 KMS 密钥，请将**AWSKeyManagementServicePowerUser**托管策略附加到用户，如中所述[Amazon 的托管策略 Amazon Key Management Service](security-iam-awsmanpol.md)。

您无需为通过[Amazon SDKs](https://www.amazonaws.cn/tools/#sdk)、[Amazon Command Line Interface](https://docs.amazonaws.cn/cli/latest/userguide/)或使用 Amazon KMS API 的用户提供最低控制台权限[Amazon Tools for PowerShell](https://docs.amazonaws.cn/powershell/latest/userguide/)。但是，您的确需要授予以下用户使用 API 的权限。有关更多信息，请参阅 [权限参考](kms-api-permissions-reference.md)。

## Amazon Command Line Interface
<a name="kms-cli"></a>

您可以使用这些 Amazon CLI 工具在系统的命令行中发出命令或生成脚本来执行 Amazon （包括 Amazon KMS）任务。

有关 Amazon KMS 通过使用的更多信息 Amazon CLI，请参阅《[Amazon CLI 命令参考](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/index.html)》

## Amazon KMS REST API
<a name="kms-api"></a>

 的架构设计 Amazon KMS 为与编程语言无关。REST API是一个 HTTP 接口 Amazon KMS。使用 REST API 时，您可通过标准的 HTTP 请求来创建、获取和删除密钥。

 有关使用的更多信息 Amazon KMS REST API，请参阅 [Amazon Key Management Service API 参考](https://docs.amazonaws.cn/kms/latest/APIReference/Welcome.html)

## Amazon SDKs
<a name="kms-sdk"></a>

Amazon 提供 SDKs （软件开发套件），其中包括常用编程语言和平台（Java、、C JavaScript、Python 等）的库和示例代码。 Amazon SDKs 提供了一种便捷的方法来创建对 Amazon KMS 和的编程访问 Amazon。 Amazon KMS 是一项REST服务。您可以 Amazon KMS 使用 Amazon SDK 库向发送请求，这些库可以封装底层 Amazon KMS REST API并简化您的编程任务。有关信息（ Amazon SDKs包括如何下载和安装它们），请参阅[构建工具 Amazon](https://www.amazonaws.cn/developer/tools)。

为 Amazon KMS 通过使用[使用的代码示 Amazon KMS 例 Amazon SDKs](service_code_examples.md)提供了一个很好的起点 Amazon SDKs。

## Amazon Encryption SDK
<a name="crypto-sdk"></a>

 Amazon Encryption SDK 是在应用程序中实现客户端加密的工具。它不提供对 KMS 的完全访问权限，而是与独立的 SDK 集成 Amazon KMS，或者可以在不引用 KMS 密钥的情况下用作独立 SDK。库可用于 Java、 JavaScript、C、Python 和其他编程语言。

有关更多信息，请参见[Amazon Encryption SDK 开发人员指南](https://docs.amazonaws.cn/encryption-sdk/latest/developer-guide/introduction.html)。

Amazon KMS key 策略和 IAM 策略

## Amazon KMS 最终一致性
<a name="programming-eventual-consistency"></a>

由于系统的分布式特性， Amazon KMS API 遵循[最终一致](https://en.wikipedia.org/wiki/Eventual_consistency)性模型。因此，您运行的后续命令可能无法立即看到对 Amazon KMS 资源的更改。

当您执行 Amazon KMS API 调用时，可能会有一段短暂的延迟，直到更改始终可用 Amazon KMS。更改通常需要不到几秒钟的时间即可在整个系统中传播，但在某些情况下，可能需要几分钟。在这段时间内，您可能会遇到意外错误，例如 `NotFoundException` 或 `InvalidStateException`。例如，`NotFoundException`如果您在呼叫后`GetParametersForImport`立即拨打电话，则 Amazon KMS 可能会返回`CreateKey`。

我们建议您在 Amazon KMS 客户端上配置重试策略，以便在短暂的等待时间后自动重试操作。有关更多信息，请参阅《工具参考指南》 Amazon SDKs 和《工具参考指南》中的[重试行为](https://docs.amazonaws.cn/sdkref/latest/guide/feature-retry-behavior.html)。

对于与授权相关的 API 调用，您可以[使用授权令牌](using-grant-token.md)来避免任何潜在的延迟，并立即在授权中使用权限。有关更多信息，请参阅[最终一致性（用于授权）](grants.md#terms-eventual-consistency)。