你是否正在寻找一种快速加密和解密数据的方法?看看 AWS Key Management 吧!该服务通过允许您创建和管理加密密钥,为您的数据提供了高级安全性。您还可以控制谁可以访问您的密钥以及他们可以对密钥采取哪些操作。
这个教程并不能覆盖关于 AWS Key Management 的所有内容。但它会为您提供使用这个强大工具的基础知识。
继续阅读,以享受 AWS Key Management 带来的安全性好处!
先决条件
本教程将进行实际演示。如果您想跟着做,请确保您具备以下条件。
使用 AWS 控制台创建 KMS 密钥
如果您更喜欢AWS控制台(GUI)而不是AWS CLI,请继续阅读。以下部分将指导您如何使用控制台创建KMS密钥。
创建IAM用户
要开始,您必须创建一个IAM用户,用于从AWS命令行界面(CLI)访问AWS密钥管理服务。
IAM用户与您的AWS根帐户凭据是分开的。使用IAM用户被认为是一种最佳实践,因为它允许您对谁可以访问AWS帐户中的哪些资源进行细粒度控制。
按照以下步骤为AWS密钥管理服务创建具有密码访问权限的IAM用户:
1. 以根用户身份登录到AWS管理控制台。
2. 在“查找服务”搜索栏中键入IAM,然后从结果中选择IAM以打开IAM控制台。此控制台是您可以管理IAM用户及其权限的地方。

3. 转到用户 → 添加用户 以添加新的IAM用户。

4. 在“添加用户”页面上执行以下步骤。
为您的新用户输入名称。在本示例中,它称为KMSUserConsole。
选择“密码 – AWS管理控制台访问”单选按钮 > 自动生成密码。此选项将为您的用户生成一个随机密码。
确保未选中“用户必须在下次登录时创建新密码”复选框。这样做将允许您在无需先重置密码的情况下以该用户身份登录。
点击“下一步:权限”继续。

5. 在“设置权限”页面,选择直接附加现有策略。从可用策略列表中选择 AdministratorAccess。此策略允许用户完全访问 AWS,包括创建和管理密钥的能力。
点击“下一步:标签”继续。

6. 在“添加标签(可选)”页面,您可以为用户添加任何相关标签。对于本教程,您将不会添加任何标签。点击“下一步:审核”以查看您用户的权限和信息。

7. 确保已选择 AdministratorAccess 策略,然后点击“创建用户”完成创建新的 IAM 用户。

8. IAM 用户创建将在几分钟后结束,您将看到一个成功的横幅消息。
将密码复制或下载到安全的地方,因为您稍后需要用它来登录此新的 IAM 用户。
点击消息旁边的 URL 跳转到 IAM 用户登录页面。
点击“关闭”以关闭消息窗口。

9. 在下一页中,输入您刚生成的用户名和密码,然后点击“登录”以登录您的新 IAM 用户。

使用 AWS 控制台创建 KMS 密钥
现在您已经以 IAM 用户身份登录到 AWS 管理控制台,可以开始创建您的第一个 KMS 密钥。
按照以下步骤使用 AWS 控制台创建 KMS 密钥。
1. 在“查找服务”搜索栏中键入 KMS。选择“密钥管理服务”以打开 KMS 控制台。

2. 点击左侧边栏中的“客户管理密钥”>“创建密钥”以创建新的KMS密钥。

3. 在下一个屏幕上执行以下操作。
密钥类型:选择对称。这种类型的密钥用于加密和解密,在大多数情况下效果最佳。
密钥用途:选择加密和解密。这种密钥用途允许您使用密钥进行加密和解密。
保留所有其他设置为其默认值,然后单击下一步。

4. 为您的密钥输入别名。此别名将帮助您在KMS控制台中快速识别您的密钥。别名必须在1到256个字符之间,并且只能包含字母数字字符、连字符(-)和下划线(_)。
别名不能以aws/开头,因为此前缀已保留给AWS管理的密钥。如果您尝试使用此前缀,您将收到以下错误消息。

为您的密钥输入描述。此字段是可选的,但始终建议包含描述,以便您以后记住密钥的用途。
保留所有其他设置为其默认值,然后单击“下一步”继续。

5. 选择您之前创建的用户KMSUserConsole旁边的复选框。此用户将是唯一具有使用此密钥权限的用户。
保持未选中“允许密钥管理员删除此密钥”,因为您不希望任何人删除您的密钥。
单击“下一步”继续。

选择您之前创建的用户KMSUserConsole,然后点击下一步。此操作允许您的用户在加密操作中使用密钥,比如加密和解密数据。

7. 最后,点击完成按钮,完成密钥创建过程。

您的新KMS密钥现在将出现在KMS控制台的客户管理密钥部分。您可以查看有关您的密钥的信息,如状态、密钥ID、别名等。

使用AWS控制台管理KMS密钥
现在您已经创建了一个KMS密钥,接下来的部分将向您展示如何使用AWS控制台来管理它们。
编辑KMS密钥
您可以随时编辑KMS密钥以更改其设置。要做到这一点,请按照以下步骤操作:
1. 点击您想要编辑的密钥的超链接。此操作将打开密钥详细信息页面。

2. 点击页面右上角的编辑按钮。

3. 进行任何您想要进行的更改,并点击保存。您必须知道,您唯一可以更改的是描述。

