本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
您可以通过以下 AWS KMS 方式使用:
AWS Management Console
控制台是一个基于 Web 的用户界面,用于 AWS KMS 管理和 AWS 资源。如果您已经注册了 AWS 账户,则可以通过登录 AWS Management Console 并 AWS KMS 从 AWS Management Console 主页上进行选择来访问 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 SDKs
AWS Command Line Interface
您可以使用这些 AWS CLI 工具在系统的命令行中发出命令或生成脚本来执行 AWS (包括 AWS KMS)任务。
有关 AWS KMS 通过使用的更多信息 AWS CLI,请参阅《AWS CLI 命令参考
AWS KMS REST API
的架构设计 AWS KMS 为与编程语言无关,使用 AWS支持的接口来存储和检索对象。您可以使用 S3 和 AWS 以编程方式访问 S3 AWS KMS REST API。 的 REST API 是一个 HTTP 接口 AWS KMS。使用 REST API,您可以使用标准 HTTP 请求来创建、获取和删除存储桶和对象。
有关使用方法的更多信息 AWS KMS REST API,请参阅 AWS Key Management Service API 参考
AWS SDKs
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
为 AWS KMS 通过以下方式使用使用的代码示 AWS KMS 例 AWS SDKs提供了一个很好的起点 AWS SDKs.
AWS Encryption SDK
AWS Encryption SDK 是在应用程序中实现客户端加密的工具。它不提供对 KMS 的完全访问权限,而是与独立的 SDK 集成 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 和《工具参考指南》中的重试行为。
对于与授权相关的 API 调用,您可以使用授权令牌来避免任何潜在的延迟,并立即在授权中使用权限。有关更多信息,请参阅最终一致性(用于授权)。