使用 Azure Policy 在 Azure 虚拟网络 Manager 中定义动态网络组成员身份 您所在的位置:网站首页 对等网络的定义 使用 Azure Policy 在 Azure 虚拟网络 Manager 中定义动态网络组成员身份

使用 Azure Policy 在 Azure 虚拟网络 Manager 中定义动态网络组成员身份

2023-05-17 22:30| 来源: 网络整理| 查看: 265

你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。

使用 Azure Policy 在 Azure 虚拟网络 Manager 中定义动态网络组成员身份 文章 05/12/2023

本文介绍如何使用Azure Policy条件语句创建具有动态成员身份的网络组。 通过从下拉菜单选择参数和运算符,使用基本编辑器创建这些条件语句。 你还将了解如何使用高级编辑器更新现有网络组的条件语句。

Azure Policy 是一项支持大规模强制实施按资源治理的服务。 它可用于指定定义组成员身份的条件表达式,而不是虚拟网络的显式列表。 此条件继续动态为网络组供电,允许虚拟网络在满足条件更改时自动加入和离开组,无需网络管理器操作。

重要

Azure Virtual Network Manager 现已正式发布,可用于 Virtual Network Manager 和中心辐射型连接配置。

网格连接配置和安全管理规则仍处于公共预览状态。 此预览版在提供时没有附带服务级别协议,不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。

参数和运算符

使用条件语句选择具有动态成员资格的虚拟网络。 对于需要进一步缩小所选虚拟网络范围的情况,可以使用 AND 和 OR 等逻辑运算符来定义多个条件语句 。

支持的参数列表:

Parameters 高级编辑器字段 名称 Name ID Id 标记 tag['tagName'] 订阅名称 [subscription().Name] 订阅 ID [subscription().Id] 订阅标记 [subscription().tags['tagName']] 资源组名称 [resourceGroup().Name] 资源组 ID [resourceGroup().Id] 资源组标记 [resourceGroup().tags['tagName']]

支持的运算符列表:

运算符 高级编辑器 Contains "contains": 不包含 "notcontains": 位于 "in": 不位于 "notin": 等于 "equals": 不等于 "notequals": Contains any of "contains": Contains all of "contains": 不包含任何 "notcontains": Exists "exists": true 不存在 "exists": false

注意

Exists 和 Does not exist 运算符只能与 Tags 参数一起使用 。

基本编辑器

假设订阅中具有以下虚拟网络。 每个虚拟网络都有一个名为 environment 的关联标记,相应的标记值为 Production 或 Test。

myVNet01-EastUS - Production myVNet01-WestUS - Production myVNet02-WestUS - Test myVNet03-WestUS - Test

你只想选择名称中包含 VNet-A 的虚拟网络。 若要开始使用基本编辑器创建条件语句,需要创建新的网络组。

转到 Azure Virtual Network Manager 实例,在“设置”下选择“网络组”。 然后选择“+ 创建”以创建新的网络组。 为网络组输入“名称”和可选的“说明”,然后选择“添加”。 从列表中选择网络组,然后选择“创建 Azure 策略”。 输入“策略名称”并保留“范围”选择(除非需要更改)。 在“条件”下,从“参数”下的下拉列表中选择“Name”,然后从“运算符”下的下拉列表中选择“Contains”。 在“条件”下输入“WestUS”,然后选择“保存”。 几分钟后,选择网络组,然后在“设置”下选择“组成员”。 列表中应只显示 myVNet01-WestUS、myVNet02-WestUS 和 myVNet03-WestUS。

重要

“基本编辑器”仅在创建 Azure 策略期间可用。 创建策略后,将使用 Virtual Network Manager 的“策略”部分中的 JSON 或通过 Azure Policy 完成所有编辑。

使用基本编辑器时,条件选项通过门户体验受到限制。 对于复杂情况(例如基于 客户定义的标记为 VNet 创建网络组),必须使用高级编辑器。 详细了解 Azure Policy 定义结构。

高级编辑器

高级编辑器可用于在创建网络组或更新现有网络组期间选择虚拟网络。 基于 JSON 的高级编辑器对于有经验的用户创建和更新复杂的 Azure Policy 条件语句很有用。

使用高级编辑器创建新策略

转到 Azure Virtual Network Manager 实例,在“设置”下选择“网络组”。 然后选择“+ 创建”以创建新的网络组。

为网络组输入“名称”和可选的“说明”,然后选择“添加”。

从列表中选择网络组,然后选择“创建 Azure 策略”。

输入“策略名称”并保留“范围”选择(除非需要更改)。

在“条件”下,选择“高级(JSON)编辑器”打开编辑器。

在文本框中输入以下 JSON 代码,然后选择“保存”:

{ "field": "Name", "contains": "myVNet01" }

几分钟后,选择网络组,然后在“设置”下选择“组成员”。 应该只会看到 myVNet01-WestUS 和 myVNet01-EastUS。

编辑现有策略

选择在上一部分创建的网络组。 然后选择“策略”选项卡。

选择在上一部分创建的策略。

可以在高级编辑器视图中看到网络组的条件语句,如下所示:

[ { "field": "Name", "contains": "myVNet01" } ]

若要为不包含 WestUS 的 Name 字段添加其他条件语句,请在高级编辑器中输入以下内容:

{ "allOf": [ { "field": "Name", "contains": "VNet01" }, { "field": "Name", "notcontains": "WestUS" } ] }

"allOf" 参数包含由 AND 逻辑运算符分隔的条件语句。

选择“保存”。

几分钟后,选择网络组,然后在“设置”下选择“组成员”。 应该只会看到 myVNet01-EastUS。

有关可在高级编辑器中使用的参数和运算符的完整列表,请参阅参数和运算符。

更多示例

下面是高级编辑器中条件语句的更多示例。

示例 1:仅 OR 运算符

此示例使用 OR逻辑运算符分隔两个条件语句。

基本编辑器:

高级运算符:

{ "anyOf": [ { "field": "Name", "contains": "myVNet01" }, { "field": "Name", "contains": "myVNet02" } ] }

"anyOf" 参数包含由 OR 逻辑运算符分隔的条件语句。

示例 2:同时使用 AND 和 OR 运算符

基本编辑器:

高级编辑器:

{ "allOf": [ { "anyOf": [ { "field": "Name", "contains": "myVNet01" }, { "field": "Name", "contains": "myVNet02" } ] }, { "field": "Name", "notcontains": "West" } ] }

代码中同时使用 "allOf" 和 "anyOf"。 由于 AND 运算符位于列表末尾,因此它处于包含具有 OR 运算符的两个条件语句的代码外部 。

示例 3:在高级编辑器中使用自定义标记值

此示例创建了一个条件语句,用于查找名称包含 myVNet 且 environment 标记等于 production 的虚拟网络。

高级编辑器:

{ "allOf": [ { "field": "Name", "contains": "myVNet" }, { "field": "tags['environment']", "equals": "production" } ] }

注意

条件应按资源类型 Microsoft.Network/virtualNetwork 进行筛选,以提高效率。 自动为通过门户指定的任何条件追加此条件。

后续步骤 了解网络组。 创建 Azure Virtual Network Manager 实例。 创建和管理策略以强制实施符合性


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有