本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
正在呼叫 CreateKey
在 AWS KMS key 调用 CreateKey
API 时会生成一个。
以下是 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
,它表示在没有密钥材料的情况下为导入的密钥材料创建AWS_CLOUDHSM
的 KMS 密钥,以及在由您控制的 AWS CloudHSM 集群支持的自定义密钥存储中创建 KMS 密钥。- 策略
(可选)要附加到密钥的策略。如果忽略该策略,将使用允许根账户和具有 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 进行加密。 HBKs 这些经过加密的密钥令牌称为加密的密钥令牌 (EKTs)。尽管 HSMs 可以配置为使用各种密钥包装方法,但当前的实现在 Galois 计数器模式 (GCM) 中使用 AES-256,这是一种经过身份验证的加密方案。利用这种已通过身份验证的加密模式,可方便我们保护一些明文导出的密钥令牌元数据。
这在样式上表示为:
EKT = Encrypt(DK0, HBK)
为您的 KMS 密钥和后续密钥提供了两种基本的保护形式 HBKs:在您的 KMS 密钥上设置的授权策略和对关联 HBKs的 KMS 密钥的加密保护。其余部分描述了中管理功能的加密保护和安全性。 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。