從保存庫存取原則移轉至 Azure 角色型存取控制權限模型
Azure Key Vault 提供兩種授權系統:Azure 角色型存取控制 (Azure RBAC) 和存取原則模型。 Azure RBAC 是 Azure Key Vault 預設且建議的授權系統。 如需兩種授權方法的比較,請參閱 Azure 角色型存取控制 (Azure RBAC) 與存取原則。
本文提供將金鑰保存庫從存取原則模型移轉至 Azure RBAC 模型所需的資訊。
存取原則與 Azure 角色的對應
Azure RBAC 有數個 Azure 內建角色,可供您指派給使用者、群組、服務主體和受控識別。 如果內建的角色無法滿足您組織的特定需求,您可以建立自己的 Azure 自訂角色。
Key Vault 內建角色適用於金鑰、憑證和秘密存取管理:
- Key Vault 系統管理員
- Key Vault 讀者
- 金鑰保存庫清除操作員
- Key Vault 憑證員
- 金鑰保存庫憑證使用者
- Key Vault 密碼編譯員
- Key Vault 密碼編譯使用者
- Key Vault 密碼編譯服務加密使用者
- Key Vault 密碼編譯服務發行使用者
- Key Vault 祕密長
- Key Vault 祕密使用者
如需現有內建角色的詳細資訊,請參閱 Azure 內建角色
個別選取的權限或預先定義的權限範本可以指派給保存庫存取原則。
存取原則預先定義的權限範本:
- 金鑰、祕密、憑證管理
- 金鑰與祕密管理
- 祕密與憑證管理
- 金鑰管理
- 秘密管理
- 憑證管理
- SQL Server 連接器
- Azure Data Lake Storage 或 Azure 儲存體
- Azure 備份
- Exchange Online 客戶金鑰
- SharePoint Online 客戶金鑰
- Azure 資訊 BYOK
存取原則範本與 Azure 角色的對應
存取原則範本 | Operations | Azure 角色 |
---|---|---|
金鑰、祕密、憑證管理 | 金鑰:所有作業 憑證:所有作業 祕密:所有作業 |
Key Vault 系統管理員 |
金鑰與祕密管理 | 金鑰:所有作業 祕密:所有作業 |
Key Vault 密碼編譯長 Key Vault 祕密員 |
祕密與憑證管理 | 憑證:所有作業 祕密:所有作業 |
Key Vault 憑證長 Key Vault 祕密員 |
金鑰管理 | 金鑰:所有作業 | Key Vault 密碼編譯員 |
秘密管理 | 祕密:所有作業 | Key Vault 祕密員 |
憑證管理 | 憑證:所有作業 | Key Vault 憑證員 |
SQL Server 連接器 | 金鑰:取得、列出、包裝金鑰、將金鑰解除包裝 | Key Vault 密碼編譯服務加密使用者 |
Azure Data Lake Storage 或 Azure 儲存體 | 金鑰:取得、列出、將金鑰解除包裝 | N/A 需要自訂角色 |
Azure 備份 | 金鑰:取得、列出、備份 祕密︰取得、列出、備份 |
N/A 需要自訂角色 |
Exchange Online 客戶金鑰 | 金鑰:取得、列出、包裝金鑰、將金鑰解除包裝 | Key Vault 密碼編譯服務加密使用者 |
Exchange Online 客戶金鑰 | 金鑰:取得、列出、包裝金鑰、將金鑰解除包裝 | Key Vault 密碼編譯服務加密使用者 |
Azure 資訊 BYOK | 金鑰:取得、解密、簽署 | N/A 需要自訂角色 |
注意
透過 Azure 入口網站的 Azure App Service 憑證設定不支援 Key Vault RBAC 權限模型。 您可以使用 Azure PowerShell、Azure CLI、ARM 範本部署,以及 金鑰保存庫憑證使用者,進行 App Service 全域身分識別,例如公用雲端的 Microsoft Azure App Service。
指派範圍對應
適用於 Key Vault 的 Azure RBAC 允許下列範圍內的角色指派:
- 管理群組
- 訂用帳戶
- 資源群組
- Key Vault 資源
- 個別金鑰、祕密和憑證
保存庫存取原則權限模型僅限於在 Key Vault 資源等級指派原則。
一般而言,最佳做法是每個應用程式都有一個金鑰保存庫,並在金鑰保存庫等級管理存取權。 在某些情節下,在其他範圍內管理存取可以簡化存取管理。
基礎結構、安全性系統管理員和操作員:如果使用保存庫存取原則在管理群組、訂用帳戶或資源群組等級管理金鑰保存庫群組,則需要維護每個金鑰保存庫的原則。 Azure RBAC 允許在管理群組、訂用帳戶或資源群組上建立一個角色指派。 該指派適用於相同範圍內建立的任何新金鑰保存庫。 在此情節下,建議使用 Privileged Identity Management 搭配 Just-In-Time 存取權,而非提供永久存取權。
應用程式:在某些情節下,應用程式必須與其他應用程式共用祕密。 使用保存庫存取原則時,必須建立不同的金鑰保存庫,以避免提供所有祕密的存取權。 Azure RBAC 允許以個別秘密為範圍來指派角色,而不是使用單一金鑰保存庫。
保存庫存取原則移轉至 Azure RBAC 的步驟
Azure RBAC 和保存庫存取原則權限模型之間有許多差異。 為了避免在移轉期間中斷,建議遵循下列步驟。
- 識別並指派角色:根據以上對應表識別內建角色,並在必要時建立自訂角色。 根據範圍對應指導,在範圍內指派角色。 如需如何將角色指派給金鑰保存庫的詳細資訊,請參閱使用 Azure 角色型存取控制提供對金鑰保存庫的存取權
- 驗證角色指派:Azure RBAC 中的角色指派可能需要幾分鐘的時間來傳播。 如需如何檢查角色指派的指引,請參閱列出範圍內的角色指派
- 設定金鑰保存庫的監視和警示:對於拒絕存取例外狀況,請務必啟用記錄並設定警示。 如需詳細資訊,請參閱 Azure Key Vault 的監視和警示
- 在 Key Vault 上設定 Azure 角色型存取控制權限模型:啟用 Azure RBAC 權限模型將使所有現有的存取原則失效。 如果發生錯誤,則可以切換回權限模型,所有現有的存取原則都維持不變。
必要條件
變更金鑰存放庫的權限模型需要兩個權限:
- 「Microsoft.Authorization/roleAssignments/write」權限包含在擁有者角色和 使用者存取管理員角色中。
- 「Microsoft.KeyVault/vaults/write」權限包含在金鑰保存庫參與者角色中。
不支援傳統訂用帳戶管理員角色,例如「服務管理員」和「共同管理員」。
注意
當 Azure RBAC 權限模型啟用時,所有嘗試更新存取原則的指令碼都會失敗。 請務必將這些指令碼更新為使用 Azure RBAC。
移轉治理
您可以使用 Azure 原則服務來控管保存庫之間 RBAC 權限模型的移轉。 您可以建立自訂原則定義來稽核現有的金鑰保存庫,並強制所有新的金鑰保存庫使用 Azure RBAC 權限模型。
建立並指派 Key Vault Azure RBAC 權限模型的原則定義
- 瀏覽至原則資源
- 在 Azure 原則頁面左側的 [製作] 下,選取 [指派]。
- 選取頁面頂端的 [指派原則]。 此按鈕會開啟至 [原則指派] 頁面。
- 輸入下列資訊:
- 選擇要強制執行原則的訂用帳戶和資源群組,定義原則範圍。 按一下範圍欄位上的三個點按鈕即可選取。
- 選取原則定義的名稱:「[預覽]:Azure Key Vault 應使用 RBAC 權限模型」
- 前往頁面頂部的參數索引標籤,定義原則所需的效果(稽核、拒絕或停用)。
- 填寫任何其他欄位。 按一下頁面底部的 [上一步] 和 [下一步] 按鈕,即可瀏覽索引標籤。
- 選取 [檢閱 + 建立]
- 選取 [建立]
指派內建原則後,可能需要長達 24 小時才能完成掃描。 掃描完成後,您可以看到如下所示的合規性結果。
如需更多資訊,請參閱
Azure RBAC 比較工具的存取原則
重要
這個工具由 Microsoft Community 成員組建和維護,沒有正式的客戶支援服務提供支援。 工具依原樣提供,不提供任何形式的保證。
PowerShell 工具將 Key Vault 存取原則與指派的 RBAC 角色對照比較,協助將存取原則移轉到 RBAC 權限模型。 工具意圖在移轉現有 Key Vault 到 RBAC 權限模型時,提供健全性檢查,以確保指派的角色(具基礎資料動作)涵蓋現有存取原則。
疑難排解
- 角色指派在數分鐘之後沒有運作 - 在某些情況下,角色指派可能需要較長的時間。 請務必在程式碼中撰寫重試邏輯,以涵蓋這些情況。
- 刪除 (虛刪除) 與復原 Key Vault 時,角色指派會消失,目前這是所有 Azure 服務之間虛刪除功能的限制。 復原之後必須重新建立所有角色指派。