【问题标题】:Azure DevOps IP addressesAzure DevOps IP 地址
【发布时间】:2022-11-09 09:55:34
【问题描述】:

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

IE。以我为例:

我使用这些数据(因为我的 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
      }
    }

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

有什么想法/帮助吗?

【问题讨论】:

    标签: azure-devops


    【解决方案1】:

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

    由于这实际上向西欧运行的每个 VM 开放了防火墙,这通常不是真正需要的,因为它距离将您的应用程序向全世界开放还差一点。

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

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

    【讨论】:

    • 啊,注意到了。在提出这个问题后,我已经完全按照您的解释做了,但尽管有更好的方法。感谢您的回复。
    • 自托管构建代理将是替代方案。但这当然会带来更多的管理开销
    • @evgeny 有什么比这更好的方法(使用自托管代理除外)? tnx
    • 我完全按照@silent 的描述做了。
    【解决方案2】:

    如果您的意思是 MS 托管代理: 您应该使用 AzureCloud 服务标签

    托管代理的 IP 地址范围列在 AzureCloud 下的每周文件中,例如美国西部区域的 AzureCloud.westus。

    文件: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml#networking

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      相关资源
      最近更新 更多