Azure &引用;授权IP范围应在Kubernetes服务上定义”;阻塞部署管道

Azure &引用;授权IP范围应在Kubernetes服务上定义”;阻塞部署管道,azure,kubernetes,azure-devops,azure-pipelines,Azure,Kubernetes,Azure Devops,Azure Pipelines,Azure Advisor中的一个安全警告是: 应在Kubernetes服务上定义授权IP范围 通过仅向特定范围内的IP地址授予API访问权限,限制对Kubernetes服务管理API的访问。建议限制对授权IP范围的访问,以确保只有来自允许网络的应用程序才能访问群集 您可以在此处阅读所有相关信息: 更新现有AKS群集的命令如下: az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \

Azure Advisor中的一个安全警告是:

应在Kubernetes服务上定义授权IP范围

通过仅向特定范围内的IP地址授予API访问权限,限制对Kubernetes服务管理API的访问。建议限制对授权IP范围的访问,以确保只有来自允许网络的应用程序才能访问群集

您可以在此处阅读所有相关信息:

更新现有AKS群集的命令如下:

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --api-server-authorized-ip-ranges  73.140.245.0/24
或删除任何:

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --api-server-authorized-ip-ranges ""
无论如何,启用此选项后,我的部署管道超时,因为它无法连接到AKS。我添加了一个IP地址,当它说它无法连接并且仍然无法连接时会弹出

因此,基本上,当我需要运行管道时,我会删除IP范围,然后在完成后将其重新添加。显然,这不是一种理想的处理方式


我应该如何解决这个问题?Azure是否有一种更优雅的方式将AKS中管道中的IP白名单列出来?

此处列出了您需要打开的IP范围:


我没有找到您在该列表中添加的IP地址。

设拉子让我朝着正确的方向前进

但是,唯一相关的部分是本部分:

与此相关的是,我的生成和部署代理由Microsoft托管。与Shiraz相关的文章主要涉及内部Azure DevOps:

Azure DevOps服务| Azure DevOps服务器2020 | Azure DevOps服务器2019 | TFS 2018-TFS 2015

无论如何,这是Microsoft托管代理的相关文档:

基本上有两种选择:

  • 下载,然后在
    AzureCloud.{region}
    部分下添加您所在地理区域的每个IP。因此,如果您位于
    CentralUS
    区域,仅添加该区域是不够的。您必须添加美国的所有区域,因为在使用构建和部署代理时,它可能会给我们带来不同的区域

  • 编写一个简单的程序,为您解析
    json
    文件,并收集所有相关IP。文档使用的示例如下:

  • 使用Newtonsoft.Json.Linq;
    使用制度;
    使用System.Collections.Generic;
    使用System.IO;
    使用System.Linq;
    命名空间WeeklyFileIPRanges
    {
    班级计划
    {
    //本地保存的每周文件的路径
    常量字符串weeklyFilePath=@“C:\MyPath\ServiceTags\u Public\u 20200504.json”;
    静态void Main(字符串[]参数)
    {
    //美国地理有以下区域:
    //美国中部,美国东部2,美国东部,美国中北部,
    //美国中南部、美国中西部、美国西部、美国西部2
    List USGeographyRegions=新列表
    {
    “centralus”,
    “伊斯图”,
    “东方2号”,
    “诺森特鲁斯”,
    “southcentralus”,
    “westcentralus”,
    “韦斯特斯”,
    “westus2”
    };
    //加载每周文件
    JObject weeklyFile=JObject.Parse(File.ReadAllText(weeklyFilePath));
    JArray值=(JArray)weeklyFile[“值”];
    foreach(USGeographyRegions中的字符串区域)
    {
    字符串azureCloudRegion=$“AzureCloud.{region}”;
    控制台写入线(azureCloudRegion);
    变量ipList=
    从v值
    其中(字符串)v[“name”]==azureCloudRegion
    选择v[“属性”][“地址前缀”];
    foreach(ipList.Children()中的var ip)
    {
    控制台写入线(ip);
    }
    }
    }
    }
    }
    
    然后,要添加IP,您可以使用以下方法:

    az aks update -g <resource_group> -n <aks_deployment_name> --api-server-authorized-ip-ranges [every,single,ip,address,for,the,geographic,area]
    

    az-aks更新-g-n

    太棒了!谢谢你在这里分享你的解决方案,你可以接受它作为答案,这样它可以帮助其他社区成员谁得到同样的问题,我们可以存档这个线程,谢谢。
    az aks update -g <resource_group> -n <aks_deployment_name> --api-server-authorized-ip-ranges [every,single,ip,address,for,the,geographic,area]