使用AWS密钥管理专业处理加密密钥

你是否正在寻找一种快速加密和解密数据的方法?看看 AWS Key Management 吧!该服务通过允许您创建和管理加密密钥,为您的数据提供了高级安全性。您还可以控制谁可以访问您的密钥以及他们可以对密钥采取哪些操作。

这个教程并不能覆盖关于 AWS Key Management 的所有内容。但它会为您提供使用这个强大工具的基础知识。

继续阅读,以享受 AWS Key Management 带来的安全性好处!

先决条件

本教程将进行实际演示。如果您想跟着做,请确保您具备以下条件。

  • 一个具有活动计费的 AWS 账户。您可以在此处免费创建 AWS 账户。此处。免费层包括足够的服务,可让您开始使用本教程。
  • 您已在您的计算机上安装并配置了AWS CLI。查看此处的教程获取更多信息。

使用 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用户及其权限的地方。

Opening the IAM console

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

Adding a new IAM user

4. 在“添加用户”页面上执行以下步骤。

为您的新用户输入名称。在本示例中,它称为KMSUserConsole。

选择“密码 – AWS管理控制台访问”单选按钮 > 自动生成密码。此选项将为您的用户生成一个随机密码。

确保未选中“用户必须在下次登录时创建新密码”复选框。这样做将允许您在无需先重置密码的情况下以该用户身份登录。

点击“下一步:权限”继续。

Adding the IAM user details

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

点击“下一步:标签”继续。

Setting permissions

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

Viewing the Add tags (optional) page

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

AdministratorAccess

8. IAM 用户创建将在几分钟后结束,您将看到一个成功的横幅消息。

将密码复制或下载到安全的地方,因为您稍后需要用它来登录此新的 IAM 用户。

点击消息旁边的 URL 跳转到 IAM 用户登录页面。

点击“关闭”以关闭消息窗口。

IAM User creation completion

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

Signing in as the IAM user

使用 AWS 控制台创建 KMS 密钥

现在您已经以 IAM 用户身份登录到 AWS 管理控制台,可以开始创建您的第一个 KMS 密钥。

按照以下步骤使用 AWS 控制台创建 KMS 密钥。

1. 在“查找服务”搜索栏中键入 KMS。选择“密钥管理服务”以打开 KMS 控制台。

Opening the KMS console

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

Creating a new key

3. 在下一个屏幕上执行以下操作。

密钥类型:选择对称。这种类型的密钥用于加密和解密,在大多数情况下效果最佳。

密钥用途:选择加密和解密。这种密钥用途允许您使用密钥进行加密和解密。

保留所有其他设置为其默认值,然后单击下一步

Configuring keys

4. 为您的密钥输入别名。此别名将帮助您在KMS控制台中快速识别您的密钥。别名必须在1到256个字符之间,并且只能包含字母数字字符、连字符(-)和下划线(_)。

别名不能以aws/开头,因为此前缀已保留给AWS管理的密钥。如果您尝试使用此前缀,您将收到以下错误消息。

Getting the aws/ is a restricted prefix error.

为您的密钥输入描述。此字段是可选的,但始终建议包含描述,以便您以后记住密钥的用途。

保留所有其他设置为其默认值,然后单击“下一步”继续。

Adding an alias

5. 选择您之前创建的用户KMSUserConsole旁边的复选框。此用户将是唯一具有使用此密钥权限的用户。

保持未选中“允许密钥管理员删除此密钥”,因为您不希望任何人删除您的密钥。

单击“下一步”继续。

Selecting key admin

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

Selecting the IAM users and roles that can access the KMS key in cryptographic operations

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

Completing the key creation process

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

Viewing your keys

使用AWS控制台管理KMS密钥

现在您已经创建了一个KMS密钥,接下来的部分将向您展示如何使用AWS控制台来管理它们。

编辑KMS密钥

您可以随时编辑KMS密钥以更改其设置。要做到这一点,请按照以下步骤操作:

1. 点击您想要编辑的密钥的超链接。此操作将打开密钥详细信息页面。

Opening the key details page.

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

Click on the Edit button.

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

make to the key and click Save

禁用和启用KMS密钥

您可以随时禁用和启用KMS密钥。默认情况下,所有密钥在创建时都是启用的。假设一个密钥可能已经被 compromise。禁用密钥直到进一步调查是个好主意。

