【问题标题】:How do I whitelist GitHub actions IP addresses in Azure web app using GitHub's API [closed]如何使用 GitHub 的 API 在 Azure Web 应用程序中将 GitHub 操作 IP 地址列入白名单 [关闭]
【发布时间】:2021-09-01 18:26:08
【问题描述】:

我正在尝试将我的 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 有时会更新此页面...

任何建议表示赞赏!提前致谢。

【问题讨论】:

  • 默认情况下,应用服务只有 1 条“全部允许”规则,因此不会阻止来自互联网的任何流量到达您的应用。您是否在访问限制下配置了任何拒绝入站网络规则?或者这是您在 javascript 应用程序中面临的 CORS 问题?您能否还包括您遇到的确切错误的屏幕截图。

标签: azure api github github-actions whitelist


【解决方案1】:

为此,您需要一个脚本,并且该脚本需要以具有 RBAC 权限的用户身份运行,才能对应用服务进行更改。您还需要 Powershell 和 Azure CLI。您需要 CLI 以脚本方式添加规则。

Powershell: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.1

Azure CLI:https://docs.microsoft.com/en-us/cli/azure/install-azure-cli

az webapp 配置命令:https://docs.microsoft.com/en-us/cli/azure/webapp/config/access-restriction?view=azure-cli-latest#az_webapp_config_access_restriction_add

$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++
    }
}

几件事:

  1. 在此示例中优先级 = 200,您可能希望更改此设置以使允许规则位于所有现有拒绝规则之前,因此请检查您现有的优先级,我只需为此示例选择一个数字。

  2. 替换为您的资源组和应用名称。

脚本非常简单。需要明确的是,if($ip -like "*.*") 部分只是清除了不需要的 IPv6 地址。

显然,您必须根据您的设置在此处填写一些空白,但我希望这有助于您朝着正确的方向前进。

【讨论】:

  • 你真是天赐之物,非常感谢
猜你喜欢
  • 2020-07-19
  • 2021-01-04
  • 2020-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-06
  • 2016-05-13
相关资源
最近更新 更多