受控 HSM 角色管理
注意
Key Vault 支援兩種類型的資源:保存庫和受控 HSM。 本文討論受控 HSM。 如果您想要了解如何管理保存庫,請參閱使用 Azure CLI 來管理 Key Vault。
如需受控 HSM 的概觀,請參閱什麼是受控 HSM?。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
本文說明如何管理受控 HSM 資料平面的角色。 若要了解受控 HSM 存取控制模型,請參閱受控 HSM 存取控制。
若要允許安全性主體 (例如使用者、服務主體、群組或受控識別) 執行受控 HSM 資料平面作業,他們必須被指派允許執行這些作業的角色。 例如,如果您想要允許應用程式使用金鑰執行簽署作業,則必須為其指派以 "Microsoft.KeyVault/managedHSM/keys/sign/action" 作為其中一個資料動作的角色。 角色可指派於特定範圍。 受控 HSM 本機 RBAC 支援兩個範圍:HSM 範圍 (/
或 /keys
) 和每個金鑰 (/keys/<keyname>
)。
如需所有受控 HSM 內建角色及其允許之作業的清單,請參閱受控 HSM 內建角色。
必要條件
若要使用本文中的 Azure CLI 命名,您必須具有下列項目:
- 訂閱 Microsoft Azure。 如果您沒有帳戶,您可以註冊免費試用。
- Azure CLI 2.25.0 版或更新版本。 執行
az --version
以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI 模組。 - 訂用帳戶中的受控 HSM。 請參閱快速入門:使用 Azure CLI 佈建並啟動受控 HSM,以佈建並啟動受控 HSM。
Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。
要啟動 Azure Cloud Shell:
選項 | 範例/連結 |
---|---|
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 | |
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 | |
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 |
若要使用 Azure Cloud Shell:
啟動 Cloud Shell。
選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。
透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。
選取 Enter 鍵執行程式碼或命令。
登入 Azure
若要使用 CLI 登入 Azure,您可以輸入:
az login
若要進一步了解透過 CLI 的登入選項,請參閱使用 Azure CLI 進行登入
建立新的角色指派
指派所有金鑰的角色
使用 az keyvault role assignment create
命令,針對 ContosoHSM 中的所有金鑰 (範圍 /keys
),將受控 HSM 密碼編譯人員角色指派給使用者主體名稱 user2@contoso.com 所識別的使用者。
az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com --scope /keys
指派特定金鑰的角色
使用 az keyvault role assignment create
命令,針對名為 myrsakey 的特定金鑰,將受控 HSM 密碼編譯金鑰角色指派給使用者主體名稱 user2@contoso.com 所識別的使用者。
az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com --scope /keys/myrsakey
列出現有的角色指派
使用 az keyvault role assignment list
列出角色指派。
在範圍 / (未指定 --scope 時的預設值) 為所有使用者 (未指定 --assignee 時的預設值) 進行的所有角色指派
az keyvault role assignment list --hsm-name ContosoMHSM
在 HSM 層級為特定使用者 user1@contoso.com 進行的所有角色指派。
az keyvault role assignment list --hsm-name ContosoMHSM --assignee user@contoso.com
注意
當範圍是 / (或 /keys) 時,list 命令只會列出最上層的所有角色指派,而不會顯示個別金鑰層級的角色指派。
針對特定金鑰 myrsakey 的特定使用者 user2@contoso.com 進行的所有角色指派。
az keyvault role assignment list --hsm-name ContosoMHSM --assignee user2@contoso.com --scope /keys/myrsakey
針對特定金鑰 myrsakey 的特定使用者 user2@contoso.com 進行的受控 HSM 密碼編譯人員角色的特定角色指派
az keyvault role assignment list --hsm-name ContosoMHSM --assignee user2@contoso.com --scope /keys/myrsakey --role "Managed HSM Crypto Officer"
刪除角色指派
使用 az keyvault role assignment delete
命令,刪除指派給金鑰 myrsakey2 的使用者 user2@contoso.com 的受控 HSM 密碼編譯人員角色。
az keyvault role assignment delete --hsm-name ContosoMHSM --role "Managed HSM Crypto Officer" --assignee user2@contoso.com --scope /keys/myrsakey2
列出所有可用的角色定義
使用 az keyvault role definition list
命令列出所有角色定義。
az keyvault role definition list --hsm-name ContosoMHSM
建立新的角色定義
受控 HSM 有數個內建 (預先定義的) 角色適合用於最常見的使用案例。 您可以使用允許角色執行的特定動作清單來定義您自己的角色。 然後,您可以將此角色指派給主體,以向其授與指定動作的權限。
針對名為 My Custom Role 的角色使用 az keyvault role definition create
命令 (使用 JSON 字串)。
az keyvault role definition create --hsm-name ContosoMHSM --role-definition '{
"roleName": "My Custom Role",
"description": "The description of the custom rule.",
"actions": [],
"notActions": [],
"dataActions": [
"Microsoft.KeyVault/managedHsm/keys/read/action"
],
"notDataActions": []
}'
從名為 my-custom-role-definition.json 的檔案 (包含角色定義的 JSON 字串) 針對角色使用 az keyvault role definition create
命令。 請參閱上面的範例。
az keyvault role definition create --hsm-name ContosoMHSM --role-definition @my-custom-role-definition.json
顯示角色定義的詳細資料
使用 az keyvault role definition show
命令以名稱 (GUID) 查看特定角色定義的詳細資料。
az keyvault role definition show --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
更新自訂角色定義
使用 az keyvault role definition update
命令來更新名為 My Custom Role 的角色 (使用 JSON 字串)。
az keyvault role definition create --hsm-name ContosoMHSM --role-definition '{
"roleName": "My Custom Role",
"name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-
xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "The description of the custom rule.",
"actions": [],
"notActions": [],
"dataActions": [
"Microsoft.KeyVault/managedHsm/keys/read/action",
"Microsoft.KeyVault/managedHsm/keys/write/action",
"Microsoft.KeyVault/managedHsm/keys/backup/action",
"Microsoft.KeyVault/managedHsm/keys/create"
],
"notDataActions": []
}'
刪除自訂角色定義
使用 az keyvault role definition delete
命令以名稱 (GUID) 查看特定角色定義的詳細資料。
az keyvault role definition delete --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
注意
無法刪除內建角色。 刪除自訂角色時,所有使用該自訂角色的角色指派都會失效。
下一步
- 請參閱 Azure 角色型存取控制 (Azure RBAC) 的概觀。
- 請參閱受控 HSM 角色管理的教學課程
- 深入了解受控 HSM 存取控制模型
- 查看所有受控 HSM 本機 RBAC 的內建角色