1. 选中您想要禁用的密钥旁边的复选框,然后点击密钥操作→禁用。

Disabling a KMS Key

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

Confirming to disable a key

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

Viewing your key is disabled

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

Key actions → Enable.

使用 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 访问类型时,请选择程序化访问,然后点击下一步:权限。

Selecting Programmatic access

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

Selecting permissions

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

Skip adding tags

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

Creating an IAM user

一旦流程完成,您将看到一个类似下面的屏幕,显示您的新用户的访问密钥ID和秘密访问密钥。这些是您将用于配置AWS CLI的密钥。请务必将这些密钥存放在安全的地方,因为在此页面之后您将无法再次查看它们!

不要在公共CI/CD管道或GitHub的评论或其他公共论坛中分享这些密钥!

Viewing your access keys

配置AWS CLI配置文件

现在您已经创建了IAM用户,您需要在您的计算机上设置AWS配置文件,以便您可以使用该用户的凭据访问AWS密钥管理服务。

按照以下步骤配置您的AWS配置文件:

1. 以管理员身份打开PowerShell或命令提示符。

2. 运行以下命令以验证您是否已安装AWS CLI。如果已安装,您将看到类似下面的屏幕截图。

aws --version
Verify if you have the AWS CLI installed.

3. 现在,运行以下命令来设置您的新配置文件。

aws configure

4. 在提示符处,输入以下信息。

  • AWS访问密钥ID:输入您之前创建的IAM用户的访问密钥ID。
  • AWS秘密访问密钥:输入您之前创建的IAM用户的秘密访问密钥。
  • 默认区域名称:输入您的首选区域。在本教程中,您将使用us-west-2
  • 默认输出格式:输入JSON。以JSON格式输出更容易阅读。
Configuring a profile in AWS CLI

使用AWS CLI创建KMS密钥

现在您有了一个具有程序访问权限的IAM用户,可以开始创建KMS密钥。

运行以下命令以创建新的KMS密钥。

aws km create-key

您将看到类似于以下输出。 KeyId是您新KMS密钥的标识符。记下它,以备将来使用。

Creating a KMS Key Using The AWS CLI.

由于您未明确指定密钥策略,AWS KMS将为新密钥创建默认密钥策略。该策略授予根用户对密钥的完全控制权限,包括创建AWS身份和访问管理(IAM)用户和角色的权限。

运行以下命令以检索新KMS密钥的密钥策略。将--key-id参数替换为您新KMS密钥的实际KeyId。此命令返回包含新KMS密钥密钥策略的文本文档。

aws km get-key-policy --key-id you_KeyId_here --policy-name default --output text

输出应类似于以下内容。

Retrieving the key policy of your new KMS key.

使用AWS CLI管理KMS密钥

现在您已经创建了一个KMS密钥,您可以学习如何使用AWS CLI来管理它。本节将教您如何列出、禁用和启用KMS密钥。

您可以随时禁用和启用KMS密钥。当您想要调查潜在的误用或者暂时停止使用密钥时,禁用KMS密钥非常有用。

1. 运行以下命令来禁用KMS密钥。将–key-id参数替换为您的KMS密钥的实际KeyId。此命令不会产生任何输出。

aws aws kms disable-key --key-id you_KeyId_here
Disabling a KMS key.

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

aws kms describe-key --key-id you_KeyId_here
Verifying that the key is disabled.

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

aws kms enable-key --key-id you_KeyId_here
aws kms describe-key --key-id you_KeyId_here
Enabling the key.

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

aws kms list-keys
Listing all the KMS keys in your account,

结论

在本文中,您学习了如何使用AWS CLI和AWS控制台创建和管理KMS密钥。您还学习了如何创建具有编程访问权限的IAM用户,允许AWS CLI管理您的KMS密钥。

对于任何与AWS合作的人来说,掌握AWS密钥管理技能都是必不可少的,特别是如果您负责管理敏感数据。通过本文中的步骤,您现在应该具备开始使用AWS KMS所需的技能。

借助这些新发现的知识,为什么不使用AWS CloudFormation创建AWS KMS资源,以节省时间和精力呢?

Source:
https://adamtheautomator.com/aws-key-management/