VSTS 部署组的 NSG 出站规则

Posted

技术标签:

【中文标题】VSTS 部署组的 NSG 出站规则【英文标题】:NSG outbound rule for VSTS Deployment Group 【发布时间】:2018-05-11 18:57:11 【问题描述】:

我有一个带有 NSG 的 Azure VM,它需要将出站 Internet 访问限制为仅对必要的服务和应用程序进行(从最严格的开始,然后添加规则)。 Team Services 代理扩展也将与 ARM 模板一起安装(使用拒绝所有出站 Internet 规则下载失败)。

VSTS 使用的 IP 地址每周更改是否适用于部署组? Hosted Build 的 IP 有一个 similar question。

我正在 VSTS 版本定义中创建虚拟机。在上面的链接中,我找到了一个答案,您可以调用 REST API 来获取最简单的 IP 地址,但是当我在浏览器中尝试此操作时,它看起来已被弃用。 (“抱歉!我们的服务现在不可用。”)关于如何在运行版本创建 VM 时为 NSG 应用 IP 的任何其他想法?

"可以动态获取当前构建代理的IP地址, 动态创建安全组(使用适用于 .NET 的 AWS 开发工具包)

打开构建定义>选择选项选项卡>选中允许脚本 访问 OAuth 令牌添加 PowerShell 步骤/任务(参数:-RestAddress https://starain.vsdtl.visualstudio.com/DefaultCollection/_apis/vslabs/ipaddress -Token $(System.AccessToken))。”

【问题讨论】:

【参考方案1】:

如果我没看错的话,你想使用 VSTS 管道创建一个虚拟机并且这个新的虚拟机应该托管一个 VSTS 代理,它可以在以后随时回调 VSTS。

我认为没有解决方案。虽然在创建时为 VSTS 实例获取有效 IP 很容易,但您不能保证此 IP 将长期有效。您可能很幸运能够设置代理,但到 VSTS 的链接可能随时停止。

这个问题本身很有趣,可以使用Azure PowerShell 任务来解决。该脚本将:

    使用Resolve-DnsName cmdlet 将名称解析为IP 地址 使用Set-AzureRmNetworkSecurityGroup 等添加或更新 NSG 规则。

【讨论】:

该死,我认为你是对的,如果虚拟机长时间运行并且 IP 地址发生变化,这可能是一个问题。 :( 但这是一个有趣的想法,它可能会尝试从 DNS 名称中查找 IP 地址——我将针对 VSTS 进行尝试,如果仅指定我的帐户的 IP 地址就足够了,我会报告回来.感谢您的想法!【参考方案2】:

该API现在不可用,您可以尝试直接通过PowerShell任务获取IP和update NSG(例如$ip = Invoke-RestMethod http://ipinfo.io/json | Select -exp ip)PowerShell One Liner:Get External/Public IP Address。

另一方面,您使用私人代理:Deploy an agent on Windows

【讨论】:

有趣,感谢您的回复。你知道是否有一个 URL 可以直接获取 VSTS 的 IP,而不必下载 XML 文件并使用 PowerShell 解析它? 你知道是否可以将 FQDN 或 VSTS' 的东西而不是 IP 列入白名单? @m00nbeam360.0 据我所知,没有。也无法将 FQDN 或 VSTS 的东西列入白名单,有一个用户声音:feedback.azure.com/forums/217313-networking/suggestions/…

以上是关于VSTS 部署组的 NSG 出站规则的主要内容,如果未能解决你的问题,请参考以下文章

NSG 是不是适用于子网的服务端点

未使用 Azure 站点恢复故障转移复制 NSG 规则

IP 地址(在源列下)在 AWS 安全组的入站和出站规则中代表/或含义是啥?

BICEP 模块部署虚拟网络,但不是基于 if 语句的 NSG

防火墙入站出站规则配置

安装部署ELK系统监控Azure China的NSG和WAF Log