快速入門:使用 Azure CLI 配置並啟用受管理型 HSM

在這個快速入門中,你可以使用 Azure CLI 建立並啟用一個 Azure Key Vault 受管型 HSM(硬體安全模組)。 完整管理的 HSM 是一種高可用性的單租戶雲端服務,符合標準規範,可讓您使用 FIPS 140-3 等級 3 驗證的 HSM 來保護您的雲端應用程式的加密密鑰。 欲了解更多管理型HSM的資訊,請參閱 概述

必要條件

需要訂閱 Azure 服務。 如果您沒有帳戶,請在開始之前建立 免費帳戶

您也會需要:

  • Azure CLI 版本 2.25.0 或更後版本。 執行 az --version 以尋找版本。 如果你需要安裝或升級,請參考安裝 Azure CLI

Azure Cloud Shell

Azure 提供 Azure Cloud Shell,一個互動式 shell 環境,您可以透過瀏覽器使用。 你可以用 Bash 或 PowerShell 搭配 Cloud Shell 來處理 Azure 服務。 你可以使用 Cloud Shell 預裝的指令來執行本文中的程式碼,而不必在本地環境安裝任何東西。

要啟動 Azure Cloud Shell:

選項 範例/連結
選取程式碼或命令區塊右上角的 [試試看]。 選擇 Try It 不會自動將程式碼或指令複製到 Cloud Shell。 顯示 Azure Cloud Shell 的 Try It 範例的截圖。
請前往 https://shell.azure.com,或選擇 啟動 Cloud Shell 按鈕,在瀏覽器中開啟 Cloud Shell。 按鈕啟動 Azure Cloud Shell.
Azure 入口網站右上角的選單欄中,選擇Cloud Shell按鈕。 顯示 Azure 入口網站中 Cloud Shell 按鈕的截圖

使用 Azure Cloud Shell:

  1. 啟動 Cloud Shell。

  2. 選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。

  3. 在 Windows 和 Linux 中選擇 Ctrl+Shift+V,或在 macOS 中選擇 Cmd+Shift+V,將程式碼或指令貼入 Cloud Shell 會話中。

  4. 選取 Enter 鍵執行程式碼或命令。

登入 Azure

要使用 CLI 登入 Azure,請輸入:

az login

欲了解更多透過 CLI 驗證選項的資訊,請參閱 Sign in with Azure CLI

建立資源群組

資源群組是一個邏輯容器,Azure 資源會部署和管理其中。 使用 az group create 命令,在 eastus 位置建立名為 myResourceGroup 的資源群組。

az group create --name "myResourceGroup" --location "EastUS"

建立受控 HSM

建立受控 HSM 是兩步驟的流程:

  1. 佈建受控 HSM 資源。
  2. 下載稱為「安全性網域」的成品以啟動受控 HSM。

佈建受控 HSM

使用 az keyvault create 命令建立受控 HSM。 此指令碼包含三個必要參數:資源群組名稱、HSM 名稱和地理位置。

要建立受管理的 HSM 資源,請提供以下輸入:

  • 受管理的 HSM 名稱:一串 3 到 24 個字元的字串,只能包含數字(0-9)、字母(a-z、A-Z)和連字號(-)。

    重要

    每個受控 HSM 都必須有唯一的名稱。 以下範例中請用你自己的獨特受管 HSM 名稱替換 <hsm-name>

  • 資源群組名稱:myResourceGroup

  • 地點: 美國東部

  • 初始管理員的清單。

以下範例建立一個名為 <hsm-name>myResourceGroup 資源群組的 HSM,位於 EastUS 位置,目前 登入的使用者 為唯一管理員,並有 7 天 的軟刪除保留期。 您需繼續支付受控 HSM 的費用,直到它在虛刪除期間遭到清除。 如需詳細資訊,請參閱受控 HSM 虛刪除和清除保護,並閱讀有關受控 HSM 虛刪除的更多資訊。

oid=$(az ad signed-in-user show --query id -o tsv)
az keyvault create --hsm-name "<hsm-name>" --resource-group "myResourceGroup" --location "EastUS" --administrators $oid --retention-days 7

