Az Azure Firewall Standard migrálása Prémium verzióba a Terraform használatával
A Terraform lehetővé teszi a felhőinfrastruktúra definícióját, előzetes verzióját és üzembe helyezését. A Terraform használatával konfigurációs fájlokat hozhat létre HCL-szintaxissal. A HCL szintaxissal megadhatja a felhőszolgáltatót – például az Azure-t – és a felhőinfrastruktúra elemeit. A konfigurációs fájlok létrehozása után létrehoz egy végrehajtási tervet , amely lehetővé teszi az infrastruktúra változásainak előzetes megtekintését az üzembe helyezés előtt. A módosítások ellenőrzése után alkalmazza a végrehajtási tervet az infrastruktúra üzembe helyezésére.
Ha a Terraform használatával klasszikus szabályokkal telepíti a standard Azure Firewallt, módosíthatja a Terraform konfigurációs fájlját, hogy prémium szintű tűzfalszabályzattal migrálja a tűzfalat az Azure Firewall Premiumba.
Ebben a cikkben az alábbiakkal ismerkedhet meg:
- Standard Azure Firewall üzembe helyezése klasszikus szabályokkal a Terraform használatával
- A tűzfalszabályok importálása prémium szintű tűzfalszabályzatba
- A Terraform konfigurációs fájljának szerkesztése a tűzfal áttelepítéséhez
1. A környezet konfigurálása
- Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.
A Terraform konfigurálása: Ha még nem tette meg, konfigurálja a Terraformot az alábbi lehetőségek egyikével:
2. A Terraform-kód implementálása
Hozzon létre egy könyvtárat, amelyben tesztelheti a Terraform-mintakódot, és az aktuális könyvtárá teheti.
Hozzon létre egy elnevezett
main.tf
fájlt, és szúrja be a következő kódot:resource "random_pet" "prefix" { prefix = var.prefix length = 1 } resource "azurerm_resource_group" "rg" { name = "${random_pet.prefix.id}-rg" location = var.resource_group_location } resource "azurerm_virtual_network" "vnet" { name = "${random_pet.prefix.id}-vnet" address_space = ["10.0.0.0/16"] location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name } resource "azurerm_subnet" "subnet" { name = "AzureFirewallSubnet" resource_group_name = azurerm_resource_group.rg.name virtual_network_name = azurerm_virtual_network.vnet.name address_prefixes = ["10.0.1.0/24"] } resource "azurerm_public_ip" "pip" { name = "${random_pet.prefix.id}-pip" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name allocation_method = "Static" sku = "Standard" } resource "azurerm_firewall" "main" { name = "${random_pet.prefix.id}-fw" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name sku_name = "AZFW_VNet" sku_tier = "Standard" ip_configuration { name = "configuration" subnet_id = azurerm_subnet.subnet.id public_ip_address_id = azurerm_public_ip.pip.id } } resource "azurerm_firewall_application_rule_collection" "app-rc" { name = "${random_pet.prefix.id}-app-rc" azure_firewall_name = azurerm_firewall.main.name resource_group_name = azurerm_resource_group.rg.name priority = 100 action = "Allow" rule { name = "testrule" source_addresses = [ "10.0.0.0/16", ] target_fqdns = [ "*.google.com", ] protocol { port = "443" type = "Https" } } } resource "azurerm_firewall_network_rule_collection" "net-rc" { name = "${random_pet.prefix.id}-net-rc" azure_firewall_name = azurerm_firewall.main.name resource_group_name = azurerm_resource_group.rg.name priority = 100 action = "Allow" rule { name = "dnsrule" source_addresses = [ "10.0.0.0/16", ] destination_ports = [ "53", ] destination_addresses = [ "8.8.8.8", "8.8.4.4", ] protocols = [ "TCP", "UDP", ] } }
Hozzon létre egy elnevezett
variables.tf
fájlt, és szúrja be a következő kódot:variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "prefix" { type = string default = "firewall-standard" description = "Prefix of the resource name" }
3. A Terraform inicializálása
Futtassa a Terraform init parancsot a Terraform üzembe helyezésének inicializálásához. Ez a parancs letölti az Azure-erőforrások kezeléséhez szükséges Azure-szolgáltatót.
terraform init -upgrade
Főbb pontok:
- A
-upgrade
paraméter frissíti a szükséges szolgáltatói beépülő modulokat a legújabb verzióra, amely megfelel a konfiguráció verziókorlátozásainak.
4. Terraform végrehajtási terv létrehozása
Végrehajtási terv létrehozásához futtassa a Terraform-tervet .
terraform plan -out main.tfplan
Főbb pontok:
- A
terraform plan
parancs létrehoz egy végrehajtási tervet, de nem hajtja végre. Ehelyett meghatározza, hogy milyen műveletek szükségesek a konfigurációs fájlokban megadott konfiguráció létrehozásához. Ez a minta lehetővé teszi annak ellenőrzését, hogy a végrehajtási terv megfelel-e az elvárásainak, mielőtt módosítanák a tényleges erőforrásokat. - Az opcionális
-out
paraméter lehetővé teszi a terv kimeneti fájljának megadását.-out
A paraméter használatával biztosítható, hogy a vizsgált terv pontosan az alkalmazott legyen.
5. Terraform végrehajtási terv alkalmazása
A terraform futtatásával alkalmazza a végrehajtási tervet a felhőinfrastruktúrára.
terraform apply main.tfplan
Főbb pontok:
- A példaparancs
terraform apply
feltételezi, hogy korábban futtatottterraform plan -out main.tfplan
. - Ha másik fájlnevet adott meg a
-out
paraméterhez, használja ugyanazt a fájlnevet a hívásbanterraform apply
. - Ha nem használta a paramétert
-out
, hívjonterraform apply
paraméterek nélkül.
6. A tűzfalszabályok importálása prémium szintű szabályzatba
Most már rendelkezik egy klasszikus szabályokkal rendelkező szabványos tűzfallal. Ezután hozzon létre egy prémium szintű tűzfalszabályzatot, és importálja a szabályokat a tűzfalból.
- Az Azure Portalon válassza az Erőforrás létrehozása lehetőséget.
- Keressen tűzfalszabályzatot, és válassza ki.
- Válassza a Létrehozás lehetőséget.
- Erőforráscsoport esetén válassza ki a teszterőforrásokat .
- A Név mezőbe írja be a prem-pol nevet.
- Régió esetén válassza az USA keleti régióját.
- Szabályzatszint esetén válassza a Prémium lehetőséget.
- Válassza a Tovább: DNS Gépház lehetőséget, és folytassa a műveletet, amíg el nem éri a Szabályok lapot.
- A Szabályok lapon válassza a Szabályok importálása azure-tűzfalról lehetőséget.
- Válassza a testfirewall, majd az Importálás lehetőséget.
- Válassza az Áttekintés + létrehozás lehetőséget.
- Válassza a Létrehozás lehetőséget.
7. A Terraform konfigurációs fájljának szerkesztése a tűzfal áttelepítéséhez
Nyissa meg a main.tf
fájlt, és végezze el a következő módosításokat:
Adja hozzá a következő "adatok" szakaszt:
data "azurerm_firewall_policy" "prem-pol" { name = "prem-pol" resource_group_name = azurerm_resource_group.rg.name }
Módosítsa a tűzfalerőforrást:
resource "azurerm_firewall" "fw" { name = "testfirewall" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name firewall_policy_id = data.azurerm_firewall_policy.prem-pol.id sku_tier = "Premium" ip_configuration { name = "configuration" subnet_id = azurerm_subnet.subnet.id public_ip_address_id = azurerm_public_ip.pip.id } }
Törölje a klasszikus szabálygyűjteményeket:
resource "azurerm_firewall_application_rule_collection" "app-rc" { name = "apptestcollection" azure_firewall_name = azurerm_firewall.fw.name resource_group_name = azurerm_resource_group.rg.name priority = 100 action = "Allow" rule { name = "testrule" source_addresses = [ "10.0.0.0/16", ] target_fqdns = [ "*.google.com", ] protocol { port = "443" type = "Https" } } } resource "azurerm_firewall_network_rule_collection" "net-rc" { name = "nettestcollection" azure_firewall_name = azurerm_firewall.fw.name resource_group_name = azurerm_resource_group.rg.name priority = 100 action = "Allow" rule { name = "dnsrule" source_addresses = [ "10.0.0.0/16", ] destination_ports = [ "53", ] destination_addresses = [ "8.8.8.8", "8.8.4.4", ] protocols = [ "TCP", "UDP", ] } }
8. A módosított Terraform végrehajtási terv alkalmazása
terraform plan -out main.tfplan
terraform apply main.tfplan
9. Az eredmények ellenőrzése
- Válassza ki a teszterőforrás-erőforráscsoportot .
- Válassza ki a testfirewall erőforrást.
- Ellenőrizze, hogy a Tűzfal termékváltozat prémium szintű-e.
- Ellenőrizze, hogy a tűzfal a prem-pol tűzfalszabályzatot használja-e.
10. Erőforrások törlése
Ha már nincs szüksége a Terraformon keresztül létrehozott erőforrásokra, hajtsa végre az alábbi lépéseket:
Futtassa a Terraform-tervet , és adja meg a jelölőt
destroy
.terraform plan -destroy -out main.destroy.tfplan
Főbb pontok:
- A
terraform plan
parancs létrehoz egy végrehajtási tervet, de nem hajtja végre. Ehelyett meghatározza, hogy milyen műveletek szükségesek a konfigurációs fájlokban megadott konfiguráció létrehozásához. Ez a minta lehetővé teszi annak ellenőrzését, hogy a végrehajtási terv megfelel-e az elvárásainak, mielőtt módosítanák a tényleges erőforrásokat. - Az opcionális
-out
paraméter lehetővé teszi a terv kimeneti fájljának megadását.-out
A paraméter használatával biztosítható, hogy a vizsgált terv pontosan az alkalmazott legyen.
- A
A végrehajtási terv alkalmazásához futtassa a terraformát .
terraform apply main.destroy.tfplan
A Terraform hibaelhárítása az Azure-ban
A Terraform Azure-beli használatakor felmerülő gyakori problémák elhárítása
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: