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

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

创建对称加密密钥 KMS

本主题介绍如何创建基本KMS密钥,即使用来自 Amazon KMS的KMS密钥材料为单个区域创建对称加密密钥。您可以使用此KMS密钥来保护您的资源 Amazon Web Services 服务。

您可以在 Amazon KMS 控制台中使用或AWS::KMS: KMS Key 模板创建对称加密密钥 Amazon CloudFormationCreateKeyAPI

默认密钥规范 SYMMETRIC_ DEFAULT 是对称加密密钥的KMS密钥规范。当您在 Amazon KMS 控制台中选择 Symmetric 密钥类型以及加密和解密密钥用法时,它会选择密钥规范。SYMMETRIC_DEFAULTCreateKey操作中,如果您未指定KeySpec值,DEFAULT则会选择 SYMMETRIC _。如果你没有理由使用不同的密钥规范,SYMMETRIC_ DEFAULT 是一个不错的选择。

有关适用于KMS密钥的配额的信息,请参阅配额

您可以使用 Amazon Web Services Management Console 来创建 Amazon KMS keys (KMS密钥)。

重要

不要在别名、描述或标签中包含机密或敏感信息。这些字段可能以纯文本形式出现在 CloudTrail 日志和其他输出中。

  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. 要创建对称加密KMS密钥,请在 “密钥类型” 中选择 “对称”。

  6. Key usage(密钥用法)中,已为您选择了 Encrypt and decrypt(加密和解密)选项。

  7. 选择下一步

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

    注意

    添加、删除或更新别名可以允许或拒绝对KMS密钥的权限。有关详细信息,请参阅 Amazon KMS 中的 ABAC使用别名控制对密钥的KMS访问

    别名是可用于标识KMS密钥的显示名称。我们建议您选择一个别名,以表明您计划保护的数据类型或计划与KMS密钥一起使用的应用程序。

    在中创建KMS密钥时需要使用别名。 Amazon Web Services Management Console当您使用CreateKey操作时,它们是可选的。

  9. (可选)键入KMS密钥的描述。

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

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

    注意

    标记或取消标记KMS密钥可以允许或拒绝对密钥的权限。KMS有关详细信息,请参阅 Amazon KMS 中的 ABAC使用标签控制对KMS密钥的访问

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

  11. 选择下一步

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

    备注

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

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

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

  13. (可选)要防止所选IAM用户和角色删除此KMS密钥,请在页面底部的密钥删除部分,清除 “允许密钥管理员删除此密钥” 复选框。

  14. 选择下一步

  15. 选择可以在加密操作中使用密钥的IAM用户和角色

    备注

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

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

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

    注意

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

  17. 选择下一步

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

  19. 选择下一步

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

  21. 选择 “完成” 创建KMS密钥。

您可以使用该CreateKey操作来创建 Amazon KMS keys 所有类型。这些示例使用 Amazon Command Line Interface (Amazon CLI)。有关使用多种编程语言的示例,请参阅与 Amazon SDK或CreateKey一起使用 CLI

重要

不要在 DescriptionTags 字段中包含机密或敏感信息。这些字段可能以纯文本形式出现在 CloudTrail 日志和其他输出中。

以下操作会在由 Amazon KMS生成的密钥材料提供支持的单个区域中创建对称加密密钥。该操作没有必需参数。不过,您可能还希望使用 Policy 参数指定密钥策略。您可以随时更改密钥策略 (PutKeyPolicy) 并添加可选元素,例如描述标签。您还可以创建非对称密钥多区域密钥、具有导入密钥材料的密钥以及自定义密钥存储中的密钥。要创建用于客户端加密的数据密钥,请使用GenerateDataKey操作。

CreateKey操作不允许您指定别名,但您可以使用该CreateAlias操作为新KMS密钥创建别名。

以下示例显示的是在没有任何参数的情况下调用 CreateKey 操作。此命令使用所有默认值。它使用生成的KMS密钥材料创建对称加密密钥。 Amazon KMS

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

如果您没有为新KMS密钥指定密钥策略,则CreateKey适用的默认密钥策略不同于控制台在您使用控制台创建新密钥时应用的默认KMS密钥策略。

例如,此GetKeyPolicy操作调用将返回CreateKey适用的密钥策略。它提供对KMS密钥的 Amazon Web Services 账户 访问权限,并允许它为KMS密钥创建 Amazon Identity and Access Management (IAM) 策略。有关密钥的IAM策略和密钥策略的详细信息KMS,请参阅 KMS密钥访问和权限

$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default --output text { "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ] }