IP 地址微应用洞察

IP Address Micro Application Insights

我们有一个用于 dev\testing 的 Azure Web 应用程序。我在 Application Insights 中注意到它每分钟被 ping 500-700 次。我尝试在网络中阻止 IP,当然,我不是网络专家,没有意识到它会一直滚动到下一个。

问题 1 - 如何按使用的 IP 组进行阻止?

问题 2 如果这不起作用 - 如何阻止“U.K”。因为我目前在美国只需要 dev\testing。我更喜欢第一个问题,这样我就可以将其用于我的产品。版本也根据需要。

Question 1 is - How do I block by group of IP's used?

创建一个新的文本文件并存储您要允许或阻止的所有 IP 地址,每个地址用逗号 (,) 分隔,如下所示:

将此代码粘贴到 PowerShell 文件中以读取上述文本文件:

Param``(

[``Parameter``(``Mandatory = $true``)]

[string] $ResourceGroupName``,

[``Parameter``(``Mandatory = $true``)]

[string] $WebAppName``,

[``Parameter``(``Mandatory = $true``)]

[string]$IPAddressSourceFileName

)

#Step1 - Get All IP Addresses from the File

$SourceIPAddresses = (``Get-Content $IPAddressSourceFileName``).Trim() | ConvertFrom-Csv

#Step2 - Get All existing IP Addresses from the Config of App Service

$APIVersion = ((``Get-AzResourceProvider -ProviderNamespace Microsoft.Web).ResourceTypes | Where-Object ResourceTypeName -eq sites).ApiVersions[0]

$config = (``Get-AzResource -ResourceType Microsoft.Web/sites/config -Name $WebAppName -ResourceGroupName $ResourceGroupName -ApiVersion $APIVersion``)

#Step3 - Prepare the new IP Addresses list from that IPAddressList file and collect all the new ones into the $IpSecurityRestrictions collection

foreach``(``$item in $SourceIPAddresses``){

$Rule``=``$config``.Properties.ipSecurityRestrictions | Where-Object { $_``.ipAddress -eq $item``.IPAddress}

if``(``$null -ne $Rule``)

{

Write-Host -ForegroundColor Green 'No Action on the IP:' $item``.ipAddress

}

else

{

$config``.Properties.ipSecurityRestrictions+=``$item

}

}

#Step4 - Finally update the new IP Addresses to Azure App Service

Set-AzResource -ResourceId $config``.ResourceId -Properties $config``.Properties -ApiVersion $APIVersion -Force

运行 来自 VS Code > 终端的上述 PowerShell 脚本 > 运行 以下命令:

.\ReadIPAddresses.ps1 azdevops-rg-eus-dev azuredevops-wapp1-eus-dev IPAddresses.txt

执行 运行 此命令后,您可以看到所有 IP 地址都将添加到“访问限制”边栏选项卡中,如下所示:

阻止任意 IP 范围会让您一事无成。如果您真的想在网络级别限制对测试环境的访问,我建议定义允许的 IP 范围并阻止互联网的其余部分。这可以在门户中完成,使用 PS 就像 HariKrishnaRajoli-MT 显示的那样,或者最好使用 IaC,比如 Bicep or Terraform.

如果你想要一些动态阻塞(比如 country-based),你需要在你的应用服务前面有一个组件,比如 Azure App GW with WAF。但是,其中包括一些显着的成本。

最后,为什么 ping 会出现问题?它不会对服务造成任何重大压力。如果你想保护你的服务免受外部访问,你应该启用一些身份验证。 Azure App Service provides an easy way 启用不同身份提供商的身份验证和授权。