禁用和启用KMS密钥
您可以随时禁用和启用KMS密钥。默认情况下,所有密钥在创建时都是启用的。假设一个密钥可能已经被 compromise。禁用密钥直到进一步调查是个好主意。
1. 选中您想要禁用的密钥旁边的复选框,然后点击密钥操作→禁用。

2. 一个窗口询问您是否确认要禁用该密钥。选中“确认要禁用此密钥”旁边的复选框,然后点击禁用。

现在密钥已禁用,您将在密钥详细信息页面看到一条消息。密钥的状态也将更改为禁用,如下所示。

3. 当您的调查完成后,您可以重新启用密钥,并且准备好重新开始使用该密钥。选中要启用的密钥旁边的复选框 → 密钥操作 → 启用。

使用 AWS CLI 创建 KMS 密钥
喜欢使用 AWS CLI 吗?太棒了!您也可以使用 AWS CLI 创建 KMS 密钥。本节将教您如何创建具有程序化访问权限的 IAM 用户。
创建用户后,您将在 AWS 配置文件中存储凭据。您将使用该配置文件与 AWS 进行交互以创建 KMS 密钥。
创建具有程序化访问权限的 IAM 用户
您需要一个具有程序化访问权限的 IAM 用户,以便在不使用密码的情况下使用 AWS CLI 进行身份验证。程序化访问使用访问密钥,即访问密钥 ID 和秘密访问密钥的组合,用于发出 API 调用。
按照以下步骤创建具有程序化访问权限的 IAM 用户
1. 在 AWS 控制台中创建名为 KMSUserCli 的新 IAM 用户。请参考前面的创建 IAM 用户部分(步骤 1 到 4)。
2. 当您到达选择 AWS 访问类型时,请选择程序化访问,然后点击下一步:权限。

3. 选择直接附加现有策略。选中 AdministratorAccess 旁边的复选框,然后点击下一步:标签。

4. 跳过添加标签并点击下一步:审核。

5. 最后,点击创建用户以创建用户。

一旦流程完成,您将看到一个类似下面的屏幕,显示您的新用户的访问密钥ID和秘密访问密钥。这些是您将用于配置AWS CLI的密钥。请务必将这些密钥存放在安全的地方,因为在此页面之后您将无法再次查看它们!
不要在公共CI/CD管道或GitHub的评论或其他公共论坛中分享这些密钥!

配置AWS CLI配置文件
现在您已经创建了IAM用户,您需要在您的计算机上设置AWS配置文件,以便您可以使用该用户的凭据访问AWS密钥管理服务。
按照以下步骤配置您的AWS配置文件:
1. 以管理员身份打开PowerShell或命令提示符。
2. 运行以下命令以验证您是否已安装AWS CLI。如果已安装,您将看到类似下面的屏幕截图。

3. 现在,运行以下命令来设置您的新配置文件。
4. 在提示符处,输入以下信息。
- AWS访问密钥ID:输入您之前创建的IAM用户的访问密钥ID。
- AWS秘密访问密钥:输入您之前创建的IAM用户的秘密访问密钥。
- 默认区域名称:输入您的首选区域。在本教程中,您将使用us-west-2。
- 默认输出格式:输入JSON。以JSON格式输出更容易阅读。

使用AWS CLI创建KMS密钥
现在您有了一个具有程序访问权限的IAM用户,可以开始创建KMS密钥。
运行以下命令以创建新的KMS密钥。
您将看到类似于以下输出。 KeyId
是您新KMS密钥的标识符。记下它,以备将来使用。

由于您未明确指定密钥策略,AWS KMS将为新密钥创建默认密钥策略。该策略授予根用户对密钥的完全控制权限,包括创建AWS身份和访问管理(IAM)用户和角色的权限。
运行以下命令以检索新KMS密钥的密钥策略。将--key-id
参数替换为您新KMS密钥的实际KeyId
。此命令返回包含新KMS密钥密钥策略的文本文档。
输出应类似于以下内容。

使用AWS CLI管理KMS密钥
现在您已经创建了一个KMS密钥,您可以学习如何使用AWS CLI来管理它。本节将教您如何列出、禁用和启用KMS密钥。
您可以随时禁用和启用KMS密钥。当您想要调查潜在的误用或者暂时停止使用密钥时,禁用KMS密钥非常有用。
1. 运行以下命令来禁用KMS密钥。将–key-id参数替换为您的KMS密钥的实际KeyId。此命令不会产生任何输出。

2. 要验证密钥是否已禁用,请运行以下命令。输出应包含“KeyState”: “Disabled”字段,如所示。

3. 要启用密钥,请运行以下命令。同样,此命令不会产生任何输出。

4. 最后,运行以下命令来列出您账户中的所有KMS密钥。输出包括每个密钥的keyId和KeyArn等信息。

结论
在本文中,您学习了如何使用AWS CLI和AWS控制台创建和管理KMS密钥。您还学习了如何创建具有编程访问权限的IAM用户,允许AWS CLI管理您的KMS密钥。
对于任何与AWS合作的人来说,掌握AWS密钥管理技能都是必不可少的,特别是如果您负责管理敏感数据。通过本文中的步骤,您现在应该具备开始使用AWS KMS所需的技能。
借助这些新发现的知识,为什么不使用AWS CloudFormation创建AWS KMS资源,以节省时间和精力呢?