Set-AzFirewall
수정된 방화벽을 저장합니다.
구문
Set-AzFirewall
-AzureFirewall <PSAzureFirewall>
[-AsJob]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Set-AzFirewall cmdlet은 Azure Firewall을 업데이트합니다.
예제
예제 1: 방화벽 애플리케이션 규칙 컬렉션의 우선 순위 업데이트
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$ruleCollection = $azFw.GetApplicationRuleCollectionByName("ruleCollectionName")
$ruleCollection.Priority = 101
Set-AzFirewall -AzureFirewall $azFw
이 예제에서는 Azure Firewall의 기존 규칙 컬렉션의 우선 순위를 업데이트합니다. 리소스 그룹 "rg"의 Azure Firewall "AzureFirewall"에 "ruleCollectionName"이라는 애플리케이션 규칙 컬렉션이 포함되어 있다고 가정하면 위의 명령은 해당 규칙 컬렉션의 우선 순위를 변경하고 나중에 Azure Firewall을 업데이트합니다. Set-AzFirewall 명령이 없으면 로컬 $azFw 개체에서 수행되는 모든 작업이 서버에 반영되지 않습니다.
예제 2: Azure Firewall 만들기 및 나중에 애플리케이션 규칙 컬렉션 설정
$azFw = New-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg" -VirtualNetworkName "vnet-name" -PublicIpName "pip-name"
$rule = New-AzFirewallApplicationRule -Name R1 -Protocol "http:80","https:443" -TargetFqdn "*google.com", "*microsoft.com" -SourceAddress "10.0.0.0"
$RuleCollection = New-AzFirewallApplicationRuleCollection -Name RC1 -Priority 100 -Rule $rule -ActionType "Allow"
$azFw.ApplicationRuleCollections = $RuleCollection
$azFw | Set-AzFirewall
이 예제에서는 애플리케이션 규칙 컬렉션 없이 방화벽이 먼저 만들어집니다. 그런 다음 애플리케이션 규칙 및 애플리케이션 규칙 컬렉션이 만들어지면 방화벽 개체가 클라우드의 실제 구성에 영향을 주지 않고 메모리에서 수정됩니다. 변경 내용을 클라우드에 반영하려면 Set-AzFirewall을 호출해야 합니다.
예제 3: Azure Firewall의 Threat Intel 작업 모드 업데이트
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azFw.ThreatIntelMode = "Deny"
Set-AzFirewall -AzureFirewall $azFw
이 예제에서는 리소스 그룹 "rg"에서 Azure Firewall "AzureFirewall"의 위협 Intel 작업 모드를 업데이트합니다. Set-AzFirewall 명령이 없으면 로컬 $azFw 개체에서 수행되는 모든 작업이 서버에 반영되지 않습니다.
예제 4: 방화벽 할당 취소 및 할당
$firewall=Get-AzFirewall -ResourceGroupName rgName -Name azFw
$firewall.Deallocate()
$firewall | Set-AzFirewall
$vnet = Get-AzVirtualNetwork -ResourceGroupName rgName -Name anotherVNetName
$pip = Get-AzPublicIpAddress -ResourceGroupName rgName -Name publicIpName
$firewall.Allocate($vnet, $pip)
$firewall | Set-AzFirewall
이 예제에서는 방화벽을 검색하고, 방화벽의 할당을 취소하고, 저장합니다. 할당 취소 명령은 실행 중인 서비스를 제거하지만 방화벽의 구성을 유지합니다. 변경 내용을 클라우드에 반영하려면 Set-AzFirewall을 호출해야 합니다. 사용자가 서비스를 다시 시작하려는 경우 방화벽에서 Allocate 메서드를 호출해야 합니다. 새 VNet 및 공용 IP는 방화벽과 동일한 리소스 그룹에 있어야 합니다. 변경 내용을 클라우드에 반영하려면 Set-AzFirewall을 호출해야 합니다.
예제 5: 강제 터널링 시나리오에 대한 관리 공용 IP 주소로 할당
$vnet = Get-AzVirtualNetwork -ResourceGroupName rgName -Name anotherVNetName
$pip = Get-AzPublicIpAddress -ResourceGroupName rgName -Name publicIpName
$mgmtPip = Get-AzPublicIpAddress -ResourceGroupName rgName -Name MgmtPublicIpName
$firewall.Allocate($vnet, $pip, $mgmtPip)
$firewall | Set-AzFirewall
이 예제에서는 강제 터널링 시나리오에 대한 관리 공용 IP 주소 및 서브넷을 사용하여 방화벽을 할당합니다. VNet에는 "AzureFirewallManagementSubnet"이라는 서브넷이 포함되어야 합니다.
예제 6: Azure Firewall에 공용 IP 주소 추가
$pip = New-AzPublicIpAddress -Name "azFwPublicIp1" -ResourceGroupName "rg" -Sku "Standard" -Location "centralus" -AllocationMethod Static
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azFw.AddPublicIpAddress($pip)
$azFw | Set-AzFirewall
이 예제에서는 방화벽에 연결된 공용 IP 주소 "azFwPublicIp1"입니다.
예제 7: Azure Firewall에서 공용 IP 주소 제거
$pip = Get-AzPublicIpAddress -Name "azFwPublicIp1" -ResourceGroupName "rg"
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azFw.RemovePublicIpAddress($pip)
$azFw | Set-AzFirewall
이 예제에서는 방화벽에서 분리된 공용 IP 주소 "azFwPublicIp1"입니다.
예제 8: Azure Firewall에서 관리 공용 IP 주소 변경
$newMgmtPip = New-AzPublicIpAddress -Name "azFwMgmtPublicIp2" -ResourceGroupName "rg" -Sku "Standard" -Location "centralus" -AllocationMethod Static
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azFw.ManagementIpConfiguration.PublicIpAddress = $newMgmtPip
$azFw | Set-AzFirewall
이 예제에서는 방화벽의 관리 공용 IP 주소가 "AzFwMgmtPublicIp2"로 변경됩니다.
예제 9: Azure Firewall에 DNS 구성 추가
$dnsServers = @("10.10.10.1", "20.20.20.2")
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azFw.DNSEnableProxy = $true
$azFw.DNSServer = $dnsServers
$azFw | Set-AzFirewall
이 예제에서는 DNS 프록시 및 DNS 서버 구성이 방화벽에 연결됩니다.
예제 10: 방화벽 애플리케이션 규칙 컬렉션 내에서 기존 규칙의 대상 업데이트
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$ruleCollection = $azFw.GetNetworkRuleCollectionByName("ruleCollectionName")
$rule=$ruleCollection.GetRuleByName("ruleName")
$rule.DestinationAddresses = "10.10.10.10"
Set-AzFirewall -AzureFirewall $azFw
이 예제에서는 Azure Firewall의 규칙 컬렉션 내에서 기존 규칙의 대상을 업데이트합니다. 이렇게 하면 IP 주소가 동적으로 변경되면 규칙을 자동으로 업데이트할 수 있습니다.
예제 11: Azure Firewall에서 활성 FTP 허용
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azFw.AllowActiveFTP = $true
$azFw | Set-AzFirewall
이 예제에서는 방화벽에서 활성 FTP가 허용됩니다.
예제 12: 가상 허브에서 방화벽 할당 취소 및 할당
$firewall=Get-AzFirewall -ResourceGroupName rgName -Name azFw
$firewall.Deallocate()
$firewall | Set-AzFirewall
$Hub = Get-AzVirtualHub -ResourceGroupName "testRG" -Name "westushub"
$firewall.Allocate($Hub.Id)
$firewall | Set-AzFirewall
이 예제에서는 허브 방화벽을 검색하고 허브 방화벽의 할당을 취소한 다음 저장합니다. 할당 취소 명령은 가상 허브에 대한 참조를 제거하지만 방화벽의 구성을 유지합니다. 변경 내용을 클라우드에 반영하려면 Set-AzFirewall을 호출해야 합니다. Allocate 메서드는 방화벽에 가상 허브 참조를 할당합니다. 변경 내용을 클라우드에 반영하려면 Set-AzFirewall을 호출해야 합니다.
예제 13: Azure Firewall에서 Fat Flow 로깅 사용
$azFw = Get-AzFirewall -Name "ps184" -ResourceGroupName "ps774"
$azFw.EnableFatFlowLogging = $true
$azFw | Set-AzFirewall
AllowActiveFTP : null
ApplicationRuleCollections : Count = 0
ApplicationRuleCollectionsText : "[]"
DNSEnableProxy : null
DNSServer : null
DNSServersText : "null"
Etag : "W/\"7533fa1b-8588-400d-857c-6bc372e14f1b\""
FirewallPolicy : null
HubIPAddresses : null
Id : "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps774/providers/Microsoft.Network/azureFirewalls/ps184"
EnableFatFlowLogging : "true"
IpConfigurations : Count = 0
IpConfigurationsText : "[]"
Location : "eastus"
ManagementIpConfiguration : null
ManagementIpConfigurationText : "null"
Name : "ps184"
NatRuleCollections : Count = 0
NatRuleCollectionsText : "[]"
NetworkRuleCollections : Count = 0
NetworkRuleCollectionsText : "[]"
PrivateRange : null
PrivateRangeText : "null"
ProvisioningState : "Succeeded"
ResourceGroupName : "ps774"
ResourceGuid : null
Sku : {Microsoft.Azure.Commands.Network.Models.PSAzureFirewallSku}
Tag : null
TagsTable : null
ThreatIntelMode : "Alert"
ThreatIntelWhitelist : {Microsoft.Azure.Commands.Network.Models.PSAzureFirewallThreatIntelWhitelist}
ThreatIntelWhitelistText : "{\r
\"FQDNs\": null,\r
\"IpAddresses\": null\r\n}"
Type : "Microsoft.Network/azureFirewalls"
VirtualHub : null
Zones : Count = 0
privateRange : null
이 예제에서는 방화벽에서 Fat Flow 로깅을 사용하도록 설정합니다.
예제 14: Azure Firewall Standard를 프리미엄으로 업그레이드
$azfw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azfw.Sku.Tier="Premium"
Set-AzFirewall -AzureFirewall $azfw
다음은 기존 Azure Firewall Standard를 프리미엄 방화벽으로 업그레이드하는 예제입니다. 업그레이드 프로세스는 몇 분 정도 걸릴 수 있으며 서비스 가동 중지 시간이 필요하지 않습니다. 업그레이드가 성공적으로 완료되면 종료하는 표준 정책을 프리미엄으로 바꿀 수 있습니다.
예제 15: 가용성 영역 사용하여 방화벽 할당 취소 및 할당
$firewall=Get-AzFirewall -ResourceGroupName rgName -Name azFw
$firewall.Deallocate()
$firewall | Set-AzFirewall
$vnet = Get-AzVirtualNetwork -ResourceGroupName rgName -Name anotherVNetName
$pip = Get-AzPublicIpAddress -ResourceGroupName rgName -Name publicIpName
$firewall.Zones = "1","2","3"
$firewall.Allocate($vnet, $pip)
$firewall | Set-AzFirewall
이 예제에서는 방화벽을 검색하고, 방화벽의 할당을 취소하고, 저장합니다. 할당 취소 명령은 실행 중인 서비스를 제거하지만 방화벽의 구성을 유지합니다. 변경 내용을 클라우드에 반영하려면 Set-AzFirewall을 호출해야 합니다. 사용자가 서비스를 다시 시작하려고 하지만 가용성 영역 경우 Zones 메서드를 호출하여 원하는 가용성 영역 따옴표로 정의하고 쉼표로 구분해야 합니다. 가용성 영역 제거해야 하는 경우 $null 매개 변수를 대신 도입해야 합니다. 마지막으로, 방화벽에서 Allocate 메서드를 호출해야 합니다. 새 VNet 및 공용 IP는 방화벽과 동일한 리소스 그룹에 있어야 합니다. 변경 내용을 클라우드에 반영하려면 Set-AzFirewall을 호출해야 합니다.
매개 변수
-AsJob
백그라운드에서 cmdlet 실행
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-AzureFirewall
The AzureFirewall
형식: | PSAzureFirewall |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Confirm
cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.
형식: | SwitchParameter |
별칭: | cf |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-DefaultProfile
Azure와의 통신에 사용되는 자격 증명, 계정, 테넌트 및 구독입니다.
형식: | IAzureContextContainer |
별칭: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-WhatIf
cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.
형식: | SwitchParameter |
별칭: | wi |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
출력
관련 링크
Azure PowerShell