分享方式:


補救不符合 Azure 原則規範的資源

deployIfNotExists不符合原則或modify效果的資源可以透過補救進入符合規範的狀態。 補救是透過在現有資源和訂用帳戶上部署deployIfNotExists範本或modify指派原則作業的補救工作來完成,無論是在管理群組、訂用帳戶、資源群組或個別資源上。 本文說明了解和完成使用「Azure 原則」來進行補救所需的步驟。

補救存取控制的運作方式

當 Azure 原則 在評估deployIfNotExists原則時啟動範本部署,或在評估modify原則時修改資源時,它會使用與原則指派相關聯的受控識別。 原則指派會使用受控識別進行 Azure 資源授權。 您可以使用原則服務所建立的系統指派受控識別,或由使用者提供的使用者指派身分識別。 受控識別必須指派補救資源所需的最低 Azure 角色型訪問控制 (Azure RBAC) 角色。 如果受控識別缺少角色,在指派原則或計畫期間,入口網站中就會顯示錯誤。 當您使用入口網站時,Azure 原則 在指派啟動時自動授與列出的角色。 當您使用 Azure 軟體開發工具套件 (SDK) 時,角色必須手動授與受控識別。 受控識別的位置不會影響其與 Azure 原則的作業。

注意

變更原則定義後,並不會自動更新指派或相關聯的受控識別。

補救安全性可透過下列步驟來設定:

設定原則定義

作為必要條件,原則定義必須定義角色, deployIfNotExistsmodify 必須成功部署包含範本的內容。 對於內建原則定義不需採取任何動作,因為這些角色已預先填入。 針對自定義原則定義,請在屬性底下 details 新增 roleDefinitionIds 屬性。 此屬性是一個與您環境中角色相符的字串陣列。 如需完整範例,請參閱 deployIfNotExists 或修改

"details": {
    ...
    "roleDefinitionIds": [
    "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
    "/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
  ]
}

屬性 roleDefinitionIds 會使用完整的資源標識碼,而且不會佔用角色的短 roleName 。 若要取得環境中參與者角色的標識碼,請使用下列 Azure CLI 程式代碼:

az role definition list --name "Contributor"

重要

在原則定義中定義 roleDefinitionIds 或手動將許可權指派給受控識別時,許可權應限制為最小的可能集合。 如需更多最佳做法,請參閱受控識別最佳做法建議

設定受控識別

每個 Azure 原則指派只能與一個受控識別相關聯。 不過,可以指派多個角色給受控識別。 設定會以兩個步驟執行:先建立系統指派或使用者指派的受控識別,然後為其授與必要的角色。

注意

透過入口網站建立受控識別時,會自動將角色授與受控識別。 如果 roleDefinitionIds 稍後在原則定義中編輯,則必須手動授與新的許可權,即使在入口網站中也一樣。

建立受控識別

當您使用入口網站建立指派時,Azure 原則 可以產生系統指派的roleDefinitionIds受控識別,並將原則定義中所定義的角色授與它。 或者,您可以指定由使用者指派、且接收相同角色指派的受控識別。

在具有Log Analytics 參與者許可權的美國東部建立系統指派受控識別的原則指派螢幕快照。

若要在入口網站中設定系統指派的受控識別:

  1. 在 [建立/編輯指派] 檢視的 [補救] 索引標籤上,確定已在 [受控識別類型] 底下選取 [系統指派的受控識別]

  2. 指定要放置受控識別的位置。

  3. 請勿為系統指派的受控識別指派範圍指派範圍,因為範圍繼承自指派範圍。

若要在入口網站中設定使用者指派的受控識別:

  1. 在 [建立/編輯指派] 檢視的 [補救] 索引標籤上,確定已在 [受控識別類型] 底下選取 [使用者指派的受控識別]

  2. 指定受控識別的裝載範圍。 受控識別的範圍不一定要等於指派的範圍,但必須位於相同的租使用者中。

  3. 在 [現有的使用者指派的身分識別] 底下,選取受控識別。

透過已定義的角色將權限授與受控識別

重要

如果受控識別沒有執行必要補救工作所需的權限,則只會透過入口網站自動授與權限。 若要透過入口網站建立受控識別,您可以略過此步驟。

對於所有其他方法,都必須透過新增角色手動為指派的受控識別授與存取權,否則補救部署將會失敗。

需要手動權限的範例案例:

  • 如果透過 Azure 軟體開發套件 (SDK) 來建立指派
  • 如果 由 deployIfNotExistsmodify 修改的資源超出原則指派的範圍
  • 如果範本存取了原則指派範圍以外的資源屬性

使用入口網站將已定義的角色授與指派項目的受控識別時,有兩種方法:使用存取控制 (IAM),或是編輯原則或計畫指派,然後選取 [儲存]

