$Location = "[location of your Azure-SSIS IR]"
$RouteTableResourceGroupName = "[name of Azure resource group that contains your route table]"
$RouteTableResourceName = "[resource name of your route table]"
$RouteTable = Get-AzRouteTable -ResourceGroupName $RouteTableResourceGroupName -Name $RouteTableResourceName
$ServiceTags = Get-AzNetworkServiceTag -Location $Location
$BatchServiceTagName = "BatchNodeManagement." + $Location
$UdrRulePrefixForBatch = $BatchServiceTagName
if ($ServiceTags -ne $null)
$BatchIPRanges = $ServiceTags.Values | Where-Object { $_.Name -ieq $BatchServiceTagName }
if ($BatchIPRanges -ne $null)
Write-Host "Start adding UDRs to your route table..."
for ($i = 0; $i -lt $BatchIPRanges.Properties.AddressPrefixes.Count; $i++)
$UdrRuleName = "$($UdrRulePrefixForBatch)_$($i)"
Add-AzRouteConfig -Name $UdrRuleName `
-AddressPrefix $BatchIPRanges.Properties.AddressPrefixes[$i] `
-NextHopType "Internet" `
-RouteTable $RouteTable `
| Out-Null
Write-Host "Add $UdrRuleName to your route table..."
Set-AzRouteTable -RouteTable $RouteTable
Write-Host "Failed to fetch Azure service tag, please confirm that your location is valid."
按照上面的配置 NSG 部分中的指导,必须在防火墙设备/服务上实现类似的规则,以允许来自 Azure-SSIS IR 的出站流量:
如果使用 Azure 防火墙:
必须为将 AzureCloud 服务标记作为目标的出站 TCP 流量打开端口 443。
如果使用 Azure SQL Database 服务器/托管实例来托管 SSISDB,则必须为将 Sql/VirtualNetwork 服务标记作为目标的出站 TCP 流量打开端口 1433、11000-11999。
如果使用 Azure 存储 blob 容器来存储标准自定义安装脚本/文件,则必须为将 Storage/VirtualNetwork 服务标记作为目标的出站 TCP 流量打开端口 443。
如果需要访问 Azure 文件存储,则必须为将 Storage/VirtualNetwork 服务标记作为目标的出站 TCP 流量打开端口 445。
如果使用其他防火墙设备/服务:
必须为将 0.0.0.0/0 或以下 Azure 环境特定 FQDN 作为目标的出站 TCP 流量打开端口 443。
Azure 环境
Azure 公用
- Azure 数据工厂(管理)
- *.frontend.clouddatahub.net
- Azure 存储(管理)
- *.blob.core.windows.net
- *.table.core.windows.net
- Azure 容器注册表(自定义设置)
- 事件中心(日志记录)
- Microsoft 日志记录服务(内部使用)
- gcs.prod.monitoring.core.windows.net
- prod.warmpath.msftcloudes.com
- azurewatsonanalysis-prod.core.windows.net
Azure Government
- Azure 数据工厂(管理)
- *.frontend.datamovement.azure.us
- Azure 存储(管理)
- *.blob.core.usgovcloudapi.net
- *.table.core.usgovcloudapi.net
- Azure 容器注册表(自定义设置)
- 事件中心(日志记录)
- *.servicebus.usgovcloudapi.net
- Microsoft 日志记录服务(内部使用)
- fairfax.warmpath.usgovcloudapi.net
- azurewatsonanalysis.usgovcloudapp.net
Azure 中国世纪互联
- Azure 数据工厂(管理)
- *.frontend.datamovement.azure.cn
- Azure 存储(管理)
- *.blob.core.chinacloudapi.cn
- *.table.core.chinacloudapi.cn
- Azure 容器注册表(自定义设置)
- 事件中心(日志记录)
- *.servicebus.chinacloudapi.cn
- Microsoft 日志记录服务(内部使用)
- mooncake.warmpath.chinacloudapi.cn
- azurewatsonanalysis.chinacloudapp.cn
如果使用 Azure SQL Database 服务器/托管实例来托管 SSISDB,则必须为将 0.0.0.0/0 或 Azure SQL Database 服务器/托管实例 FQDN 作为目标的出站 TCP 流量打开端口 1433、11000-11999。
如果使用 Azure 存储 blob 容器来存储标准自定义安装脚本/文件,则必须为将 0.0.0.0/0 或 Azure Blob 存储 FQDN 作为目标的出站 TCP 流量打开端口 443。
如果需要访问 Azure 文件存储,则必须为将 0.0.0.0/0 或 Azure 文件存储 FQDN 作为目标的出站 TCP 流量打开端口 445。
如果通过在子网中分别启用 Microsoft.Storage/Microsoft.ContainerRegistry/Microsoft.EventHub/Microsoft.Sql 资源为 Azure 存储/容器注册表/事件中心/SQL 配置虚拟网络服务终结点,则同一/配对区域中的 Azure-SSIS IR 与这些服务之间的所有流量都将路由到 Azure 主干网络,而不是防火墙设备/服务。
应为将以下证书吊销列表 (CRL) 下载站点作为目标的出站 TCP 流量打开端口 80:
crl.microsoft.com:80
mscrl.microsoft.com:80
crl3.digicert.com:80
crl4.digicert.com:80
ocsp.digicert.com:80
cacerts.digicert.com:80
如果使用具有不同 CRL 的证书,还应添加其下载站点作为目标。 有关详细信息,请参阅证书吊销列表文章。
如果阻止此流量,则在启动 Azure-SSIS IR 时性能可能会降低,并且在使用证书时会失去检查 CRL 的功能,从安全角度来看不建议这样做。
如果不需要审核/检查来自 Azure-SSIS IR 的出站流量,可以使用 UDR 强制下一个跃点类型为 Internet 的所有流量:
使用 Azure ExpressRoute 时,可以在子网中为 0.0.0.0/0 路由配置 UDR,下一个跃点类型为 Internet。
使用 NVA 时,可以修改子网中 0.0.0.0/0 路由的现有 UDR,将下一个跃点类型从“虚拟设备”切换到 Internet。
将 UDR 的下一个跃点类型配置为 Internet 并不意味着所有流量都将通过 Internet。 只要目标地址属于 Azure 服务之一,Azure 就会通过 Azure 主干网络而不是 Internet 将所有流量路由到该地址。
配置相关资源组
若要启用标准虚拟网络注入,Azure-SSIS IR 需要在与虚拟网络相同的资源组中创建某些网络资源。 这些资源包括:
名为 <Guid>-azurebatch-cloudserviceloadbalancer 的 Azure 负载均衡器。
名为 <Guid>-azurebatch-cloudservicepublicip 的 Azure 公共 IP 地址。
名为 <Guid>-azurebatch-cloudservicenetworksecuritygroup 的 NSG。
现在,可为 Azure-SSIS IR 提供自己的静态公共 IP 地址。 在此方案中,我们将在与静态公共 IP 地址(而不是虚拟网络)相同的资源组中创建 Azure 负载均衡器和 NSG。
这些资源将在 Azure-SSIS IR 启动时创建。 当 Azure-SSIS IR 停止时,将删除这些资源。 如果为 Azure-SSIS IR 提供自己的静态公共 IP 地址,则当 Azure-SSIS IR 停止时不会将其删除。 为了避免阻止 Azure-SSIS IR 停止,不要将这些资源再次用于其他目的。
确保在虚拟网络/静态公共 IP 地址所属的资源组/订阅上没有资源锁。 如果配置只读/删除锁,则启动和停止 Azure-SSIS IR 将会失败,或者它会停止响应。
确保没有 Azure Policy 分配阻止在虚拟网络/静态公共 IP 地址所属的资源组/订阅下创建以下资源:
Microsoft.Network/LoadBalancers
Microsoft.Network/NetworkSecurityGroups
Microsoft.Network/PublicIPAddresses
确保订阅的资源配额足以用于这些资源。 具体而言,对于在虚拟网络中创建的每个 Azure-SSIS IR,需要保留这些资源的两倍数量,因为当我们定期升级你的 Azure-SSIS IR 时,会使用额外资源。
常见问题解答
如何保护用于入站连接的 Azure-SSIS IR 上公开的公共 IP 地址? 是否可以删除公共 IP 地址?
目前,当 Azure-SSIS IR 加入虚拟网络时,会自动创建一个公共 IP 地址。 我们有一个 NIC 级别的 NSG,仅允许 Azure Batch 管理服务入站连接到 Azure-SSIS IR。 你也可以指定子网级别的 NSG 进行入站保护。
如果不希望公开任何公共 IP 地址,请考虑将自承载 IR 配置为 Azure-SSIS IR 的代理,而不是将 Azure-SSIS IR 加入到虚拟网络。
是否可以将 Azure-SSIS IR 的公共 IP 地址添加到数据源的防火墙允许列表?
现在,可为 Azure-SSIS IR 提供自己的静态公共 IP 地址。 在这种情况下,可将 IP 地址添加到数据源的防火墙允许列表。 或者,也可以考虑以下其他选择,根据具体方案来保护来自 Azure-SSIS IR 的数据访问:
如果数据源位于本地,则在将虚拟网络连接到本地网络并将 Azure-SSIS IR 加入虚拟网络子网后,可以将该子网的专用 IP 地址范围添加到数据源的防火墙允许列表。
如果数据源是支持虚拟网络服务终结点的 Azure 服务,则可以在虚拟网络子网中配置虚拟网络服务终结点,并将 Azure-SSIS IR 加入该子网。 然后,可将包含该子网的虚拟网络规则添加到数据源的防火墙。
如果数据源是非 Azure 云服务,则可以使用 UDR 通过 NVA/Azure 防火墙将出站流量从 Azure-SSIS IR 路由到其静态公共 IP 地址。 然后,可将 NVA/Azure 防火墙的静态公共 IP 地址添加到数据源的防火墙允许列表。
如果上述选项都不能满足你的需求,请考虑将自承载 IR 配置为 Azure-SSIS IR 的代理。 然后,可将托管自承载 IR 的计算机的静态公共 IP 地址添加到数据源的防火墙允许列表。
如果我要为 Azure-SSIS IR 提供静态公共地址,为何需要提供两个?
Azure-SSIS IR 将定期自动更新。 升级期间将创建新节点,而旧节点将被删除。 但是,为了避免停机,只有在新节点准备就绪之后才会删除旧节点。 因此,旧节点使用的第一个静态公共 IP 地址无法立即释放,我们需要第二个静态公共 IP 地址来创建新节点。
我已经为 Azure-SSIS IR 创建了自己的静态公共 IP 地址,但为什么仍然无法访问我的数据源?
请确认两个静态公共 IP 地址都已添加到数据源的防火墙允许列表中。 每次升级 Azure-SSIS IR 时,其静态公共 IP 地址都在你创建的这两个 IP 地址之间切换。 如果只将其中一个地址添加到允许列表,则升级后,Azure-SSIS IR 的数据访问将会中断。
如果数据源是 Azure 服务,请检查是否已使用虚拟网络服务终结点配置了它。 如果是这种情况,从 Azure-SSIS IR 到数据源的流量将切换为使用由 Azure 服务管理的专用 IP 地址,并且将你自己的静态公共 IP 地址添加到数据源的防火墙允许列表将不会生效。
通过 ADF UI 将 Azure-SSIS IR 加入虚拟网络
通过 Azure PowerShell 将 Azure-SSIS IR 加入虚拟网络
有关 Azure-SSIS IR 的详细信息,请参阅以下文章:
Azure-SSIS IR。 此文提供有关 IR(包括 Azure-SSIS IR)的一般概念性信息。
教程:将 SSIS 包部署到 Azure 中的分步说明创建一个。 此教程提供有关创建 Azure-SSIS IR 的分步说明。 它使用 Azure SQL 数据库服务器来托管 SSISDB。
创建 Azure-SSIS IR。 此文对本教程的内容做了扩充。 它提供了一些说明,介绍如何使用配置了虚拟网络服务终结点/IP 防火墙规则/专用终结点的 Azure SQL 数据库服务器或加入虚拟网络的 Azure SQL 托管实例来托管 SSISDB。 它介绍了如何将 Azure-SSIS IR 加入虚拟网络。
监视 Azure-SSIS IR。 此文介绍如何检索并了解有关 Azure-SSIS IR 的信息。
管理 Azure-SSIS IR。 此文介绍如何停止、启动或删除 Azure-SSIS IR。 此外,介绍如何通过添加更多节点来横向扩展 Azure-SSIS IR。