訓練
認證
Microsoft Certified: Identity and Access Administrator Associate - Certifications
示範 Microsoft Entra ID 的功能,以現代化身分識別解決方案、實作混合式解決方案,以及實作身分識別治理。
Azure Key Vault 受控 HSM 是一項雲端服務,可保護加密金鑰。 這是敏感且具業務關鍵性的資料,因此您必須藉由僅允許獲得授權的應用程式和使用者存取受控 HSM,來保護其存取。 本文提供受控 HSM 控制存取模型的概觀。 文中會說明驗證和授權,並說明如何保護對受控 HSM 的存取權。
本教學課程將逐步引導您完成簡單的範例,以說明如何使用 Azure RBAC 和受控 HSM 本機 RBAC 來達成職責區分和存取控制。 請參閱受控 HSM 存取控制,以了解受控 HSM 存取控制模型。
若要完成本文中的步驟,您必須具有下列項目︰
az --version
以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI 模組。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 鍵執行程式碼或命令。
若要使用 CLI 登入 Azure,您可以輸入:
az login
若要進一步了解透過 CLI 的登入選項,請參閱使用 Azure CLI 進行登入
在此範例中,我們要開發一個使用 RSA 2,048 位元金鑰進行簽署作業的應用程式。 我們的應用程式會在具有受控識別的 Azure 虛擬機器 (VM) 中執行。 用於簽署的 RSA 金鑰會儲存在我們的受控 HSM 中。
我們已識別下列負責管理、部署和稽核應用程式的角色:
另外還有一個不在我們應用程式範圍內的角色:訂用帳戶 (或資源群組) 系統管理員。 訂用帳戶管理員會設定安全性小組的初始存取權限。 其會使用資源群組 (具有此應用程式所需的資源),將存取權授與安全性小組。
我們需要對我們的角色授權下列作業:
安全性小組
開發人員和操作員
稽核員
下表摘要說明指派給小組的角色以及用來存取受控 HSM 的資源。
角色 | 管理平面角色 | 資料平面角色 |
---|---|---|
安全性小組 | 受控 HSM 參與者 | 受控 HSM 管理員 |
開發人員和操作員 | 無 | 無 |
稽核者 | 無 | 受控 HSM 密碼編譯稽核員 |
應用程式所使用之 VM 的受控識別 | 無 | 受控 HSM 密碼編譯使用者 |
應用程式所使用之儲存體帳戶的受控識別 | 無 | 受控 HSM 服務加密 |
這三個小組角色需要其他資源的存取權以及受控 HSM 權限。 若要部署 VM (或 Azure App Service 的 Web Apps 功能),開發人員和操作員需要這些資源類型的 Contributor
存取權。 稽核員需要受控 HSM 記錄儲存所在之儲存體帳戶的讀取權限。
若要指派管理平面角色 (Azure RBAC),您可以使用 Azure 入口網站或任何其他管理介面,例如 Azure CLI 或 Azure PowerShell。 若要指派受控 HSM 資料平面角色,您必須使用 Azure CLI。 如需管理平面角色的詳細資訊,請參閱 Azure 內建角色。 如需受控 HSM 數據平面角色的詳細資訊,請參閱受控 HSM 的本地 RBAC 內建角色。
本節中的 Azure CLI 程式碼片段是基於下列假設而建置的︰
訂用帳戶管理員會將 Managed HSM Contributor
角色指派給安全性小組。 此角色可讓安全性小組管理現有的受控 HSM,以及建立新的受控 HSM。 如果有現有的受控 HSM,他們必須獲得「受控 HSM 管理員」角色的指派,才能加以管理。
# This role assignment allows Contoso Security Team to create new Managed HSMs
az role assignment create --assignee-object-id $(az ad group show -g 'Contoso Security Team' --query 'id' -o tsv) --assignee-principal-type Group --role "Managed HSM Contributor"
# This role assignment allows Contoso Security Team to become administrator of existing managed HSM
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az ad group show -g 'Contoso Security Team' --query 'id' -o tsv) --scope / --role "Managed HSM Administrator"
安全性小組會設定記錄,並將角色指派給稽核員和 VM 應用程式。
# Enable logging
hsmresource=$(az keyvault show --hsm-name ContosoMHSM --query id -o tsv)
storageresource=$(az storage account show --name contosologstorage --query id -o tsv)
az monitor diagnostic-settings create --name MHSM-Diagnostics --resource $hsmresource --logs '[{"category": "AuditEvent","enabled": true}]' --storage-account $storageresource
# Assign the "Crypto Auditor" role to Contoso App Auditors group. It only allows them to read.
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az ad group show -g 'Contoso App Auditors' --query 'objectId' -o tsv) --scope / --role "Managed HSM Crypto Auditor"
# Grant the "Crypto User" role to the VM's managed identity. It allows to create and use keys.
# However it cannot permanently delete (purge) keys
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az vm identity show --name "vmname" --resource-group "ContosoAppRG" --query objectId -o tsv) --scope / --role "Managed HSM Crypto Auditor"
# Assign "Managed HSM Crypto Service Encryption User" role to the Storage account ID
storage_account_principal=$(az storage account show --id $storageresource --query identity.principalId -o tsv)
# (if no identity exists), then assign a new one
[ "$storage_account_principal" ] || storage_account_principal=$(az storage account update --assign-identity --id $storageresource)
az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto Service Encryption User" --assignee $storage_account_principal
本教學課程大多僅說明與存取控制有關的動作。 在此並不說明有關於在您的 VM 中部署應用程式、使用客戶管理的金鑰為儲存體帳戶開啟加密、建立受控 HSM 的其他動作和作業,以便讓範例著重於存取控制和角色管理。
我們的範例會說明一個簡單的案例。 真實案例可能會更複雜。 您可以根據需求調整金鑰保存庫的權限。 我們假設該安全性小組會提供 DevOps 人員在其應用程式中所使用的金鑰和密碼參考 (URI 和指紋)。 開發人員和操作員不需要任何資料平面存取權。 我們的重點放在如何保護您的金鑰保存庫。 在保護您的 VM、儲存體帳戶和其他 Azure 資源時,請做出類似的考量。
如需適用於管理員的開始使用教學課程,請參閱什麼是受控 HSM?。
若要進一步了解受控 HSM 記錄的使用記錄,請參閱受控 HSM 記錄。
訓練
認證
Microsoft Certified: Identity and Access Administrator Associate - Certifications
示範 Microsoft Entra ID 的功能,以現代化身分識別解決方案、實作混合式解決方案,以及實作身分識別治理。