在 Azure 虛擬網絡 Manager 中使用 Azure 原則 設定網路群組

在本文中,您將瞭解如何在 Azure 虛擬網絡 Manager 中使用 Azure 原則 來定義動態網路群組成員資格。 動態網路群組可讓您在組織中建立可調整且動態調整的虛擬網路環境。

重要

Azure 虛擬網絡 Manager 通常適用於 虛擬網絡 管理員、中樞和輪輻連線設定,以及具有安全性系統管理員規則的安全性設定。 網格聯機設定仍為公開預覽狀態。

此預覽版本是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

Azure 原則概觀

Azure 原則會將這些資源屬性與商務規則做比較,藉此評估 Azure 中的資源。 這些以 JSON 格式描述的商務規則稱為 原則定義。 一旦形成商務規則,原則定義就會指派給 Azure 支援的任何資源範圍,例如管理群組、訂用帳戶、資源群組或個別資源。 指派會套用至該指派 Resource Manager 範圍內的所有資源。 深入瞭解範圍使用範圍,Azure 原則

注意

Azure 原則 僅用於動態網路群組成員資格的定義。

網路組策略定義

在 Azure 原則 中建立和實作原則的開頭是建立原則定義資源。 每個原則定義都有強制執行的條件,以及符合條件時所發生的已定義效果。

使用網路群組時,您的原則定義會包含符合準則的虛擬網路條件運算式,並指定放置任何相符資源的目的地網路群組。 效果 addToNetworkGroup 是用來將資源放在目的地網路群組中。 以下是具有 addToNetworkGroup 效果的原則規則定義範例。 針對所有自定義原則,mode屬性會設定為Microsoft.Network.Data以網路群組資源提供者為目標,而且需要為 Azure 虛擬網絡 Manager 建立原則定義。

"mode": "Microsoft.Network.Data",
"policyRule": {
      "if": {
        "allOf": [
          {
            "field": "Name",
            "contains": "-gen"
          }
        ]
      },
      "then": {
        "effect": "addToNetworkGroup",
        "details": {
          "networkGroupId": "/subscriptions/12345678-abcd-123a-1234-1234abcd7890/resourceGroups/myResourceGroup2/providers/Microsoft.Network/networkManagers/myAVNM/networkGroups/myNG"
        }
      }
}

重要

定義原則時, networkGroupId 必須是目標網路群組的完整資源標識符,如範例定義所示。 它不支持原則定義中的參數化。 如果您需要將網路群組參數化,您可以使用 Azure Resource Manager 範本來建立原則定義和指派。

當 Azure 原則 與 Azure 虛擬網絡 Manager 搭配使用時,原則會以 的資源提供者屬性Microsoft.Network.Data為目標。 因此,您必須在原則定義中指定 的 policyTypeCustom。 當您建立原則以動態新增 虛擬網絡 管理員中的成員時,此原則會在建立原則時自動套用。 您只需要在透過 虛擬網絡 Manager 儀錶板外部 Azure 原則 或其他工具建立新的原則定義,才需要選擇custom

以下是將 屬性設定為 Custom的原則定義policyType範例。


"properties": {
      "displayName": "myProdAVNM",
      "policyType": "Custom",
      "mode": "Microsoft.Network.Data",
      "metadata": {
        "category": "Azure Virtual Network Manager",
        "createdBy": "-----------------------------",
        "createdOn": "2023-04-10T15:35:35.9308987Z",
        "updatedBy": null,
        "updatedOn": null
      }
}

深入了解 原則定義結構

建立原則指派

與 虛擬網絡 管理員設定類似,當您建立原則定義時,不會立即生效。 若要開始套用,您必須建立原則指派,以指派定義以在指定範圍進行評估。 目前,範圍中的所有資源都會根據定義進行評估,這可讓您在多個位置指派的單一可重複使用定義,以取得更細微的群組成員資格控制。 深入瞭解 Azure 原則 的指派結構

您可以使用 API/PS/CLI 或 Azure 原則 入口網站來建立原則定義和指派。

所需的權限

若要搭配 Azure 原則 使用網路群組,使用者需要下列許可權:

  • Microsoft.Authorization/policyassignments/Write 在您要指定的範圍中需要與 Microsoft.Authorization/policydefinitions/Write
  • Microsoft.Network/networkManagers/networkGroups/join/action在 [新增至網络群組] 區段中所參考的目標網路群組,需要採取動作。 此許可權允許從目標網路群組新增和移除物件。
  • 使用設定定義同時指派多個原則時,在指派時,所有指派的定義都需要並行 Microsoft.Network/networkManagers/networkGroups/join/action 許可權。

若要設定所需的許可權,可以使用角色型訪問控制來指派內建角色

  • 目標網路群組的網路參與者 角色。
  • 目標範圍層級的資源原則參與者 角色。

如需更細微的角色指派,您可以使用許可權和許可權來建立自定義角色Microsoft.Network/networkManagers/networkGroups/join/actionpolicy/write

重要

若要修改 AVNM 動態群組,您只能透過 Azure RBAC 角色指派來獲得存取權。 不支持傳統管理員/舊版授權;這表示,如果您的帳戶只獲派共同管理員訂用帳戶角色,您就沒有 AVNM 動態群組上的權限。

除了必要的許可權之外,您的訂用帳戶和管理群組也必須向下列資源提供者註冊:

  • Microsoft.Network 需要建立虛擬網路。
  • Microsoft.PolicyInsights必須使用 Azure 原則。

若要設定註冊所需的提供者,請在 Azure PowerShell 中使用 Register-AzResourceProvider ,或在 Azure CLI 中使用 az provider register

實用秘訣

類型篩選

設定原則定義時,建議您包含類型條件,將其範圍設定為虛擬網路。 此條件可讓原則篩選掉非虛擬網路作業,並改善原則資源的效率。

區域切割

原則資源是全域的,這表示不論區域為何,任何變更都會對指派範圍下的所有資源生效。 如果區域切割和漸進式推出是您關心的問題,建議您包含條件 where location in [] 。 然後,您可以以累加方式展開位置清單,以逐漸推出效果。

工作分派範圍

如果您遵循使用 Azure 管理群組的管理群組最佳做法,您可能已經將資源組織在階層結構中。 使用指派,您可以將相同的定義指派給階層內的多個不同範圍,讓您能夠更精細地控制哪些資源符合您的網路群組資格。

刪除與網路群組相關聯的 Azure 原則 定義

您可以是不再需要 Azure 原則 定義的實例。 實例包括刪除與原則相關聯的網路群組,或您不再需要的未使用原則時。 若要刪除原則,您必須刪除原則關聯對象,然後在 Azure 原則 中刪除原則定義。 刪除完成後,將新定義與網路群組產生關聯時,就無法重複使用或重新參考定義名稱。

下一步