使用 Azure 专用链接将网络安全地连接到 Azure 自动化

Azure 专用终结点是一个网络接口,可以将你通过专用且安全的方式连接到 Azure 专用链接支持的服务。 专用终结点使用 VNet 中的专用 IP 地址将自动化服务有效接入 VNet 中。 VNet 上的计算机与自动化帐户之间的网络流量通过 VNet 和 Microsoft 主干网络上的专用链接进行传输,避免暴露给公共 Internet。

例如,你有一个 VNet,并已禁用出站 internet 访问。 但是,你需要私下访问自动化帐户,并使用混合 Runbook 辅助角色上的自动化功能,如 Webhook、State Configuration 和 runbook 作业。 而且,你希望用户只能通过 VNET 访问自动化帐户。 部署专用终结点实现了这些目标。

本文介绍了何时使用以及如何使用自动化帐户设置专用终结点。

Conceptual overview of Private Link for Azure Automation

优势

借助专用链接,你可以:

  • 以专用方式连接到 Azure 自动化,无需开放任何公用网络访问权限。

  • 以专用方式连接到 Azure Monitor Log Analytics 工作区,无需开放任何公用网络访问权限。

    注意

    如果你的自动化帐户已链接到 Log Analytics 工作区以转发作业数据,并且已启用诸如更新管理或 State Configuration 等功能,则需要对 Log Analytics 工作区使用单独的专用终结点。

  • 确保仅可通过授权的专用网络访问自动化数据。

  • 定义通过专用终结点连接的 Azure 自动化资源,可防止你的专用网络出现数据外泄的情况。

  • 使用 ExpressRoute 和专用链接将你的专用本地网络安全地连接到 Azure 自动化。

  • 将所有流量保留在 Azure 主干网络中。

有关详细信息,请参阅专用链接的主要优势

限制

  • 在当前的专用链接实现中,自动化帐户云作业无法访问使用专用终结点保护的 Azure 资源。 例如,Azure Key Vault、Azure SQL、Azure 存储帐户等。若要解决此问题,请改用混合 Runbook 辅助角色。 因此,支持本地 VM 针对启用了专用链接的自动化帐户运行混合 Runbook 辅助角色。
  • 需要使用最新版本的适用于 Windows 或 Linux 的 Log Analytics 代理
  • Log Analytics 网关不支持专用链接。
  • 当自动化帐户将公共访问配置为“禁用”时,Azure 警报(指标、日志和活动日志)不能用于触发自动化 Webhook。

工作原理

Azure 自动化专用链接可将一个或多个专用终结点(及其包含的虚拟网络)连接到你的自动化帐户资源。 这些终结点包括使用 Webhook 来启动 runbook 的计算机、托管混合 Runbook 辅助角色的计算机以及 Desired State Configuration (DSC) 节点。

创建自动化的专用终结点后,每个面向公众的自动化 URL 都将映射到 VNet 中的一个专用终结点。 你或计算机可以直接联系自动化 URL。

Webhook 方案

可以通过对 webhook URL 执行 POST 操作来启动 runbook。 例如,URL 如下所示:https://<automationAccountId>.webhooks.<region>.azure-automation.cn/webhooks?token=gzGMz4SMpqNo8gidqPxAJ3E%3d

混合 Runbook 辅助角色方案

通过 Azure 自动化的用户混合 Runbook 辅助角色功能,可以直接在 Azure 或非 Azure 计算机上运行 runbook,包括在启用了 Azure Arc 的服务器上注册的服务器。 在托管角色的计算机或服务器中,可以直接运行 runbook,并对环境中的资源运行 runbook,从而管理这些本地资源。

混合辅助角色使用 JRDS 终结点启动/停止 runbook,将 runbook 下载到辅助角色,并将作业日志流发送回自动化服务。 启用 JRDS 终结点后,URL 将如下所示:https://<automationaccountID>.jrds.<region>.privatelink.azure-automation.cn。 这将确保在连接到 Azure 虚拟网络的混合辅助角色上执行 runbook,而无需打开到 Internet 的出站连接。