若要將角色新增至指派項目的受控識別,請依照下列步驟進行操作:

  1. 藉由選取 [所有服務] 然後搜尋並選取 [原則],在 Azure 入口網站中啟動 Azure 原則服務。

  2. 選取 [Azure 原則] 頁面左側的 [指派]

  3. 找出具有受控識別的指派項目,然後選取名稱。

  4. 在編輯頁面上尋找 [指派識別碼] 屬性。 指派標識碼看起來像下列範例:

    /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/2802056bfc094dfb95d4d7a5
    

    受控識別的名稱是指派資源識別碼中的最後一個部分,在此範例中為 2802056bfc094dfb95d4d7a5。 請複製指派資源識別碼的這個部分。

  5. 瀏覽至需要手動新增角色定義的資源或資源父容器 (資源群組、訂用帳戶、管理群組)。

  6. 選取資源頁面中的 [存取控制 (IAM)] 連結,然後選取存取控制頁面頂端的 [+ 新增角色指派]

  7. 從原則定義中選取符合 roleDefinitionIds 的適當角色。 將 [指派存取權] 保留為 [使用者、群組或應用程式] 的預設值。 在 [選取] 方塊中,貼上或輸入稍早找到的指派資源識別碼部分。 在搜尋完成之後,選取具有相同名稱的物件以選取識別碼,然後選取 [儲存]

建立補救工作

藉由選取 [所有服務] 然後搜尋並選取 [原則],在 Azure 入口網站中啟動 Azure 原則服務。

在 [所有服務] 中搜尋原則的螢幕快照。

步驟 1:起始補救工作建立

有三種方式可透過入口網站建立補救工作。

選項 1:從 [補救] 頁面建立補救工作

  1. 選取「Azure 原則」頁面左側的 [補救]

    [原則] 頁面上 [補救] 節點的螢幕快照。

  2. 所有deployIfNotExistsmodify原則指派都會顯示在 [要補救的原則] 索引卷標上。選取一個具有不符合規範的資源,以開啟 [新增補救工作] 頁面。

  3. 請依照步驟指定補救工作詳細資料

選項 2:從不符合規範的原則指派建立補救工作

  1. 選取 [Azure 原則] 頁面左側的 [合規性]

  2. 選取包含或效果的不符合規範的原則或modify方案指派deployIfNotExists

  3. 選取頁面頂端的 [建立補救工作] 按鈕,以開啟 [新增補救工作] 頁面。

  4. 請依照步驟指定補救工作詳細資料

選項 3:在原則指派期間建立補救工作

如果要指派的原則或方案定義具有 deployIfNotExistsmodify 效果,精靈的 [ 補救 ] 索引卷標會提供 [ 建立補救工作 ] 選項,以在原則指派的同時建立補救工作。

注意

這是最精簡的補救工作建立方法,並且支援用於在訂用帳戶上指派的原則。 對於在管理群組上指派的原則,應在評估判定資源合規性之後,使用選項 1選項 2 來建立補救工作。

  1. 從入口網站中的指派精靈,瀏覽至 [補救] 索引標籤。選取 [建立補救工作] 核取方塊。

  2. 如果補救工作是從計畫指派起始的,請從下拉式清單中選取要補救的原則。

  3. 設定受控識別,並填寫精靈的其餘部分。 建立工作分派時會建立補救工作。

步驟 2:指定補救工作詳細資料

只有在使用選項 1選項 2 來起始補救工作建立時,才適用此步驟。

  1. 如果補救工作是從計畫指派起始的,請從下拉式清單中選取要補救的原則。 一 deployIfNotExistsmodify 一個原則可以一次透過單一補救工作來補救。

  2. 選擇性地修改頁面上的補救設定。 如需每個設定控制項的相關資訊,請參閱補救工作結構

  3. 在相同頁面上,使用 [範圍] 省略符號挑選從中指派原則的子資源 (連個別資源物件也包含在內),以篩選要補救的資源。 此外,使用 [位置] 下拉式清單進一步篩選資源。

    補救節點和要補救的資源方格螢幕快照。

  4. 選取 [補救] 來篩選資源之後,開始補救工作。 原則合規性頁面會開啟至 [補救工作] 索引標籤,以顯示工作進度的狀態。 補救工作所建立的部署會立即開始。

    [補救工作] 索引卷標和現有補救工作的進度螢幕快照。

步驟 3:追蹤補救工作進度

  1. 瀏覽至 [補救] 頁面上的 [補救工作] 索引標籤。 選取補救工作,以檢視所使用篩選的詳細數據、目前狀態,以及要補救的資源清單。

  2. 在 [補救工作詳細資料] 頁面中,以滑鼠右鍵按一下資源,以檢視補救工作的部署或資源。 在資料列結尾選取 [相關事件],以查看錯誤訊息等詳細資料。

    [補救工作] 索引標籤上資源操作功能表的螢幕快照。

透過補救工作部署的資源會新增至原則指派詳細資料頁面上的 [已部署資源] 索引標籤中。

下一步