本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
正在呼叫 CreateKey
调用 CreateKey
API 调用将生成 AWS KMS key。
以下是 CreateKey
请求语法的子集。
{ "Description": "string", "KeySpec": "string", "KeyUsage": "string", "Origin": "string"; "Policy": "string" }
请求接受采用 JSON 格式的以下数据。
- 描述
(可选)密钥的描述。我们建议您选择可帮助您决定密钥是否适合某项任务的描述。
- KeySpec
指定要创建的 KMS 密钥的类型。默认值 SYMMETRIC_DEFAULT 会创建一个对称加密 KMS 密钥。对于对称加密密钥而言,此参数是可选的;对于所有其他密钥规范,则必须提供此参数。
- KeyUsage
指定密钥的用途。有效值为
ENCRYPT_DECRYPT
、SIGN_VERIFY
或GENERATE_VERIFY_MAC
。默认值为ENCRYPT_DECRYPT
。对于对称加密密钥而言,此参数是可选的;对于所有其他密钥规范,则必须提供此参数。- Origin
(可选)KMS 密钥的密钥材料来源。默认值是
AWS_KMS
,它指示 AWS KMS 生成并管理 KMS 密钥的密钥材料。其他有效值包括EXTERNAL
(表示在没有密钥材料的情况下创建一个 KMS 密钥,以使用导入的密钥材料)和AWS_CLOUDHSM
(这在由您控制的 AWS CloudHSM 集群所支持的自定义密钥存储中创建一个 KMS 密钥)。- Policy
(可选)要附加到密钥的策略。如果忽略该策略,将使用允许根账户和具有 AWS KMS 权限的 IAM 主体进行管理的原定设置策略(以下)创建该密钥。
有关此策略的详细信息,请参阅AWS Key Management Service 开发人员指南中的AWS KMS 中的密钥策略和默认密钥策略。
CreateKey
请求会返回一个包含密钥 ARN 的响应。
arn:
<partition>
:kms:<region>
:<account-id>
:key/<key-id>
如果 Origin
为 AWS_KMS
,则在创建 ARN 后,将利用已通过身份验证的会话发出对某个 AWS KMS HSM 的请求,以预调配硬件安全模块(HSM)备用密钥(HBK)。HBK 是与 KMS 密钥的这一密钥 ID 关联的 256 位密钥。它只能在 HSM 上生成,并且设计为永远不会以明文形式导出到 HSM 边界之外。HBK 将利用当前域密钥 DK0 进行加密。这些加密的 HBK 称为加密的密钥令牌 (EKT)。尽管可以将 HSM 配置为使用多种密钥包装方法,但当前实施在伽罗瓦计数器模式(GCM)下使用 AES-256 身份验证加密方案。利用这种已通过身份验证的加密模式,可方便我们保护一些明文导出的密钥令牌元数据。
这在样式上表示为:
EKT = Encrypt(DK0, HBK)
我们为 KMS 密钥和后续的 HBK 提供两种基本保护形式:在 KMS 密钥上设置授权策略和关联 HBK 上的加密保护。其余部分介绍 AWS KMS 中的加密保护和管理功能的安全性。
除了 ARN 以外,您还可以为密钥创建一个别名,从而常见一个用户友好的名称并将其与 KMS 密钥关联。将别名与 KMS 密钥关联后,就可以在加密操作中使用别名来标识 KMS 密钥。有关详细信息,请参阅《AWS Key Management Service 开发人员指南》中的使用别名。
围绕 KMS 密钥的使用有多个级别的授权。AWS KMS 在加密内容和 KMS 密钥之间启用单独的授权策略。例如,AWS KMS 信封加密的 Amazon Simple Storage Service (Amazon S3) 对象会继承 Amazon S3 存储桶上的策略。但是,对必要加密密钥的访问权限由 KMS 密钥上的访问策略决定。有关 KMS 密钥授权的信息,请参阅《AWS Key Management Service开发人员指南》中的身份验证和访问控制AWS KMS。