Azure Virtual Network Manager を使用してネットワーク トラフィックをブロックする方法 - Azure PowerShell
この記事では、ポート 80 および 443 への送信ネットワーク トラフィックをブロックするセキュリティ規則を作成して規則コレクションに追加する方法について説明します。 詳細については、セキュリティ管理規則に関するページを参照してください。
前提条件
セキュリティ規則の構成を開始する前に、次の手順を確認してください。
- セキュリティ管理規則の各要素を理解している。
- Azure Virtual Network Manager インスタンスを作成した。
- 必須のコマンドレットにアクセスするには、
Az.Network
のバージョン5.3.0
以降がインストールされている必要があります。
SecurityAdmin 構成を作成する
New-AzNetworkManagerSecurityAdminConfiguration を使用して、新しい SecurityAdmin 構成を作成します。
$config = @{ Name = 'SecurityConfig' ResourceGroupName = 'myAVNMResourceGroup' NetworkManagerName = 'myAVNM' } $securityconfig = New-AzNetworkManagerSecurityAdminConfiguration @config
Get-AzNetworkManagerGroup を使用して、ネットワーク グループを変数に格納します。
$ng = @{ Name = 'myNetworkGroup' ResourceGroupName = 'myAVNMResourceGroup' NetworkManagerName = 'myAVNM' } $networkgroup = Get-AzNetworkManagerGroup @ng
New-AzNetworkManagerSecurityGroupItem を使用して、ネットワーク グループを追加する接続グループ項目を作成します。
$gi = @{ NetworkGroupId = "$networkgroup.Id" } $groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId $networkgroup.id
構成グループを作成し、前の手順のグループ項目を追加します。
[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.PSNetworkManagerSecurityGroupItem]]$configGroup = @() $configGroup.Add($groupItem) $configGroup = @($groupItem)
New-AzNetworkManagerSecurityAdminRuleCollection を使用して、セキュリティ管理規則のコレクションを作成します。
$collection = @{ Name = 'myRuleCollection' ResourceGroupName = 'myAVNMResourceGroup' NetworkManager = 'myAVNM' ConfigName = 'SecurityConfig' AppliesToGroup = "$configGroup" } $rulecollection = New-AzNetworkManagerSecurityAdminRuleCollection @collection -AppliesToGroup $configGroup
New-AzNetworkManagerAddressPrefixItem を使用して、送信元と送信先のアドレス プレフィックスとポートの変数を定義します。
$sourceip = @{ AddressPrefix = 'Internet' AddressPrefixType = 'ServiceTag' } $sourceprefix = New-AzNetworkManagerAddressPrefixItem @sourceip $destinationip = @{ AddressPrefix = '10.0.0.0/24' AddressPrefixType = 'IPPrefix' } $destinationprefix = New-AzNetworkManagerAddressPrefixItem @destinationip [System.Collections.Generic.List[string]]$sourcePortList = @() $sourcePortList.Add("65500”) [System.Collections.Generic.List[string]]$destinationPortList = @() $destinationPortList.Add("80”) $destinationPortList.Add("443”)
New-AzNetworkManagerSecurityAdminRule を使用してセキュリティ規則を作成します。
$rule = @{ Name = 'Block_HTTP_HTTPS' ResourceGroupName = 'myAVNMResourceGroup' NetworkManagerName = 'myAVNM' SecurityAdminConfigurationName = 'SecurityConfig' RuleCollectionName = 'myRuleCollection' Protocol = 'TCP' Access = 'Deny' Priority = '100' Direction = 'Outbound' SourceAddressPrefix = $sourceprefix SourcePortRange = $sourcePortList DestinationAddressPrefix = $destinationprefix DestinationPortRange = $destinationPortList } $securityrule = New-AzNetworkManagerSecurityAdminRule @rule
デプロイをコミットする
Deploy-AzNetworkManagerCommit を使用して、ターゲット リージョンにセキュリティ構成をコミットします。
$regions = @("westus")
$deployment = @{
Name = 'myAVNM'
ResourceGroupName = 'myAVNMResourceGroup'
ConfigurationId = $configIds
TargetLocation = $regions
CommitType = 'SecurityAdmin'
}
Deploy-AzNetworkManagerCommit @deployment
セキュリティ構成を削除する
セキュリティ構成が不要になった場合は、セキュリティ構成自体を削除できるように、次の条件が満たされていることを確認してください。
- どのリージョンにも構成のデプロイはありません。
- セキュリティ構成に関連付けられている規則コレクション内のすべてのセキュリティ規則を削除します。
セキュリティ構成のデプロイを削除する
Deploy-AzNetworkManagerCommit を使用して、構成をデプロイすることによってセキュリティのデプロイを削除します。
[System.Collections.Generic.List[string]]$configIds = @()
[System.Collections.Generic.List[string]]$regions = @()
$regions.Add("westus")
$removedeployment = @{
Name = 'myAVNM'
ResourceGroupName = 'myAVNMResourceGroup'
ConfigurationId = $configIds
TargetLocation = $regions
CommitType = 'SecurityAdmin'
}
Deploy-AzNetworkManagerCommit @removedeployment
セキュリティ規則を削除する
Remove-AzNetworkManagerSecurityAdminRule を使用してセキュリティ規則を削除します。
$removerule = @{
Name = 'Block80'
ResourceGroupName = 'myAVNMResourceGroup'
NetworkManagerName = 'myAVNM'
SecurityAdminConfigurationName = 'SecurityConfig'
}
Remove-AzNetworkManagerSecurityAdminRule @removerule
セキュリティ規則コレクションを削除する
$removecollection = @{
Name = 'myRuleCollection'
ResourceGroupName = 'myAVNMResourceGroup'
NetworkManagerName = 'myAVNM'
SecurityAdminConfigurationName = 'SecurityConfig'
}
Remove-AzNetworkManagerSecurityAdminRuleCollection @removecollection
構成の削除
Remove-AzNetworkManagerSecurityAdminConfiguration を使用してセキュリティ構成を削除します。
$removeconfig = @{
Name = 'SecurityConfig'
ResourceGroupName = 'myAVNMResourceGroup'
NetworkManagerName = 'myAVNM'
}
Remove-AzNetworkManagerSecurityAdminConfiguration @removeconfig
次のステップ
セキュリティ管理規則の詳細を確認する