備註

如果你使用 Managed Identities 作為 Managed HSM 的初始管理員,請在後面 --administrators 輸入 Managed Identities 的 OID/PrincipalID,而不是 ClientID。

備註

執行 create 命令可能需要幾分鐘的時間。 當它成功返回時,你就可以啟動你的 HSM。

警告

受管理的 HSM 實例始終在使用中。 如果啟用了清除保護標記 --enable-purge-protection ,你就需支付整個保存期間的費用。

此命令的輸出會顯示您所建立之 Managed HSM 的屬性。 兩個最重要屬性是:

  • 姓名:您指定的名字。 您在其他命令中會使用此名稱。
  • hsmUri:你 HSM 的 URI(例如)。 https://<hsm-name>.managedhsm.azure.net 透過其 REST API 使用 HSM 的應用程式必須使用此 URI。

您的 Azure 帳號現在被授權對這個受管 HSM 執行任何操作。 而且,沒有其他人已獲授權。

啟動受控 HSM

所有資料平面指令在你啟動 HSM 之前都會被停用。 你無法建立金鑰或指派角色。 只有你在建立指令中指派的指定管理員才能啟用 HSM。 若要啟動 HSM,您必須下載安全性網域

若要啟用 HSM,您需要:

  • 最少三對 RSA 金鑰(最多 10 對)
  • 指定解密安全性網域所需的金鑰數目下限 (稱為仲裁)

你至少要傳送三個(最多 10 個)RSA 公鑰給 HSM。 HSM 會使用這些金鑰將安全性網域加密,並加以傳回。 一旦安全網域下載成功完成,您的 HSM 即可使用。 你還需要指定法定人數,也就是解密安全域所需的最少私鑰數量。

以下範例展示如何使用 openssl 產生三張自簽憑證:

openssl req -newkey rsa:2048 -nodes -keyout cert_0.key -x509 -days 365 -out cert_0.cer
openssl req -newkey rsa:2048 -nodes -keyout cert_1.key -x509 -days 365 -out cert_1.cer
openssl req -newkey rsa:2048 -nodes -keyout cert_2.key -x509 -days 365 -out cert_2.cer

憑證的到期日不會影響安全域的操作——即使是「過期」的憑證,仍可用來恢復安全域。

重要

這些 RSA 私鑰是你受管型 HSM 的信任根源。 對於生產環境,請使用空隔系統或本地 HSM 產生這些金鑰,並安全儲存。 詳見 安全領域最佳實務 以獲得詳細指引。

使用 az keyvault security-domain download 命令下載安全性網域,並啟動受控 HSM。 下列範例使用三個 RSA 金鑰組 (此命令只需要公鑰),並將投票數設定為 2。

az keyvault security-domain download --hsm-name <hsm-name> --sd-wrapping-keys ./certs/cert_0.cer ./certs/cert_1.cer ./certs/cert_2.cer --sd-quorum 2 --security-domain-file <hsm-name>-SD.json

安全地儲存安全性網域檔案和 RSA 金鑰組。 你需要它們來進行災難復原,或是建立另一個共用相同安全域的受管 HSM,這樣兩者才能共用金鑰。

成功下載安全網域後,你的 HSM 會進入活躍狀態,隨時可用。

清除資源

此集合中的其他快速入門和教學課程會以本快速入門為基礎。 如果您打算繼續進行後續的快速入門和教學課程,您可以讓這些資源留在原處。

當不再需要時,你可以使用 Azure CLI az 群組 delete 指令移除資源群組及所有相關資源:

az group delete --name "myResourceGroup"

警告

刪除資源群組會將受控 HSM 置於軟刪除狀態。 管理型 HSM 會繼續被計費,直到被清除為止。 請參閱受控 HSM 虛刪除和清除保護

下一步

在本快速入門中,您已佈建並啟動受控 HSM。 若要深入了解受控 HSM 及如何與應用程式整合,請繼續閱讀下列文章。