Compartir a través de

为 Azure Monitor 配置专用链接

本文提供使用 Azure 门户创建和配置 Azure Monitor 专用链接范围 (AMPLS) 的分步详细信息。 本文中还包括使用 CLI、PowerShell 和 ARM 模板处理 AMPLS 的备用方法。

配置 Azure 专用链接实例需要执行以下步骤。 下面的部分中将详细介绍各个步骤。

  • 创建 Azure Monitor 专用链接范围 (AMPLS)。
  • 将资源连接到 AMPLS。
  • 将 AMPLS 连接到专用终结点。
  • 配置对 AMPLS 资源的访问权限。

本文回顾了如何通过 Azure 门户完成配置。 它提供了一个示例 Azure 资源管理器模板(ARM 模板)来自动执行该过程。

  1. 转到 Azure 门户中的“创建资源”,并搜索“Azure Monitor 专用链接范围” 。

    显示查找 Azure Monitor 专用链接范围的屏幕截图。

  2. 选择创建

  3. 选择订阅和资源组,并为 AMPLS 提供有意义的名称,例如 AppServerProdTelem。

  4. 选择“查看 + 创建”。

    显示创建 Azure Monitor 专用链接范围的屏幕截图。

  5. 让验证通过,然后选择“创建”。

将资源连接到 AMPLS

  1. 从 AMPLS 菜单中,选择“Azure Monitor 资源”,然后选择“添加”

  2. 选择组件,然后选择“应用”,将其添加到范围中。 只有 Azure Monitor 资源(包括 Log Analytics 工作区、Application Insights 组件和数据收集终结点 (DCE))可用。

    显示选择范围的屏幕截图。

注意

删除 Azure Monitor 资源需要首先取消它们与任何 AMPLS 对象之间的连接。 不能删除连接到 AMPLS 的资源。

将 AMPLS 连接到专用终结点

资源连接到 AMPLS 后,可以创建一个专用终结点来连接网络。

  1. 在 AMPLS 菜单,依次选择“专用终结点连接”和“专用终结点”。 你还可批准在专用链接中心启动的连接,方式是将其选中并选择“批准”。

    显示专用终结点连接的屏幕截图。

  2. “基本”选项卡

    1. 选择“订阅”和“资源组”,然后输入终结点“名称”以及“网络接口名称”。
    2. 选择应在其中创建专用终结点的“区域”。 该区域必须是你要连接到的虚拟网络所在的区域。

    显示“创建专用终结点”中的“基本信息”选项卡的屏幕截图。

  3. “资源”选项卡

    1. 选择包含你的 Azure Monitor 专用链接范围资源的订阅。
    2. 对于“资源类型”,选择 Microsoft.insights/privateLinkScopes
    3. 从“资源”下拉列表中,选择之前创建的专用链接范围。

    显示 Azure 门户中“创建专用终结点”页的屏幕截图,其中选择了“资源”选项卡。

  4. “虚拟网络”选项卡

    1. 选择要连接到 Azure Monitor 资源的虚拟网络和子网。
    2. 对于“专用终结点的网络策略”,如果要将网络安全组或路由表应用到包含专用终结点的子网,请选择“编辑”。 若要了解详细信息,请参阅管理专用终结点的网络策略
    3. 对于“专用 IP 配置”,默认情况下会选中“动态分配 IP 地址”。 如果要分配静态 IP 地址,请选择“静态分配 IP 地址”,然后输入名称和专用 IP。
    4. (可选)选择或创建一个应用程序安全组。 可以使用应用程序安全组对虚拟机进行分组,并根据这些组定义网络安全策略。

    显示 Azure 门户中“创建专用终结点”页的屏幕截图,其中选择了“虚拟网络”选项卡。

  5. “DNS”选项卡

    1. 针对“与专用 DNS 区域集成”,选择“是”,这样会自动新建一个专用 DNS 区域。 实际 DNS 区域可能与以下屏幕截图中显示的区域不同。

    注意

    如果选择“”并且希望手动管理 DNS 记录,请先完成专用链接设置。 包括此专用终结点和 AMPLS 配置,然后根据 Azure 专用终结点 DNS 配置中的说明配置 DNS。 切勿在准备专用链接设置时创建空记录。 你创建的 DNS 记录会替代现有设置,并且会影响与 Azure Monitor 的连接。

    显示 Azure 门户中“创建专用终结点”页的屏幕截图,其中选择了“DNS”选项卡。

  6. “查看 + 创建”选项卡

    1. 通过验证后,选择“创建”

