myn*_*101 5 api github whitelist azure github-actions
我正在尝试将我的 GitHub 操作的 IP 地址列入白名单,因为目前工作流程因我的 Azure Web 应用程序的防火墙阻止来自非白名单 IP 地址的请求而失败。看来Github提供的这个API中有一个CIDR格式的IP地址列表: https: //api.github.com/meta
但是,我是 Azure 新手,不知道如何通过 Azure UI 中的 API 将如此大量的 IP 地址列入白名单。当我转到 Azure 应用程序的“网络”页面,转到“访问限制”并单击“配置访问限制”时,有一个非常好的 GUI 可以将单个 IP 地址列入白名单,但似乎没有办法要访问 API,我想知道是否有人知道我应该如何尝试从上面链接的 GitHub API 页面访问“操作”:[IP1、IP2 等],并将该 IP 数组纳入我的访问限制配置,理想情况下这应该是动态的,因为显然 Github 有时会更新此页面......
任何建议表示赞赏!提前致谢。
为此,您需要一个脚本,并且该脚本需要以具有 RBAC 权限的用户身份运行才能对应用服务进行更改。您还需要 Powershell 和 Azure CLI。您需要 CLI 以脚本方式添加规则。
Powershell: https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view= powershell-7.1
Azure CLI:https://learn.microsoft.com/en-us/cli/azure/install-azure-cli
$priority = 200;
$json = Invoke-RestMethod -Uri "https://api.github.com/meta"
foreach($ip in $json.actions){
if($ip -like "*.*"){
az webapp config access-restriction add -g <your_resourcegroup_name> -n <your_app_name> --rule-name --action Allow --ip-address $ip --priority $priority
Write-Output "$($ip) added to rules."
$priority++
}
}
Run Code Online (Sandbox Code Playgroud)
有几件事:
在此示例中优先级 = 200,您可能希望更改此设置以使允许规则位于所有现有拒绝规则之前,因此请检查您现有的优先级,我只需为此示例选择一个数字。
将 <your_thing_here> 替换为您的资源组和应用程序名称。
该脚本非常简单。需要明确的是,该if($ip -like "*.*")部分只是清除了不需要的 IPv6 地址。
显然,您必须根据您的设置在此处填写一些空白,但我希望这有助于您朝着正确的方向前进。
| 归档时间: |
|
| 查看次数: |
8563 次 |
| 最近记录: |