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

配置专用链接

若要配置 Azure 专用链接实例,你需要执行以下操作:

  • 使用资源创建 Azure Monitor 专用链接范围 (AMPLS)。
  • 在网络上创建专用终结点,并将其连接到范围。
  • 在 Azure Monitor 资源上配置所需的访问权限。

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

在本部分,我们将回顾通过 Azure 门户设置专用链接的分步过程。 若要使用命令行或 ARM 模板创建和管理专用链接,请参阅使用 API 和命令行

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

    Screenshot showing finding Azure Monitor Private Link Scope.

  2. 选择“创建”。

  3. 选择一个“订阅”和“资源组” 。

  4. 为 AMPLS 指定名称。 使用有意义且清晰的名称,如 AppServerProdTelem

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

    Screenshot that shows creating an Azure Monitor Private Link Scope.

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

连接 Azure Monitor 资源

将 Azure Monitor 资源(例如 Log Analytics 工作区、Application Insights 组件和数据收集终结点)连接到 Azure Monitor 专用链接范围 (AMPLS)。

  1. 在 AMPLS 中,选择左侧菜单中的“Azure Monitor 资源”。 选择 添加

  2. 添加工作区或组件。 选择“添加”将打开一个对话框,你可以从中选择 Azure Monitor 资源。 可以浏览订阅和资源组。 你还可以输入其名称以筛选出它们。 选择工作区或组件,然后选择“应用”,让它们添加到范围中。

    Screenshot that shows selecting a scope.

注意

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

连接到专用终结点

你现已将资源连接到 AMPLS,接下来可创建一个专用终结点来连接我们的网络。 可在 Azure 门户专用链接中心或 AMPLS 内执行此任务,如下例所示。

  1. 在范围资源中,从左侧资源菜单中选择“专用终结点连接”。 选择“专用终结点”,以启动终结点创建过程。 你还可批准在专用链接中心启动的连接,方式是将其选择并选择“批准”。

    Screenshot that shows Private Endpoint connections.

  2. 在“基本信息”选项卡上,选择订阅和资源组

  3. 输入终结点的名称和网络接口名

  4. 选择专用终结点应该位于的区域。 该区域必须是你要连接到的虚拟网络所在的区域。

  5. 在完成时选择“下一步:资源”。

    A screenshot showing the create private endpoint basics tab.

  6. 在“资源”选项卡上,选择包含 Azure Monitor 专用链接范围资源的订阅。

  7. 对于“资源类型”,选择 Microsoft.insights/privateLinkScopes

  8. 从“资源”下拉列表中,选择你之前创建的专用链接范围。

  9. 选择“下一步: 虚拟网络”。

    Screenshot that shows the Create a private endpoint page in the Azure portal with the Resource tab selected.

  10. 在“虚拟网络”选项卡上,选择要连接到 Azure Monitor 资源的虚拟网络和子网。

  11. 对于“专用终结点的网络策略”,如果要将网络安全组或路由表应用到包含专用终结点的子网,请选择“编辑”。

    在“编辑子网网络策略”中,选中“网络安全组”和“路由表”旁边的复选框,然后选择“保存”。 有关详细信息,请参阅管理专用终结点的网络策略

  12. 对于“专用 IP 配置”,默认情况下会选中“动态分配 IP 地址”。 如果要分配静态 IP 地址,请选择“静态分配 IP 地址”。 然后输入名称和专用 IP。
    (可选)可以选择或创建一个应用程序安全组。 可以使用应用程序安全组对虚拟机进行分组,并根据这些组定义网络安全策略。

  13. 选择“下一步: DNS”。

    Screenshot that shows the Create a private endpoint page in the Azure portal with the Virtual Network tab selected.

  14. 在“DNS”选项卡上,针对“与专用 DNS 区域集成”选择“是”,让它自动创建一个新的专用 DNS 区域。 实际 DNS 区域可能与以下屏幕截图中显示的区域不同。

    注意

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

  15. 依次选择“下一步: 标记”和“下一步: 查看 + 创建”。

    Screenshot that shows the Create a private endpoint page in the Azure portal with the DNS tab selected.

  16. 在“查看 + 创建”上,验证通过后选择“创建”。

你现在创建了一个连接到此 AMPLS 的新专用终结点。

配置对资源的访问

到目前为止,你已了解网络的配置。 但还应考虑如何配置对监视资源(如 Log Analytics 工作区、Application Insights 组件和数据收集终结点)的网络访问。