配置对 AMPLS 资源的访问权限

在 AMPLS 的菜单中,选择“网络隔离”,以控制可以通过专用链接访问资源的网络,以及其他网络是否可以访问该资源。

显示网络隔离的屏幕截图。

已连接的 AMPLS

此屏幕允许查看并配置资源与 AMPLS 的连接。 连接到 AMPLS 后,便可以使连接的虚拟网络的流量访问资源。 这种连接效果与连接 Azure Monitor 资源中所述的从范围连接它的效果一样。

若要添加新连接,请选择“添加”,然后选择 AMPLS。 资源可以连接到五个 AMPLS 对象,如 AMPLS 限制中所述。

虚拟网络访问配置

这些设置控制来自未连接到列出的范围的公用网络的访问。 这包括对日志、指标和实时指标流的访问权限。 它还包括基于此数据建立的体验,例如工作簿、仪表板、基于查询 API 的客户端体验以及 Azure 门户中的见解。 对于 Azure 门户外部运行的体验,其查询 Log Analytics 数据也必须在专用链接的虚拟网络中运行。

  • 如果将“接受从未通过专用链接范围连接的公用网络引入数据”设置为“”,则连接范围之外的客户端(如计算机 或 SDK)无法将数据上传到该资源或向该资源发送日志。
  • 如果将“接受未通过专用链接范围连接的公用网络的查询”设置为“”,则连接范围之外的客户端(如计算机或 SDK)将无法查询该资源中的数据。

使用 CLI 处理 AMPLS

创建具有开放访问模式的 AMPLS

以下 CLI 命令将创建名为 "my-scope" 的新 AMPLS 资源,其查询和引入访问模式均设置为 Open

az resource create -g "my-resource-group" --name "my-scope" -l chinanorth2 --api-version "2021-07-01-preview" --resource-type Microsoft.Insights/privateLinkScopes --properties "{\"accessModeSettings\":{\"queryAccessMode\":\"Open\", \"ingestionAccessMode\":\"Open\"}}"

设置资源访问标志

若要管理工作区或组件访问标志,请在 az monitor log-analytics 工作区az monitor app-insights 组件上使用 [--ingestion-access {Disabled, Enabled}][--query-access {Disabled, Enabled}] 标志。

使用 PowerShell 处理 AMPLS

创建 AMPLS

以下 PowerShell 脚本将创建名为 "my-scope" 的新 AMPLS 资源,其查询访问模式设置为 Open,而引入访问模式则设置为 PrivateOnly。 此设置意味着它将只允许引入 AMPLS 中的资源。

# scope details
$scopeSubscriptionId = "ab1800bd-ceac-48cd-...-..."
$scopeResourceGroup = "my-resource-group"
$scopeName = "my-scope"
$scopeProperties = @{
    accessModeSettings = @{
        queryAccessMode     = "Open"; 
        ingestionAccessMode = "PrivateOnly"
    } 
}

# login
Connect-AzAccount -Environment AzureChinaCloud

# select subscription
Select-AzSubscription -SubscriptionId $scopeSubscriptionId

# create private link scope resource
$scope = New-AzResource -Location "chinanorth2" -Properties $scopeProperties -ResourceName $scopeName -ResourceType "Microsoft.Insights/privateLinkScopes" -ResourceGroupName $scopeResourceGroup -ApiVersion "2021-07-01-preview" -Force

设置 AMPLS 访问模式

使用以下 PowerShell 代码在创建 AMPLS 后设置访问模式标志。

# get private link scope resource
$scope = Get-AzResource -ResourceType Microsoft.Insights/privateLinkScopes -ResourceGroupName $scopeResourceGroup -ResourceName $scopeName -ApiVersion "2021-07-01-preview"