注意

通过 Azure 自动化的最新专用链接实现,它仅支持在连接到 Azure 虚拟网络的混合 Runbook 辅助角色上运行的作业,而不支持云作业。

更新管理的混合辅助角色方案

系统混合 Runbook 辅助角色支持由更新管理功能使用的一组隐藏 Runbook,这些 Runbook 专门用于在 Windows 和 Linux 计算机上安装用户指定的更新。 启用 Azure 自动化更新管理后,连接到 Log Analytics 工作区的任何计算机都会自动配置为系统混合 Runbook 辅助角色。

要了解并配置更新管理,查看关于更新管理。 更新管理功能依赖于 Log Analytics 工作区,因此需要将工作区链接到自动化帐户。 Log Analytics 工作区存储解决方案收集的数据,以及托管其日志搜索和视图。

如果希望将计算机配置为更新管理,以安全方式通过专用链接通道连接到自动化和 Log Analytics 工作区,则必须为链接到使用专用链接配置的自动化帐户的 Log Analytics 工作区启用专用链接。

你能控制如何从专用链接范围外部访问 Log Analytics 工作区。 如果将“允许公用网络访问以便执行引入”设置为“否”,则已连接的范围之外的计算机无法将数据上传到此工作区中 。 如果将“允许公用网络访问以便执行查询”设置为“否”,则范围之外的计算机无法访问此工作区中的数据 。

使用 DSCAndHybridWorker 目标子资源启用用户和系统混合辅助角色的专用链接。

注意

通过 ExpressRoute 专用对等互连、VPN 隧道和使用专用终结点的对等互连虚拟网络,托管在由“更新管理”管理且连接到 Azure VNet 的 Azure 外部的计算机支持专用链接。

State Configuration (agentsvc) 方案

State Configuration 为你提供 Azure 配置管理服务,允许为任何云或本地数据中心内的节点编写、管理和编译 PowerShell Desired State Configuration (DSC) 配置。

计算机上的代理使用 DSC 服务注册,然后使用服务终结点拉取 DSC 配置。 代理服务终结点如下所示:https://<automationAccountId>.agentsvc.<region>.azure-automation.cn

公用和专用终结点的 URL 是相同的,但是,启用“专用链接”时,它会映射到专用 IP 地址。

根据自身网络进行规划

设置自动化帐户资源之前,请考虑自身的网络隔离要求。 评估你的虚拟网络对公共 internet 的访问权限以及对你的自动化帐户的访问限制(包括设置 Azure Monitor 日志与自动化帐户集成时的专用链接组作用域)。 还包括对自动化服务 DNS 记录作为计划的一部分进行检查,以确保支持的功能正常运行。

连接到专用终结点

按照以下步骤为自动化帐户创建专用终结点。

  1. 转到 Azure 门户中的专用链接中心,创建用于连接网络的专用终结点。

  2. 在“专用链接中心”中,选择“创建专用终结点”。

    Screenshot of how to create a private endpoint.

  3. 在“基本信息”上,输入以下详细信息:

    • 订阅
    • 资源组
    • 名称
    • “区域”,然后选择“下一步: 资源”。

    Screenshot of how to create a private endpoint in Basics tab.

  4. 在“资源”上,输入以下详细信息:

    • “连接方法”,选择默认选项“连接到目录中的 Azure 资源”。
    • 订阅
    • 资源类型
    • 资源
    • 根据场景,“目标子资源”可以是 Webhook 或 DSCAndHybridWorker,并选择“下一步: 虚拟网络”。

    Screenshot of how to create a private endpoint in Resource tab.

  5. 在“虚拟网络”中,输入以下详细信息:

    • 虚拟网络
    • 子网
    • 选择“动态分配 IP 地址”。
    • 与专用 DNS 区域集成
    • 订阅
    • “资源组”,然后选择“下一步: 标记”

    Screenshot of how to create a private endpoint in DNS tab.

  6. 在“标记”中,可对资源进行分类。 选择“名称”和“值”,然后选择“查看 + 创建”。

