Azure DevOps IP 地址

Evg*_*eny 5 azure-devops

我有一个在 Web App 上运行的应用程序,需要与 Azure DevOps Microsoft 托管代理进行通信。我已经设置了一些 IP 限制来拒绝一切,现在正在将代理的 IP 列入白名单。当我阅读此页面时,它指的是每周 json,其中包含有关我需要的所有内容的对象(每个区域的 CIDR)。我已经解析了 json,将它们添加到我的允许列表中,但是代理的公共 IP 地址不在 json 中提到的范围内。我检查它的方式是在代理上运行 bash 任务curl icanhazip.com。有谁知道列表是否完整,或者我应该看看其他地方?

即我的例子:

我使用此数据(因为我的 ADO 组织位于西欧):

{
      "name": "AzureDevOps.WestEurope",
      "id": "AzureDevOps.WestEurope",
      "properties": {
        "changeNumber": 1,
        "region": "westeurope",
        "regionId": 18,
        "platform": "Azure",
        "systemService": "AzureDevOps",
        "addressPrefixes": [
          "40.74.28.0/23"
        ],
        "networkFeatures": null
      }
    }
Run Code Online (Sandbox Code Playgroud)

但代理从 IP 发起连接:20.238.71.171,该 IP 不在该 json 文件提供的任何 CIDR 中(使用 ADO 检查了所有其他区域)。

有什么想法/帮助吗?

sil*_*ent 14

您需要将所有范围列入白名单,例如 Azure 西欧。这些是许多不同的 IP 范围,因为 Azure DevOps 托管代理没有服务标签。

由于这实际上会向西欧运行的每个虚拟机打开您的防火墙,因此通常并不真正需要这样做,因为它距离向全世界开放您的应用程序有点差。

因此,人们通常会做以下事情:

  1. 构建作业中的第一个任务,使用 ipfy.org 等工具获取正在执行的构建代理的公共 IP 地址
  2. 使用 AZ CLI 将此 IP 作为单个 IP 允许规则添加到您的应用程序
  3. 进行部署等
  4. 再次删除IP规则