# set access mode settings
$scope.Properties.AccessModeSettings.QueryAccessMode = "Open";
$scope.Properties.AccessModeSettings.IngestionAccessMode = "Open";
$scope | Set-AzResource -Force

ARM 模板

创建 AMPLS

以下 ARM 模板执行以下操作:

  • 名为 "my-scope" 的 AMPLS,其查询和引入访问模式设置为 Open
  • 名为 "my-workspace" 的 Log Analytics 工作区。
  • 将范围限定资源添加到名为 "my-workspace-connection""my-scope" AMPLS 中。
{
    "$schema": https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#,
    "contentVersion": "1.0.0.0",
    "parameters": {
        "private_link_scope_name": {
            "defaultValue": "my-scope",
            "type": "String"
        },
        "workspace_name": {
            "defaultValue": "my-workspace",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "microsoft.insights/privatelinkscopes",
            "apiVersion": "2021-07-01-preview",
            "name": "[parameters('private_link_scope_name')]",
            "location": "chinanorth2",
            "properties": {
                "accessModeSettings":{
                    "queryAccessMode":"Open",
                    "ingestionAccessMode":"Open"
                }
            }
        },
        {
            "type": "microsoft.operationalinsights/workspaces",
            "apiVersion": "2020-10-01",
            "name": "[parameters('workspace_name')]",
            "location": "chinanorth2",
            "properties": {
                "sku": {
                    "name": "pergb2018"
                },
                "publicNetworkAccessForIngestion": "Enabled",
                "publicNetworkAccessForQuery": "Enabled"
            }
        },
        {
            "type": "microsoft.insights/privatelinkscopes/scopedresources",
            "apiVersion": "2019-10-17-preview",
            "name": "[concat(parameters('private_link_scope_name'), '/', concat(parameters('workspace_name'), '-connection'))]",
            "dependsOn": [
                "[resourceId('microsoft.insights/privatelinkscopes', parameters('private_link_scope_name'))]",
                "[resourceId('microsoft.operationalinsights/workspaces', parameters('workspace_name'))]"
            ],
            "properties": {
                "linkedResourceId": "[resourceId('microsoft.operationalinsights/workspaces', parameters('workspace_name'))]"
            }
        }
    ]
}

查看并验证 AMPLS 配置

按照本节中的步骤查看并验证专用链接设置。

查看终结点的 DNS 设置

本文中创建的专用终结点应配置以下五个 DNS 区域:

  • privatelink.monitor.azure.cn
  • privatelink.oms.opinsights.azure.cn
  • privatelink.ods.opinsights.azure.cn
  • privatelink.agentsvc.azure-automation.net
  • privatelink.blob.core.chinacloudapi.cn

其中每个区域将特定 Azure Monitor 终结点映射到虚拟网络 IP 池中的专用 IP。 以下图像中显示的 IP 地址只是示例。 你的配置应显示自己网络中的专用 IP。

privatelink-monitor-azure-cn

此区域涵盖 Azure Monitor 使用的全局终结点,这意味着终结点为将全局/区域请求而不是特定于资源的请求提供服务。 此区域应具有为以下终结点映射的终结点:

  • in.ai:Application Insights 引入终结点(全局和区域条目)。
  • api:Application Insights 和 Log Analytics API 终结点。
  • live:Application Insights 实时指标终结点。
  • profiler:Application Insights 探查器终结点。
  • snapshot:Application Insights 快照终结点。
  • diagservices-query:Application Insights Profiler 和 Snapshot Debugger(在 Azure 门户中访问探查器/调试器结果时使用)。

此区域还介绍了以下 DCE 特定于资源的终结点:

  • <unique-dce-identifier>.<regionname>.handler.control:专用配置终结点,它是 DCE 资源的一部分。

  • <unique-dce-identifier>.<regionname>.ingest:专用引入终结点,它是 DCE 资源的一部分。

    显示专用 DNS 区域 monitor-azure-com 的屏幕截图。

Log Analytics 终结点

