如何像專業人士一樣使用AWS密鑰管理

你是否正在尋找一種快速加密和解密數據的方法?請查看 AWS 金鑰管理!該服務通過允許您創建和管理加密金鑰,為您的數據提供高級安全性。您還可以控制誰可以訪問您的金鑰以及他們可以使用這些金鑰執行的操作。

這個教程絕對不會涵蓋 AWS 金鑰管理的所有知識,但它將為您提供使用這個強大工具的基礎概述。

繼續閱讀,以充分利用 AWS 金鑰管理的安全性優勢!

先決條件

本教程將進行實踐演示。如果您想跟著做,請確保您具備以下條件。

  • 一個具有活動計費的 AWS 帳戶。您可以在此處免費創建 AWS 帳戶。免費層包括足夠的服務,讓您開始進行本教程。
  • 您已在您的計算機上安裝並配置了 AWS CLI。查看此處的教程獲取更多信息。

使用 AWS 控制台創建 KMS 金鑰

如果您喜歡使用AWS控制台(GUI)而不是AWS CLI,請繼續閱讀。以下部分將指導您如何使用控制台創建一個KMS密鑰。

創建IAM用戶

首先,您需要創建一個IAM用戶,以便從AWS命令行界面(CLI)訪問AWS密鑰管理服務(KMS)。

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金鑰。預設情況下,所有金鑰在創建時都是啟用的。假設金鑰可能已被入侵。建議在進一步調查之前停用金鑰。

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. 選擇直接附加現有策略。勾選旁邊的核取方塊,然後點擊下一步:標記。

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 Access Key ID: 输入您之前创建的IAM用户的访问密钥ID。
  • AWS Secret Access Key: 输入您之前创建的IAM用户的秘密访问密钥。
  • Default region name: 输入您喜好的区域。在本教程中,您将使用us-west-2
  • Default output format: 输入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/