创建 HMAC KMS 密钥 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

创建 HMAC KMS 密钥

您可以在 Amazon KMS 控制台中创建 HMAC KMS 密钥,方法是 CreateKeyAPI,或者使用AWS::KMS::Key Amazon CloudFormation 模板

创建 HMAC KMS 密钥时,必须选择密钥规范。 Amazon KMS 支持 HMAC KMS 密钥的多种密钥规格。您选择的密钥规范可能取决于法规、安全或业务要求。一般来说,密钥越长,对暴力攻击的抵抗力越强。

有关创建 KMS 密钥所需权限的信息,请参阅 创建 KMS 密钥的权限

您可以使用创建 HMAC KMS 密钥。 Amazon Web Services Management Console HMAC KMS 密钥是对称密钥,其密钥用法为Generate and verify MAC(生成并验证 MAC)。您也可以创建多区域 HMAC 密钥。

  1. 登录 Amazon Web Services Management Console 并在 https://console.aws.amazon.com/km s 处打开 Amazon Key Management Service (Amazon KMS) 控制台。

  2. 要更改 Amazon Web Services 区域,请使用页面右上角的区域选择器。

  3. 在导航窗格中,选择客户托管密钥

  4. 选择创建密钥

  5. 对于 Key type (密钥类型),选择 Symmetric (对称)

    HMAC KMS 密钥是对称密钥。您可以使用相同的密钥生成和验证 HMAC 标签。

  6. 对于 Key usage(密钥用法),请选择 Generate and verify MAC(生成并验证 MAC)。

    生成并验证 MAC 是 HMAC KMS 密钥的唯一有效密钥用法。

    注意

    Key usage(密钥用法)仅在所选区域支持 HMAC KMS 密钥时才会显示对称密钥。

  7. 为 HMAC KMS 密钥选择规范(密钥规范)。

    您选择的密钥规范可取决于法规、安全或业务要求。一般来说,较长的密钥更安全。

  8. 要创建多区域 HMAC 密钥,在 Advanced options(高级选项)下,选择 Multi-Region key(多区域密钥)。您为此 KMS 密钥定义的共享属性(例如密钥类型和密钥用法)将与其副本密钥共享。

    您无法使用该过程创建副本密钥。要创建多区域副本 HMAC 密钥,请按照创建副本密钥的说明

  9. 选择下一步

  10. 为 KMS 密钥键入别名。别名名称不能以 aws/ 开头。aws/ 前缀由 Amazon Web Services 预留,用于在您的账户中表示 Amazon 托管式密钥 。

    我们建议您使用将 KMS 密钥标识为 HMAC 密钥的别名,例如 HMAC/test-key。这将使您更轻松地在控制台中识别 HMAC 密钥,您可以在 Amazon KMS 控制台中按标签和别名对密钥进行排序和筛选,但不能按密钥规格或密钥使用情况对密钥进行排序和筛选。

    在 Amazon Web Services Management Console中创建 KMS 密钥时需要别名。使用CreateKey操作时无法指定别名,但可以使用控制台或CreateAlias操作为现有 KMS 密钥创建别名。有关详细信息,请参阅中的别名 Amazon KMS

  11. (可选)为 KMS 密钥输入描述。

    输入一个描述,用来说明您计划保护的数据类型或计划与 KMS 密钥配合使用的应用程序。

    现在,除非密钥状态Pending DeletionPending Replica Deletion,否则您可以随时添加描述或更新描述。要添加、更改或删除现有客户托管密钥的描述,请在 Amazon Web Services Management Console 或使用UpdateKeyDescription操作中编辑 KMS 密钥的 Amazon Web Services Management Console 详细信息页面上的描述。

  12. (可选)输入标签键和一个可选标签值。要向 KMS 密钥添加多个标签,请选择 Add tag(添加标签)。

    考虑添加将密钥识别为 HMAC 密钥的标签,例如 Type=HMAC。这将使您更轻松地在控制台中识别 HMAC 密钥,您可以在 Amazon KMS 控制台中按标签和别名对密钥进行排序和筛选,但不能按密钥规格或密钥使用情况对密钥进行排序和筛选。

    向 Amazon 资源添加标签时, Amazon 会生成一份成本分配报告,其中包含按标签汇总的使用量和成本。标签还可以用来控制对 KMS 密钥的访问。有关轮换 KMS 密钥的信息,请参阅 标签在 Amazon KMSABAC for Amazon KMS

  13. 选择下一步

  14. 选择可管理 KMS 密钥的 IAM 用户和角色。

    备注

    此密钥策略赋予了对此 KMS 密钥的 Amazon Web Services 账户 完全控制权。此控制权允许账户管理员使用 IAM policy 授予其他主体管理 KMS 密钥的权限。有关详细信息,请参阅默认密钥策略

    IAM 最佳实践不鼓励使用具有长期凭证的 IAM 用户。而应尽可能使用提供临时凭证的 IAM 角色。有关更多信息,请参阅《IAM 用户指南》中的 IAM 安全最佳实践

    Amazon KMS 控制台在语句标识符下将密钥管理员添加到密钥策略中"Allow access for Key Administrators"。修改此语句标识符可能会影响控制台显示您对该语句所做的更新的方式。

  15. (可选)要阻止选定 IAM 用户和角色删除此 KMS 密钥,请在页面底部的 Key deletion(密钥删除)部分中,清除 Allow key administrators to delete this key(允许密钥管理员删除此密钥)复选框。

  16. 选择下一步

  17. 选择可将 KMS 密钥用于加密操作的 IAM 用户和角色。

    备注

    IAM 最佳实践不鼓励使用具有长期凭证的 IAM 用户。而应尽可能使用提供临时凭证的 IAM 角色。有关更多信息,请参阅《IAM 用户指南》中的 IAM 安全最佳实践

    Amazon KMS 控制台在语句标识符"Allow use of the key"和下将密钥用户添加到密钥策略中"Allow attachment of persistent resources"。修改这些语句标识符可能会影响控制台显示您对该语句所做的更新的方式。

  18. (可选)您可以允许其他人使用 Amazon Web Services 账户 此 KMS 密钥进行加密操作。为此,请在页面底部的 Other Amazon Web Services 账户(其他 Amazon Web Services 账户)部分中,选择 Add another Amazon Web Services 账户(添加另一个 Amazon Web Services 账户)并输入外部账户的 Amazon Web Services 账户 账户标识号。要添加多个外部账户,请重复此步骤。

    注意

    要允许外部账户中的委托人使用 KMS 密钥,外部账户的管理员必须创建提供这些权限的 IAM policy。有关更多信息,请参阅 允许其他账户中的用户使用 KMS 密钥

  19. 选择下一步

  20. 查看密钥的关键政策声明。要更改密钥策略,请选择编辑

  21. 选择下一步

  22. 检视您选择的密钥设置。您仍然可以返回并更改所有设置。

  23. 选择 Finish(完成)以创建 HMAC KMS 密钥。

