Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento skript vytvoří aplikační bránu s firewallem pro webové aplikace, která používá škálovací sadu virtuálních počítačů pro zázemní servery. Firewall webových aplikací omezuje webový provoz na základě pravidel OWASP. Po spuštění skriptu můžete aplikační bránu otestovat pomocí její veřejné IP adresy.
Pokud chcete tuto ukázku spustit, nainstalujte nejnovější verzi Azure CLI. Spuštěním příkazu az login vytvořte připojení k Azure.
Ukázky pro Azure CLI jsou napsány pro shell bash. Pokud chcete tuto ukázku spustit ve Windows PowerShellu nebo příkazovém řádku, budete možná muset změnit prvky skriptu.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure , než začnete.
Ukázkový skript
# Create a resource group
az group create --name myResourceGroupAG --location eastus
# Create network resources
az network vnet create \
--name myVNet \
--resource-group myResourceGroupAG \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name myAGSubnet \
--subnet-prefix 10.0.1.0/24
az network vnet subnet create \
--name myBackendSubnet \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--address-prefix 10.0.2.0/24
az network public-ip create \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress
# Create the application gateway with WAF
az network application-gateway create \
--name myAppGateway \
--location eastus \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--subnet myAGSubnet \
--capacity 2 \
--sku WAF_Medium \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 80 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress
az network application-gateway waf-config set \
--enabled true \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--firewall-mode Detection \
--rule-set-version 3.0
# Create a virtual machine scale set
az vmss create \
--name myvmss \
--resource-group myResourceGroupAG \
--image Ubuntu2204 \
--admin-username azureuser \
--admin-password Azure123456! \
--instance-count 2 \
--vnet-name myVNet \
--subnet myBackendSubnet \
--vm-sku Standard_DS2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name appGatewayBackendPool
# Install NGINX
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroupAG \
--vmss-name myvmss \
--settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
# Create a storage account
az storage account create \
--name myagstore1 \
--resource-group myResourceGroupAG \
--location eastus \
--sku Standard_LRS \
--encryption blob
# Configure diagnostics
appgwid=$(az network application-gateway show --name myAppGateway --resource-group myResourceGroupAG --query id -o tsv)
storeid=$(az storage account show --name myagstore1 --resource-group myResourceGroupAG --query id -o tsv)
az monitor diagnostic-settings create --name appgwdiag --resource $appgwid \
--logs '[ { "category": "ApplicationGatewayAccessLog", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } }, { "category": "ApplicationGatewayPerformanceLog", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } }, { "category": "ApplicationGatewayFirewallLog", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } } ]' \
--storage-account $storeid
# Get the IP address
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Úklid po nasazení
Spuštěním následujícího příkazu odeberte skupinu prostředků, aplikační bránu a všechny související prostředky.
az group delete --name myResourceGroupAG --yes
Vysvětlení skriptu
Tento skript k vytvoření nasazení používá následující příkazy. Každá položka v tabulce odkazuje na dokumentaci specifickou pro příkazy.
| Příkaz | Poznámky |
|---|---|
| az group create (vytvoření skupiny) | Vytváří skupinu prostředků, ve které jsou uloženy všechny prostředky. |
| az network vnet create | Vytvoří virtuální síť. |
| az network vnet subnet create (vytvoření podsítě virtuální sítě) | Vytvoří ve virtuální síti podsíť. |
| az network public-ip create - vytvoření veřejné IP adresy v Azure Network | Vytvoří veřejnou IP adresu pro aplikační bránu. |
| az síťová aplikační brána vytvořit | Vytvoří aplikační bránu. |
| az vmss create | Vytvoří škálovací sadu virtuálních počítačů. |
| az storage account create pro vytvoření účtu úložiště | Vytvoří účet úložiště. |
| az monitor diagnostic-settings create | Vytvoří účet úložiště. |
| az network public-ip show | Získá veřejnou IP adresu aplikační brány. |
Další kroky
Další informace o Azure CLI najdete v dokumentaci k Azure CLI.