共用方式為


在 Azure Virtual Network Manager 中使用 Azure 原則來設定網路群組

在本文中,您會了解如何在 Azure Virtual Network Manager 中使用 Azure 原則來定義動態網路群組成員資格。 動態網路群組可讓您在組織中建立可擴充並動態調整的虛擬網路環境。

Azure 原則概觀

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

注意

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

網路群組原則定義

建立及實作 Azure 原則中的原則始於建立原則定義資源。 每個原則定義都有強制執行的條件,以及條件符合時所採取的已定義效果。

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

"mode": "Microsoft.Network.Data",
"policyRule": {
      "if": {
        "allOf": [
          {
            "field": "Name",
            "contains": "-gen"
          }
        ]
      },
      "then": {
        "effect": "addToNetworkGroup",
        "details": {
          "networkGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup2/providers/Microsoft.Network/networkManagers/myAVNM/networkGroups/myNG"
        }
      }
}

重要

定義原則時,networkGroupId 必須是目標網路群組的完整資源識別碼,如範例定義中所示。 其不支援原則定義中的參數化。 若要將網路群組參數化,即可利用 Azure Resource Manager 範本來建立原則定義和指派。

Azure 原則與 Azure Virtual Network Manager 搭配使用時,原則會將 Microsoft.Network.Data資源提供者屬性設為目標。 因此,您需要在原則定義中將 policyType 指定為 Custom。 當您在 Virtual Network Manager 中建立原則以動態新增成員時,這會在建立原則時自動予以套用。 您只有在透過 Azure 原則或 Virtual Network Manager 儀表板外部的其他工具來建立新的原則定義時,才需要選擇 custom

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


"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
      }
}

深入了解原則定義結構

建立原則指派

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

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

所需的權限

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

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

若要設定所需權限,您可以將具有角色型存取控制的內建角色指派給使用者:

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

如需更細微的角色指派,您可以使用 Microsoft.Network/networkManagers/networkGroups/join/action 權限和 policy/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 原則中的原則定義。 刪除完成之後,將新定義與網路群組產生關聯時,無法重複使用或重新參考定義名稱。

下一步