本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
访问 AWS Key Management Service
您可以通过以下 AWS KMS 方式使用:
主题
AWS 管理控制台
控制台是一个基于 Web 的用户界面,用于 AWS KMS 管理和 AWS 资源。如果您已注册 AWS 账户,则可以通过登录 AWS 管理控制台 并在 AWS 管理控制台 主页上进行选择 AWS KMS 来访问 AWS KMS 控制台。
使用所需的权限 AWS KMS 控制台
要使用 AWS KMS 控制台,用户必须拥有一组允许他们使用其中的 AWS KMS 资源的最低权限 AWS 账户。除这些 AWS KMS 权限以外,用户还必须拥有列出 IAM 用户和 IAM 角色的权限。如果创建比必需的最低权限更为严格的 IAM policy,对于附加了该 IAM policy 的用户, AWS KMS 控制台将无法按预期正常运行。
有关允许用户对 AWS KMS 控制台进行只读访问所需的最低权限,请参阅允许用户在 AWS KMS 控制台中查看 KMS 密钥。
要允许用户使用 AWS KMS 控制台创建和管理 KMS 密钥,请将AWSKeyManagementServicePowerUser托管策略附加到用户,如中所述AWS 的托管策略 AWS Key Management Service。
对于通过 AWS SDK
AWS Command Line Interface
您可以使用这些 AWS CLI 工具在系统的命令行上发布命令或生成脚本来执行 AWS (包括 AWS KMS)任务。
有关 AWS KMS 通过使用的更多信息 AWS CLI,请参阅AWS CLI 命令参考
AWS KMS REST API
的架构设计 AWS KMS 为与编程语言无关。REST API是一个 HTTP 接口 AWS KMS。使用 REST API 时,您可通过标准的 HTTP 请求来创建、获取和删除密钥。
有关使用的更多信息 AWS KMS REST API,请参阅 AWS Key Management Service API 参考
AWS 软件开发工具包
AWS 提供包含常用编程语言和平台(Java、C、 JavaScript Python 等)的库和示例代码的 SDK(软件开发套件)。这些 AWS 软件开发工具包为创建对和的编程访问权限提供了一种便捷 AWS KMS 的 AWS方式。 AWS KMS 是一项REST服务。您可以 AWS KMS 使用 AWS SDK 库向发送请求,这些库封装了底层内容 AWS KMS REST API并简化了您的编程任务。有关的信息( AWS SDKs包括如何下载和安装它们),请参阅构建工具 AWS
这为 AWS KMS 通过以下方式使用使用的代码示 AWS KMS 例 AWS SDKs提供了一个很好的起点 AWS SDKs。
AWS Encryption SDK
AWS Encryption SDK 是用于在应用程序中实现客户端加密的工具。它不提供对 KMS 的完全访问权限,而是与 KMS 密钥集成 AWS KMS,或者可以在不引用 KMS 密钥的情况下用作独立 SDK。库可用于 Java JavaScript、C、Python 和其他编程语言。
有关更多信息,请参见AWS Encryption SDK 开发人员指南。
AWS KMS key 策略和 IAM 政策
AWS KMS 最终一致性
由于系统的分布式特性, AWS KMS API 遵循
当您执行 AWS KMS API 调用时,可能会有短暂的延迟,然后才能在整个过程中进行更改 AWS KMS。更改通常需要不到几秒钟的时间即可在整个系统中传播,但在某些情况下,可能需要几分钟。在这段时间内,您可能会遇到意外错误,例如 NotFoundException 或 InvalidStateException。例如,NotFoundException如果您在呼叫后GetParametersForImport立即致电, AWS KMS 可能会返回CreateKey。
我们建议您在 AWS KMS 客户端上配置重试策略,以便在短暂等待后自动重试操作。有关更多信息,请参阅《 AWS SDKs and Tools Reference Guide》中的 Retry behavior。
对于与授权相关的 API 调用,您可以使用授权令牌来避免任何潜在的延迟,并立即在授权中使用权限。有关更多信息,请参阅最终一致性(用于授权)。