转到 Azure 门户。 在资源的菜单中,在左侧找到“网络隔离”。 此页面控制可以通过专用链接访问资源的网络,以及其他网络是否可以访问该资源。

Screenshot that shows Network Isolation.

可在此处查看并配置资源与 AMPLS 的连接。 连接到 AMPLS 后,便可以使连接到每个 AMPLS 的虚拟网络的流量访问资源。 这种连接效果与我们在连接 Azure Monitor 资源一节中所做的从范围连接它的效果一样。

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

此页面底部的设置控制公用网络的访问权限,即未连接到所列范围的网络。

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

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

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

使用 API 和命令行

可使用 ARM 模板、REST 和命令行接口将前面描述的过程自动化。

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

创建具有开放访问模式的 AMPLS:CLI 示例

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

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

创建具有混合访问模式的 AMPLS:PowerShell 示例

以下 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

# select subscription
Select-AzSubscription -SubscriptionId $scopeSubscriptionId

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

创建 AMPLS:ARM 模板

以下 ARM 模板将创建:

  • 名为 "my-scope" 的 AMPLS,其查询和引入访问模式设置为 Open
  • 名为 "my-workspace" 的 Log Analytics 工作区。
  • 并将范围限定资源添加到名为 "my-workspace-connection""my-scope" AMPLS 中。

注意

确保使用新的 API 版本(2021-07-01-preview 或更高版本)创建 AMPLS 对象(类型 microsoft.insights/privatelinkscopes 如下)。 过去记录的 ARM 模板使用旧 API 版本,这会导致使用 QueryAccessMode="Open"IngestionAccessMode="PrivateOnly" 设置 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": "global",
            "properties": {
                "accessModeSettings":{
                    "queryAccessMode":"Open",
                    "ingestionAccessMode":"Open"
                }
            }
        },
        {
            "type": "microsoft.operationalinsights/workspaces",
            "apiVersion": "2020-10-01",
            "name": "[parameters('workspace_name')]",
            "location": "westeurope",
            "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 访问模式:PowerShell 示例

若要在 AMPLS 上设置访问模式标志,可以使用以下 PowerShell 脚本。 以下脚本将标志设置为 Open。 若要使用“仅限专用”模式,请使用值 "PrivateOnly"

AMPLS 访问模式更新大约需要 10 分钟才能生效。

# scope details
$scopeSubscriptionId = "ab1800bd-ceac-48cd-...-..."
$scopeResourceGroup = "my-resource-group-name"
$scopeName = "my-scope"

# login
Connect-AzAccount

# select subscription
Select-AzSubscription -SubscriptionId $scopeSubscriptionId

# 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

设置资源访问标志

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

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

查看终结点的 DNS 设置

你创建的专用终结点现在应配置了五个 DNS 区域:

  • privatelink.monitor.azure.com
  • privatelink.oms.opinsights.azure.com
  • privatelink.ods.opinsights.azure.com
  • privatelink.agentsvc.azure.automation.net
  • privatelink.blob.core.windows.net

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

重要

从 2021 年 12 月 1 日开始创建的 AMPLS 和专用终结点资源使用名为终结点压缩的机制。 现在,特定于资源的终结点(如 OMS、ODS 和 AgentSVC 终结点)将在每个区域以及每个 DNS 区域共享相同的 IP 地址。 此机制意味着从虚拟网络 IP 池中获取的 IP 更少,并且可以将更多资源添加到 AMPLS。

此区域涵盖 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 资源的一部分。

Screenshot that shows Private DNS zone monitor-azure-com.

Log Analytics 终结点

重要

从 2021 年 12 月 1 日开始创建的 AMPLS 和专用终结点使用名为终结点压缩的机制。 现在,每个特定于资源的终结点(如 OMS、ODS 和 AgentSVC)将对该区域中所有工作区的每个区域以及每个 DNS 区域使用单个 IP 地址。 此机制意味着从虚拟网络 IP 池中获取的 IP 更少,并且可以将更多资源添加到 AMPLS。

Log Analytics 使用 4 个 DNS 区域:

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

以下屏幕截图显示了为 AMPLS 映射的终结点,其中两个工作区位于美国东部,一个工作区位于西欧。 请注意,美国东部工作区共享 IP 地址。 西欧工作区终结点已映射到不同的 IP 地址。 Blob 终结点未在此图像中显示,但它已配置。

Screenshot that shows private link compressed endpoints.

确保专用链接处于良好运行状态:

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

    注意

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

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

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

后续步骤