Log Analytics 使用以下 4 个 DNS 区域:

  • privatelink-oms-opinsights-azure-cn:涵盖特定工作区到 OMS 终结点的映射。 应该会看到链接到与此专用终结点连接的 AMPLS 的每个工作区的条目。
  • privatelink-ods-opinsights-azure-cn:涵盖特定工作区到 ODS 终结点的映射,这些终结点是 Log Analytics 的引入终结点。 应该会看到链接到与此专用终结点连接的 AMPLS 的每个工作区的条目。
  • privatelink-agentsvc-azure-automation-cn*:涵盖特定工作区到代理服务自动化终结点的映射。 应该会看到链接到与此专用终结点连接的 AMPLS 的每个工作区的条目。
  • privatelink-blob-core-azure-cn:配置与全局代理的解决方案包存储帐户的连接。 通过它,代理可以下载新的或更新的解决方案包(也称为管理包)。 无论使用多少个工作区,都只需一个条目来处理所有 Log Analytics 代理。 此条目仅添加到在 2021 年 4 月 19 日或之后(或从 2021 年 6 月开始在 Azure 主权云上)创建的专用链接设置。

验证通过 AMPLS 的通信

  • 若要验证你的请求现在是否是通过专用终结点发送的,可使用浏览器或网络跟踪工具来查看它们。 例如,尝试查询工作区或应用程序时,请确保将请求发送到映射到 API 终结点的专用 IP。 在本示例中,它为 172.17.0.9

    注意

    某些浏览器可能会使用其他 DNS 设置。 有关详细信息,请参阅浏览器 DNS 设置。 请确保应用 DNS 设置。

  • 若要确保工作区或组件没有收到来自(未通过 AMPLS 连接的)公用网络的请求,请将资源的公共引入和查询标志设置为“”,如配置对资源的访问中所述。

  • 在受保护网络的客户端上,使用 nslookup 到 DNS 区域中列出的任何终结点。 它应由 DNS 服务器解析为映射的专用 IP,而不是默认使用的公共 IP。

在本地测试

若要在本地测试专用链接而不影响网络上的其他客户端,请确保在创建专用终结点时不要更新 DNS。 相反,请编辑计算机上的主机文件,以便它将请求发送到专用链接终结点:

  • 设置专用链接,但在连接到专用终结点时,选择不与 DNS 自动集成。
  • 在计算机的主机文件上配置相关终结点。

其他配置

网络子网大小

支持的最小 IPv4 子网为 /27(使用 CIDR 子网定义)。 尽管 Azure 虚拟网络可以小到 /29,但 Azure 会保留 5 个 IP 地址。 Azure Monitor 专用链接设置至少需要超过 11 个 IP 地址,即使连接到单个工作区也是如此。 查看终结点的 DNS 设置,获取 Azure Monitor 专用链接终结点的列表。

Azure 门户

要使用 Application Insights、Log Analytics 和 DCE 的 Azure Monitor 门户体验,需要使 Azure 门户和 Azure Monitor 扩展能在专用网络上进行访问。 在网络安全组中添加 AzureActiveDirectory、AzureResourceManager、AzureFrontDoor.FirstParty 和 AzureFrontdoor.Frontend 服务标记

以编程方式访问

要在专用网络上将 REST API、Azure CLI 或 PowerShell 与 Azure Monitor 结合使用,请在防火墙中添加 AzureActiveDirectory 和 AzureResourceManager 服务标记

浏览器 DNS 设置

如果通过专用链接连接到 Azure Monitor 资源,则通往这些资源的流量必须经过在网络上配置的专用终结点。 若要启用专用终结点,请根据连接到专用终结点中的所述内容更新 DNS 设置。 一些浏览器使用自己的 DNS 设置,而不是你设置的 DNS 设置。 浏览器可能会尝试连接到 Azure Monitor 公用终结点,并完全绕过专用链接。 验证你的浏览器设置不会替代或缓存旧的 DNS 设置。

查询限制:externaldata 运算符

  • 专用链接不支持 externaldata 运算符,因为它从存储帐户读取数据,但不保证以专用方式访问存储。

后续步骤

若要创建和管理专用链接范围,请使用 REST APIAzure CLI (az monitor private-link-scope)