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 启用不同身份提供商的身份验证和授权。
我们有一个用于 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 启用不同身份提供商的身份验证和授权。