You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Azure DevOps微软托管代理池与封禁公网IP的AWS NSG连通?

解决Azure Pipeline(Microsoft-hosted Agent)连接AWS EC2的网络连通问题

核心问题分析

你之前的方案无效的原因:

  • Azure DevOps与AWS的服务连接:仅用于授权Pipeline调用AWS API,无法直接打通SSH的网络路径,对NSG的公网封禁规则无影响。
  • Azure公网IP范围:你下载的是全Azure云的IP段,但Microsoft-hosted Agent属于Azure Compute服务的实例,且会根据你指定的Agent区域动态分配IP。如果未筛选对应区域的Compute服务IP段,或者规则优先级低于0.0.0.0/0的封禁规则,就无法生效。

有效解决方案

方案1:精准添加对应区域的Azure Compute IP段到NSG

  1. 确定你的Pipeline使用的Microsoft-hosted Agent区域(在YAML中由pool的vmImage隐含,比如ubuntu-latest默认对应美国东部,可通过指定location或选择带区域后缀的镜像明确,如ubuntu-22.04-westus)。
  2. 从Azure IP范围文件中筛选对应区域的Compute服务IP段:
    • 打开IP范围JSON文件,找到对应区域的条目,提取addressPrefixes中属于Compute服务的IP段。
  3. 在AWS NSG中添加入站规则:
    • 优先级设为高于封禁0.0.0.0/0的规则(比如默认封禁规则优先级是100,你设为90)。
    • 允许端口22(SSH),源地址为筛选出的Azure Compute IP段。

方案2:动态获取Agent IP并临时更新NSG(推荐)

这种方法适配Microsoft-hosted Agent IP不固定的特性,步骤如下:

  1. 在Pipeline YAML中添加前置脚本,获取当前Agent的公网IP:
    # Linux Agent
    AGENT_IP=$(curl -s ifconfig.me)
    echo "##vso[task.setvariable variable=AGENT_IP]$AGENT_IP"
    
    或PowerShell(Windows Agent):
    $AGENT_IP = Invoke-RestMethod ifconfig.me
    Write-Host "##vso[task.setvariable variable=AGENT_IP]$AGENT_IP"
    
  2. 使用AWS CLI(需提前配置AWS服务连接)添加临时NSG规则:
    aws ec2 authorize-security-group-ingress \
      --group-id <你的NSG ID> \
      --protocol tcp \
      --port 22 \
      --cidr $AGENT_IP/32 \
      --description "Temporary Azure DevOps Agent SSH Access"
    
  3. 执行你的SSH@0任务。
  4. 添加后置脚本,删除临时NSG规则:
    aws ec2 revoke-security-group-ingress \
      --group-id <你的NSG ID> \
      --protocol tcp \
      --port 22 \
      --cidr $AGENT_IP/32
    

方案3:改用AWS SSM Session Manager替代SSH

完全避开公网SSH端口,更安全:

  1. 确保EC2实例已安装SSM Agent,且实例角色拥有AmazonSSMManagedInstanceCore权限。
  2. 在Pipeline中使用AWS CLI执行SSM命令,替代SSH任务:
    aws ssm send-command \
      --instance-ids <你的EC2实例ID> \
      --document-name "AWS-RunShellScript" \
      --parameters commands="<你要执行的Shell命令>"
    
    如需交互式操作,也可使用aws ssm start-session(需Pipeline Agent安装SSM Session Manager插件)。

内容的提问来源于stack exchange,提问作者Pandurang Vadane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 19:23:20