Azure WebApp 防火墙的 Powershell 脚本
Powershell script for Azure WebApp Firewall
我有一个脚本可以在执行部署之前删除然后在 Azure WebApp 上添加防火墙限制。你会在下面找到脚本
az webapp config access-restriction remove -g $(qa-rg) -n $(qa-app) --rule-name myip --action Allow --ip-address 157.71.103.203/32 --priority 1011
az webapp config access-restriction remove -g $(qa-rg) -n $(qa-app) --rule-name myip --action Allow --ip-address 157.71.173.703/32 --priority 1012
az webapp config access-restriction add -g $(qa-rg) -n $(qa-app) --rule-name myip --action Allow --ip-address 157.71.103.203/32 --priority 1011
az webapp config access-restriction add -g $(qa-rg) -n $(qa-app) --rule-name myip --action Allow --ip-address 157.71.173.703/32 --priority 1012
上述命令的问题是,假设有人手动删除了防火墙或该用户的防火墙不存在,那么在这种情况下脚本会失败并出现错误。
有没有办法先检查为不同用户启用的所有防火墙,然后遍历并删除每个防火墙,最后再次为删除的用户添加所有防火墙规则。
有人可以帮我创建这个脚本吗,因为我刚刚在学习脚本
谢谢
首先,您使用的是 Azure CLI 命令而不是 Power Shell 命令。
这是 removing access restriction rule 使用电源 shell 的命令:
Remove-AzWebAppAccessRestrictionRule -ResourceGroupName "Default-Web-WestUS" -WebAppName "ContosoSite" -Name IpRule
要检查规则是否存在,您可以使用Get-AzWebAppAccessRestrictionConfig
。
如果你想自动检查并删除,试试这个:
$results = (Get-AzWebAppAccessRestrictionConfig -ResourceGroupName "ResourceGroup" -Name "yourweb").MainSiteAccessRestrictions
$results
foreach($result in $results)
{
if($result){
Remove-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "yourweb" -Name $result.RuleName
sleep 10
}
}
我有一个脚本可以在执行部署之前删除然后在 Azure WebApp 上添加防火墙限制。你会在下面找到脚本
az webapp config access-restriction remove -g $(qa-rg) -n $(qa-app) --rule-name myip --action Allow --ip-address 157.71.103.203/32 --priority 1011
az webapp config access-restriction remove -g $(qa-rg) -n $(qa-app) --rule-name myip --action Allow --ip-address 157.71.173.703/32 --priority 1012
az webapp config access-restriction add -g $(qa-rg) -n $(qa-app) --rule-name myip --action Allow --ip-address 157.71.103.203/32 --priority 1011
az webapp config access-restriction add -g $(qa-rg) -n $(qa-app) --rule-name myip --action Allow --ip-address 157.71.173.703/32 --priority 1012
上述命令的问题是,假设有人手动删除了防火墙或该用户的防火墙不存在,那么在这种情况下脚本会失败并出现错误。
有没有办法先检查为不同用户启用的所有防火墙,然后遍历并删除每个防火墙,最后再次为删除的用户添加所有防火墙规则。
有人可以帮我创建这个脚本吗,因为我刚刚在学习脚本
谢谢
首先,您使用的是 Azure CLI 命令而不是 Power Shell 命令。
这是 removing access restriction rule 使用电源 shell 的命令:
Remove-AzWebAppAccessRestrictionRule -ResourceGroupName "Default-Web-WestUS" -WebAppName "ContosoSite" -Name IpRule
要检查规则是否存在,您可以使用Get-AzWebAppAccessRestrictionConfig
。
如果你想自动检查并删除,试试这个:
$results = (Get-AzWebAppAccessRestrictionConfig -ResourceGroupName "ResourceGroup" -Name "yourweb").MainSiteAccessRestrictions
$results
foreach($result in $results)
{
if($result){
Remove-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "yourweb" -Name $result.RuleName
sleep 10
}
}