随后你会转到“查看 + 创建”页,Azure 将在此页面验证配置。 应用对公用网络访问和专用链接进行的更改后,最长可能需要 35 分钟才能生效。

在“专用链接中心”中,选择“专用终结点”以查看专用链接资源。

Screenshot Automation resource private link.

选择资源以查看所有详细信息。 这会为自动化帐户创建新的专用终结点,并为其分配虚拟网络的专用 IP。 “连接状态”显示为“已批准”。

同样,为 State Configuration (agentsvc) 和混合 Runbook 辅助角色作业运行时 (jrds) 创建唯一完全限定的域名 (FQDN)。 其中每个都分配有一个来自 VNet 的单独 IP,并且“连接状态”显示为“已批准”。

如果服务使用者对自动化资源具有 Azure RBAC 权限,则使用者可以选择自动审批方法。 在这种情况下,当请求到达自动化提供程序资源时,服务提供程序不需要执行任何操作,并且将自动批准连接。

设置公用网络访问标志

可以将自动化帐户配置为拒绝所有公用配置,并仅允许通过专用终结点进行连接,从而进一步增强网络安全性。 如果你希望仅在 VNet 内限制对自动化帐户的访问,而不允许从公共 internet 进行访问,则可以将 publicNetworkAccess 属性设置为 $false

如果将“公用网络访问”设置设为 $false,则仅允许通过专用终结点进行的连接,拒绝通过公用终结点进行的所有连接,并显示未经授权的错误消息和 HTTP 状态 401。

以下 PowerShell 脚本演示如何在自动化帐户级别 GetSet“公用网络访问”属性:

$account = Get-AzResource -ResourceType Microsoft.Automation/automationAccounts -ResourceGroupName "<resourceGroupName>" -Name "<automationAccountName>" -ApiVersion "2020-01-13-preview"
$account.Properties | Add-Member -Name 'publicNetworkAccess' -Type NoteProperty -Value $false -Force
$account | Set-AzResource -Force -ApiVersion "2020-01-13-preview"

还可以从 Azure 门户控制公用网络访问属性。 在自动化帐户中,从左侧窗格的“帐户设置”部分下选择“网络隔离”。 当“公用网络访问”设置设为“否”时,只允许通过专用终结点的连接,并且拒绝通过公用终结点进行的所有连接。

Public Network Access setting

DNS 配置

使用完全限定的域名 (FQDN) 作为连接字符串的一部分连接到专用链接资源时,必须正确配置 DNS 设置,以解析为分配的专用 IP 地址。 现有的 Azure 服务可能已有在通过公共终结点进行连接时要使用的 DNS 配置。 应查看并更新 DNS 配置,以使用专用终结点进行连接。

与专用终结点关联的网络接口包含配置 DNS 所需的完整信息,其中包括为给定专用链接资源分配的 FQDN 和专用 IP 地址。

可使用以下选项来配置专用终结点的 DNS 设置:

  • 使用主机文件(仅建议用于测试) 。 可首先使用虚拟机上的主机文件来替代对名称解析使用 DNS。 DNS 输入应类似于以下示例:privatelinkFQDN.jrds.sha2.azure-automation.cn

  • 使用专用 DNS 区域。 可使用专用 DNS 区域来替代特定专用终结点的 DNS 解析。 可将专用 DNS 区域链接到虚拟网络,以解析特定的域。 要使虚拟机上的代理能够通过专用终结点进行通信,请创建一个专用 DNS 记录作为 privatelink.azure-automation.cn。 将新的 DNS“A”记录映射添加到专用终结点的 IP。

  • 使用 DNS 转发器(可选) 。 可使用 DNS 转发器来替代特定专用链接资源的 DNS 解析。 如果 DNS 服务器托管在虚拟网络上,可以创建 DNS 转发规则,以使用专用 DNS 区域来简化所有专用链接资源的配置。

有关详细信息,请参阅 Azure 专用终结点 DNS 配置

后续步骤

若要详细了解专用终结点,请参阅什么是 Azure 专用终结点?