设计你的 Azure 专用链接设置
设置你的 Azure 专用链接实例之前,请考虑你的网络拓扑和 DNS 路由拓扑。
如使用 Azure 专用链接将网络连接到 Azure Monitor 中所述,设置专用链接会影响到所有 Azure Monitor 资源的流量。 对 Application Insights 资源尤其如此。 它不仅影响连接到专用终结点的网络,还会影响共享同一 DNS 的所有其他网络。
最简单且最安全的方法:
- 使用单个专用终结点和单个 Azure Monitor 专用链接范围 (AMPLS) 创建单个专用链接连接。 如果网络已对等互连,请在共享(或中心)虚拟网络上创建专用链接连接。
- 将所有 Azure Monitor 资源(如 Application Insights 组件、Log Analytics 工作区和数据收集终结点)添加到该 AMPLS。
- 尽可能阻止网络出口流量。
如果无法将所有 Azure Monitor 资源添加到 AMPLS,则仍可对某些资源应用专用链接,如控制专用链接如何应用到网络中所述。 不建议使用此方法,因为它不会防止数据外泄。
按网络拓扑制定计划
在规划过程中考虑网络拓扑。
指导原则:通过使用单个 AMPLS 避免 DNS 替代
某些网络由多个虚拟网络或其他互连网络组成。 如果这些网络共享同一 DNS,则在其中任一网络中设置专用链接都会更新 DNS,并影响所有网络中的流量。
在下图中,虚拟网络 10.0.1.x 连接到 AMPLS1,它会创建将 Azure Monitor 终结点映射到范围 10.0.1.x 内的 IP 的 DNS 条目。 稍后,虚拟网络 10.0.2.x 连接到 AMPLS2,它会通过将相同的全局/区域终结点映射到范围 10.0.2.x 内的 IP 来覆盖相同的 DNS 条目。 由于这些虚拟网络未对等互连,因此第一个虚拟网络现在无法访问这些终结点。
若要避免此冲突,请为每个 DNS 仅创建一个 AMPLS 对象。
中心辐射型网络
中心辐射型网络应使用在中心(主)网络上设置的单个专用链接连接,而不是在每个分支虚拟网络上设置的连接。
注意
你可能倾向于为辐射虚拟网络创建单独的专用链接,例如,为了允许每个虚拟网络访问有限的监视资源组。 在这种情况下,可以为每个虚拟网络创建专用终结点和 AMPLS。 你还必须验证它们不共享相同的 DNS 区域,以避免 DNS 替代。
对等互连网络
网络对等互连用于除中心辐射型拓扑以外的各种拓扑。 此类网络可共享彼此的 IP 地址,并且很可能共享相同的 DNS。 在这种情况下,请在网络上创建可供其他网络访问的单个专用链接。 不要创建多个专用终结点和 AMPLS 对象,因为最终只会应用 DNS 中设置的最后一个终结点和 AMPLS 对象。
隔离网络
如果网络未对等互连,则必须分隔其 DNS 才能使用专用链接。 完成后,为每个网络创建一个单独的专用终结点,并创建一个单独的 AMPLS 对象。 AMPLS 对象可以链接到相同的工作区/组件,也可以链接到不同的工作区/组件。
在本地测试:编辑计算机的主机文件,而不是 DNS
若要在本地测试专用链接而不影响网络上的其他客户端,请确保在创建专用终结点时不要更新 DNS。 相反,请编辑计算机上的主机文件,以便它将请求发送到专用链接终结点:
- 设置专用链接,但在连接到专用终结点时,选择不与 DNS 自动集成(步骤 5b)。
- 在计算机的主机文件上配置相关终结点。 若要查看需要映射的 Azure Monitor 终结点,请参阅查看终结点的 DNS 设置。
不建议在生产环境中使用这种方法。
控制专用链接如何应用于你的网络
专用链接访问模式使你能够控制专用链接如何影响网络流量。 这些设置可应用于 AMPLS 对象(以影响所有连接的网络)或连接该对象的特定网络。
选择适当的访问模式对于确保连续、不间断的网络流量至关重要。 可以分别为引入和查询设置这些模式中的每一种:
- 仅专用 - 允许虚拟网络仅访问专用链接资源(AMPLS 中的资源)。 这是最安全的工作模式。 它通过阻止流量从 AMPLS 流出到 Azure Monitor 资源来防止数据外泄。
- 开放式 - 允许虚拟网络访问专用链接资源和不在 AMPLS 中的资源(如果它们接受来自公共网络的流量)。 开放访问模式不会防止数据外泄,但它仍然提供专用链接的其他优势。 到专用链接资源的流量通过专用终结点发送、验证并通过 Microsoft 主干网络发送。 开放式模式适用于混合工作模式(公开访问某些资源,通过专用链接访问其他资源),或适用于逐步加入的过程。 引入和查询的访问模式是分别设置的。 例如,可以为引入设置“仅专用”模式,为查询设置“开放式”模式。
选择访问模式时请谨慎。 无论订阅或租户如何,使用“仅专用”访问模式都将阻止共享同一 DNS 的所有网络中访问非 AMPLS 资源的流量。 Log Analytics 引入请求例外,对此有相关说明。 如果无法将所有 Azure Monitor 资源添加到 AMPLS,请首先添加选定资源,然后应用开放访问模式。 仅在将所有 Azure Monitor 资源添加到 AMPLS 后,再切换到“仅专用”模式,以获得最高的安全性。
有关配置详细信息和示例,请参阅使用 API 和命令行。
注意
Log Analytics 引入操作使用资源特定的终结点。 因此,它不遵循 AMPLS 访问模式。 若要确保 Log Analytics 引入请求无法访问 AMPLS 外部的工作区,请将网络防火墙设置为阻止流量发送到公共终结点,不管 AMPLS 访问模式如何。
设置特定网络的访问模式
对 AMPLS 资源设置的访问模式会影响所有网络,但你可以替代特定网络的这些设置。
在下图中,VNet1 使用“开放式”模式,VNet2 使用“仅专用”模式。 来自 VNet1 的请求可以通过专用链接到达工作区 1 和组件 2。 仅当组件 3 接受来自公用网络的流量时,请求才能到达组件 3。 VNet2 请求无法到达组件 3。
考虑 AMPLS 限制
AMPLS 对象具有以下限制:
- 一个虚拟网络只能连接到一个 AMPLS 对象。 这意味着,AMPLS 对象必须提供对虚拟网络应有权访问的所有 Azure Monitor 资源的访问权限。
- 一个 AMPLS 对象最多可以连接到 300 个 Log Analytics 工作区和 1,000 个 Application Insights 组件。
- 一个 Azure Monitor 资源最多可以连接到五个 AMPLS。
- 一个 AMPLS 对象最多可连接到 10 个专用终结点。
在下图中:
- 每个虚拟网络只能连接到一个 AMPLS 对象。
- AMPLS A 使用它可以连接到的可能的 300 个 Log Analytics 工作区中的 2 个以及可能的 1000 个 Application Insights 组件中的 1 个来连接到 2 个工作区和 1 个 Application Insight 组件。
- 工作区 2 使用 5 个可能的 AMPLS 连接中的 2 个连接到 AMPLS A 和 AMPLS B。
- AMPLS B 使用 10 个可能的专用终结点连接中的 2 个连接到 2 个虚拟网络(VNet2 和 VNet3)的专用终结点。
控制对资源的网络访问
Log Analytics 工作区或 Application Insights 组件可以设置为:
- 接受或阻止来自公共网络(未连接到资源 AMPLS 的网络)的引入。
- 接受或阻止来自公共网络(未连接到资源 AMPLS 的网络)的查询。
根据这一粒度,你可以按需设置每个工作区的访问权限。 例如,你只能通过专用链接连接的网络(即特定虚拟网络)接受引入,但仍可以选择接受来自所有网络(公用网络和专用网络)的查询。
阻止来自公用网络的查询意味着连接的 AMPLS 之外的客户端(如计算机、SDK)无法查询资源中的数据。 这些数据包括日志、指标和实时指标流。 阻止来自公共网络的查询会影响运行这些查询的所有体验,如工作簿、仪表板、Azure 门户中的见解以及从 Azure 门户外部运行的查询。
注意
在某些情况下,这些设置不适用。 可以在以下部分中找到详细信息。
可以将数据收集终结点设置为接受或阻止来自公用网络(未连接到资源 AMPLS 的网络)的访问。
有关配置详细信息,请参阅设置资源访问标志。
异常
注意以下例外情况。
诊断日志
通过诊断设置上传到工作区的日志和指标会通过安全的专用 Microsoft 通道,且不受这些设置控制。
Azure 资源管理器
如上文所述,访问限制适用于资源中的数据。 然而,配置更改(例如打开或关闭这些访问设置)由 Azure 资源管理器进行管理。 若要控制这些设置,请使用适当的角色、权限、网络控件和审核来限制对资源的访问。 有关详细信息,请参阅 Azure Monitor 角色、权限和安全性。
注意
通过资源管理器 API 发送的查询无法使用 Azure Monitor 专用链接。 仅当目标资源允许来自公共网络的查询时(通过“网络隔离”窗格或使用 CLI 设置),这些查询才能通过。
以下体验可通过资源管理器 API 运行查询:
- LogicApp 连接器
- 更新管理解决方案
- 更改跟踪解决方案
- VM Insights
- 容器见解
- Log Analytics “工作区摘要(已弃用)”窗格(显示了解决方案仪表板)
Application Insights 注意事项
- 需要将托管受监视工作负载的资源添加到专用链接中。 请参阅为 Azure Web 应用使用专用终结点查看示例。
- 非门户使用体验也必须在包含受监视工作负载的专用链接虚拟网络上运行。
- 为了支持对探查器和调试程序使用专用链接,需要提供自己的存储帐户。
注意
若要完全保护基于工作区的 Application Insights,需要锁定对 Application Insights 资源和基础 Log Analytics 工作区的访问。
Log Analytics 注意事项
请注意以下 Log Analytics 注意事项。
Log Analytics 解决方案包下载
Log Analytics 代理需要访问全局存储帐户才能下载解决方案包。 在 2021 年 4 月 19 日或之后(或从 2021 年 6 月开始在世纪互联运营的 Microsoft Azure 上)创建的专用链接设置可以通过专用链接访问代理的解决方案包存储。 可通过为 blob.core.chinacloudapi.cn
创建的 DNS 区域实现此功能。
如果你的专用链接设置是在 2021 年 4 月 19 日之前创建的,则无法通过专用链接访问解决方案包存储。 若要处理此情况,可使用下列任一方法:
重新创建 AMPLS 和与其连接的专用终结点。
通过将以下规则添加到防火墙允许列表,使代理可以通过其公共终结点访问存储帐户:
云环境 代理资源 端口 方向 Azure Public scadvisorcontent.blob.core.chinacloudapi.cn 443 出站 Azure Government usbn1oicore.blob.core.usgovcloudapi.net 443 出站 由世纪互联运营的 Microsoft Azure mceast2oicore.blob.core.chinacloudapi.cn 443 出站
通过专用链接收集自定义日志和 IIS 日志
在自定义日志的引入过程中会使用存储帐户。 默认使用服务托管的存储帐户。 若要通过专用链接引入自定义日志,必须使用你自己的存储帐户并将其与 Log Analytics 工作区关联。
自动化
如果使用需要 Azure 自动化帐户的 Log Analytics 解决方案(如更新管理、更改跟踪或盘存),则还应为自动化帐户创建一个专用链接。 有关详细信息,请参阅使用 Azure 专用链接将网络安全地连接到 Azure 自动化。
注意
某些产品和 Azure 门户体验通过资源管理器查询数据。 在这种情况下,他们将无法通过专用链接查询数据,除非专用链接设置也应用于资源管理器。 若要解决这一限制,可以将资源配置为接受来自公共网络的查询,如控制对资源的网络访问中所述。 (引入可能仍然仅限于专用链接网络。)我们已通过资源管理器确定了以下产品和体验查询工作区:
- LogicApp 连接器
- 更新管理解决方案
- 更改跟踪解决方案
- 门户中的“工作区摘要(已弃用)”窗格(显示了解决方案仪表板)
- VM Insights
- 容器见解
托管 Prometheus 注意事项
- 进行专用链接引入设置的途径包括 AMPLS 以及引用用于存储 Prometheus 指标的 Azure Monitor 工作区的数据收集终结点 (DCE) 上的设置。
- 专用链接查询设置直接在用于存储 Prometheus 指标的 Azure Monitor 工作区上进行,不会通过 AMPLS 进行处理。
要求
请注意以下要求。
网络子网大小
支持的最小 IPv4 子网为 /27(使用 CIDR 子网定义)。 尽管 Azure 虚拟网络可以小到 /29,但 Azure 会保留 5 个 IP 地址。 Azure Monitor 专用链接设置至少需要 11 个以上的 IP 地址,即使连接到单个工作区也是如此。 查看终结点的 DNS 设置,获取 Azure Monitor 专用链接终结点的列表。
代理
必须使用最新版本的 Windows 和 Linux 代理,以支持安全引入到 Log Analytics 工作区。 旧版本无法通过专用网络加载监视数据。
Azure Monitor Windows 代理
Azure Monitor Windows 代理版本 1.1.1.0 或更高版本(使用数据收集终结点)。
Azure Monitor Linux 代理
Azure Monitor Linux 代理版本 1.10.5.0 或更高版本(使用数据收集终结点)。
Log Analytics Windows 代理(已弃用)
使用 Log Analytics 代理版本 10.20.18038.0 或更高版本。
Log Analytics Linux 代理(已弃用)
使用代理版本 1.12.25 或更高版本。 如果无法使用,请在 VM 上运行以下命令:
$ sudo /opt/microsoft/omsagent/bin/omsadmin.sh -X
$ sudo /opt/microsoft/omsagent/bin/omsadmin.sh -w <workspace id> -s <workspace key>
Azure 门户
要使用 Azure Monitor 门户体验(例如 Application Insights、Log Analytics 和数据收集终结点),你需要使 Azure 门户和 Azure Monitor 扩展能在专用网络上进行访问。 在网络安全组中添加 AzureActiveDirectory、AzureResourceManager、AzureFrontDoor.FirstParty 和 AzureFrontdoor.Frontend 服务标记。
以编程方式访问
要在专用网络上将 REST API、Azure CLI 或 PowerShell 与 Azure Monitor 结合使用,请在防火墙中添加 AzureActiveDirectory 和 AzureResourceManager 服务标记。
从内容分发网络下载 Application Insights SDK
在脚本中捆绑 JavaScript 代码,让浏览器不尝试从 CDN 中下载代码。 GitHub 上提供了示例。
浏览器 DNS 设置
如果通过专用链接连接到 Azure Monitor 资源,则通往这些资源的流量必须经过在网络上配置的专用终结点。 若要启用专用终结点,请根据连接到专用终结点中的所述内容更新 DNS 设置。 一些浏览器使用自己的 DNS 设置,而不是你设置的 DNS 设置。 浏览器可能会尝试连接到 Azure Monitor 公用终结点,并完全绕过专用链接。 验证你的浏览器设置不会替代或缓存旧的 DNS 设置。
查询限制:externaldata 运算符
- 专用链接不支持
externaldata
运算符,因为它从存储帐户读取数据,但不保证以专用方式访问存储。 - Azure 数据资源管理器代理(ADX 代理)允许使用日志查询来查询 Azure 数据资源管理器。 专用链接不支持 ADX 代理,因为它不保证以专用方式访问目标资源。