需要Visual Studio Team Service的IP范围才能在AWS上创建SG

时间:2017-05-10 12:28:18

标签: visual-studio amazon-web-services amazon-ec2 tfs azure-devops

我们在AWS上拥有我们的基础架构,我们的.NET项目开始使用Visual Studio Team Service(VSTS)来提供CI / CD并从那里管理所有构建/发布过程。我们正在使用托管构建服务器,但部署将在AWS IIS服务器(EC2 Windows 8 R2 IIS服务器)上。

我试图找到什么是VSTS的IP范围,以便创建正确的安全组(SG)并添加到我们的EC2实例但我无法知道范围是什么,他们按地区提供列表我需要一些更具体的东西,比如10.73.0.0 - 10.73.255.255然后我就可以做类似10.73.0.0/16的事情了。

无论如何都知道什么是IP范围,因为现在我的POC中你使用的是太开放的SG,但我需要限制它。

3 个答案:

答案 0 :(得分:1)

Visual Studio Team Service(VSTS)似乎托管在Azure中。因此,您无法获得比Azure的整个IP列表更具体的IP范围列表,这些列表可能会发生变化。

Azure每周三在此发布一个列表:https://www.microsoft.com/en-us/download/confirmation.aspx?id=41653

您需要准许帐户所在地区的所有IP范围。

我的个人意见是,这将难以维护,您应该寻找其他选项来保护访问权限,或者考虑自托管等效的VSTS。

  

Hosted Build使用了哪些IP地址?

     

我们每周三发布一个包含所有内容的XML文档   Azure数据中心的IP范围按区域划分。请参阅

     

https://www.microsoft.com/en-us/download/confirmation.aspx?id=41653

     

此文件包含计算IP地址范围(包括SQL)   范围)由Microsoft Azure数据中心使用。一个新的xml文件将   每周三(太平洋时间)上传新的计划IP   地址范围。新的IP地址范围将有效   星期一(太平洋时间)之后。请下载新的xml文件和   在星期一之前对您的网站进行必要的更改。托管   您需要将代理与VSTS帐户位于同一区域   将您所在地区的IP地址范围列入白名单   上面的链接。要在VSTS中验证您的区域,请导航至   设置页面位于:

     

的https:// <account> .visualstudio.com / _admin / _home /设置

     

在“帐户”下,您将看到“区域”字段。

答案 1 :(得分:1)

因此,由于Mark了解IP地址xml何时发生变化,您可以编写并安排lambda函数来更改安全组。

以下是使用Cloudfront分发IP地址范围执行此操作的AWS示例。

https://github.com/awslabs/aws-cloudfront-samples

答案 2 :(得分:1)

您可以动态获取当前构建代理的IP地址并动态创建安全组(使用AWS SDK for .NET)

  1. 打开构建定义&gt;选择选项标签&gt;选中允许脚本访问OAuth令牌
  2. 添加PowerShell步骤/任务(Arguments: -RestAddress https://starain.vsdtl.visualstudio.com/DefaultCollection/_apis/vslabs/ipaddress -Token $(System.AccessToken))。
  3. PS:

    Param (
        [string]$RestAddress,
        [string]$Token
        )
    $basicAuth = ("{0}:{1}" -f 'test',$Token)
    $basicAuth = [System.Text.Encoding]::UTF8.GetBytes($basicAuth)
    $basicAuth = [System.Convert]::ToBase64String($basicAuth)
    $headers = @{Authorization=("Basic {0}" -f $basicAuth)}
    $result = Invoke-RestMethod -Uri $RestAddress -headers $headers -Method Get
    Write-Host $result.value
    Write-Host "##vso[task.setvariable variable=CIP;]$($result.value)"
    
    1. 在目标计算机上添加PowerShell步骤/任务以调用AWS控制台应用程序。 (您可以通过指定脚本参数传递CIP(第2步)变量,例如-currentIP $(CIP))
    2. 有关创建安全组的文章:Creating a Security Group in Amazon EC2