

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AWS KMS key 策略和 IAM 策略

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

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

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

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

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