您可以使用该CreateKey操作创建 HMAC KMS 密钥。这些示例使用 Amazon Command Line Interface (Amazon CLI),但您可以使用任何受支持的编程语言。

创建 HMAC KMS 密钥时,必须指定 KeySpec 参数,该参数决定了 KMS 密钥的类型。另外,您必须指定 GENERATE_VERIFY_MAC 的 KeyUsage 值,尽管它是 HMAC 密钥的唯一有效密钥用法值。要创建多区域 HMAC KMS 密钥,添加值为 trueMultiRegion 参数。创建 KMS 密钥后,这些属性无法更改。

CreateKey操作不允许您指定别名,但您可以使用该CreateAlias操作为新 KMS 密钥创建别名。我们建议您使用将 KMS 密钥标识为 HMAC 密钥的别名,例如 HMAC/test-key。这将使您更轻松地在控制台中识别 HMAC 密钥,您可以在 Amazon KMS 控制台中按别名对密钥进行排序和筛选,但不能按密钥规格或密钥使用情况进行排序和筛选。

如果您尝试在不支持 HMAC 密钥的情况下创建 HMAC KMS 密钥,则该CreateKey操作会返回 Amazon Web Services 区域 UnsupportedOperationException

以下示例使用 CreateKey 操作来创建 512 位的 HMAC KMS 密钥。

$ aws kms create-key --key-spec HMAC_512 --key-usage GENERATE_VERIFY_MAC { "KeyMetadata": { "KeyState": "Enabled", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "Description": "", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1669973196.214, "MultiRegion": false, "KeySpec": "HMAC_512", "CustomerMasterKeySpec": "HMAC_512", "KeyUsage": "GENERATE_VERIFY_MAC", "MacAlgorithms": [ "HMAC_SHA_512" ], "AWSAccountId": "111122223333", "Origin": "AWS_KMS", "Enabled": true } }