Az - Azure Network

Support HackTricks

Basic Information

Azure ๋‚ด์˜ ๋„คํŠธ์›Œํฌ๋Š” ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ํ”Œ๋žซํผ์˜ ํ•„์ˆ˜์ ์ธ ๋ถ€๋ถ„์œผ๋กœ ๊ธฐ๋Šฅํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ Azure ์„œ๋น„์Šค์™€ ๋ฆฌ์†Œ์Šค ๊ฐ„์˜ ์—ฐ๊ฒฐ ๋ฐ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. Azure์˜ ๋„คํŠธ์›Œํฌ ์•„ํ‚คํ…์ฒ˜๋Š” ๋งค์šฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ , ์•ˆ์ „ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž ์ •์˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Azure์˜ ํ•ต์‹ฌ์€ ์‚ฌ์šฉ์ž๊ฐ€ Azure ํด๋ผ์šฐ๋“œ ๋‚ด์—์„œ ๊ฒฉ๋ฆฌ๋œ ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” **๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ(VNet)**๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ VNet ๋‚ด์—์„œ ๊ฐ€์ƒ ๋จธ์‹ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ํ˜ธ์ŠคํŒ…ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Azure์˜ ๋„คํŠธ์›Œํ‚น์€ ํด๋ผ์šฐ๋“œ ๋‚ด์˜ ํ†ต์‹ (์ฆ‰, Azure ์„œ๋น„์Šค ๊ฐ„)๊ณผ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ ๋ฐ ์ธํ„ฐ๋„ท๊ณผ์˜ ์—ฐ๊ฒฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ์€ Azure ๋„คํŠธ์›Œํ‚น์˜ ์ค‘์š”ํ•œ ์ธก๋ฉด์œผ๋กœ, ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ, ์ ‘๊ทผ ๊ด€๋ฆฌ ๋ฐ ์ค€์ˆ˜๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋„๊ตฌ์™€ ์„œ๋น„์Šค๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณด์•ˆ ์กฐ์น˜์—๋Š” ๋ฐฉํ™”๋ฒฝ, ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ ๊ทธ๋ฃน, ๋ฐ ์•”ํ˜ธํ™” ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด ํŠธ๋ž˜ํ”ฝ ๋ฐ ์ ‘๊ทผ์— ๋Œ€ํ•œ ๋†’์€ ์ˆ˜์ค€์˜ ์ œ์–ด๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์ „๋ฐ˜์ ์œผ๋กœ Azure์˜ ๋„คํŠธ์›Œํ‚น ๊ธฐ๋Šฅ์€ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ์ž‘์—… ๋ถ€ํ•˜ ์š”๊ตฌ์— ๋งž๋Š” ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜๋ฉด์„œ ๋ณด์•ˆ ๋ฐ ์‹ ๋ขฐ์„ฑ์„ ๊ฐ•ํ•˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

Virtual Network (VNET) & Subnets

Azure์˜ VNet์€ ๋ณธ์งˆ์ ์œผ๋กœ ํด๋ผ์šฐ๋“œ ๋‚ด์—์„œ ์ž์‹ ์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋Š” ๊ท€ํ•˜์˜ ๊ตฌ๋…์— ์ „๋…ํ•˜๋Š” Azure ํด๋ผ์šฐ๋“œ์˜ ๋…ผ๋ฆฌ์  ๊ฒฉ๋ฆฌ์ž…๋‹ˆ๋‹ค. VNet์„ ํ†ตํ•ด Azure์—์„œ ๊ฐ€์ƒ ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ(VPN)๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ€์ƒ ๋จธ์‹ (VM), ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์œ ํ˜•์˜ Azure ๋ฆฌ์†Œ์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

VNet์€ IP ์ฃผ์†Œ ๋ฒ”์œ„, ์„œ๋ธŒ๋„ท ์ƒ์„ฑ, ๋ผ์šฐํŠธ ํ…Œ์ด๋ธ” ๋ฐ ๋„คํŠธ์›Œํฌ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํฌํ•จํ•œ ๋„คํŠธ์›Œํฌ ์„ค์ •์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ธŒ๋„ท์€ VNet ๋‚ด์˜ IP ์ฃผ์†Œ ๋ฒ”์œ„์ž…๋‹ˆ๋‹ค. ์กฐ์ง ๋ฐ ๋ณด์•ˆ์„ ์œ„ํ•ด VNet์„ ์—ฌ๋Ÿฌ ์„œ๋ธŒ๋„ท์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VNet์˜ ๊ฐ ์„œ๋ธŒ๋„ท์€ ๋„คํŠธ์›Œํฌ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์— ๋”ฐ๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒฉ๋ฆฌํ•˜๊ณ  ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, ์„œ๋ธŒ๋„ท์„ ํ†ตํ•ด VNet์„ ํ•˜๋‚˜ ์ด์ƒ์˜ ์„œ๋ธŒ ๋„คํŠธ์›Œํฌ๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฆฌ์†Œ์Šค๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Example

  • ์˜ˆ๋ฅผ ๋“ค์–ด, MyVNet์ด๋ผ๋Š” ์ด๋ฆ„์˜ VNet์ด 10.0.0.0/16์˜ IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด VNet ๋‚ด์— Subnet-1์ด๋ผ๋Š” ์„œ๋ธŒ๋„ท์„ ์ƒ์„ฑํ•˜๊ณ , ์›น ์„œ๋ฒ„๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•ด 10.0.0.0/24์˜ IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์„œ๋ธŒ๋„ท์ธ Subnet-2๋Š” 10.0.1.0/24 ๋ฒ”์œ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ„ํ• ์€ ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ํšจ์œจ์ ์ธ ๊ด€๋ฆฌ ๋ฐ ๋ณด์•ˆ ์ œ์–ด๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

Enumeration

Azure ๊ณ„์ •์˜ ๋ชจ๋“  VNet ๋ฐ ์„œ๋ธŒ๋„ท์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด Azure Command-Line Interface (CLI)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

# List VNets
az network vnet list --query "[].{name:name, location:location, addressSpace:addressSpace}" -o table

# List subnets of a VNet
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, addressPrefix:addressPrefix}" -o table

๋„คํŠธ์›Œํฌ ๋ณด์•ˆ ๊ทธ๋ฃน (NSG)

Azure์—์„œ **๋„คํŠธ์›Œํฌ ๋ณด์•ˆ ๊ทธ๋ฃน (NSG)**๋Š” Azure ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ (VNet) ๋‚ด์˜ Azure ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ํ•„ํ„ฐ๋งํ•˜๋Š” ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์˜ ํ๋ฆ„์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ๊ทœ์ •ํ•˜๋Š” ๋ณด์•ˆ ๊ทœ์น™ ์„ธํŠธ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

NSG์˜ ์ฃผ์š” ์ธก๋ฉด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ํŠธ๋ž˜ํ”ฝ ์ œ์–ด: ๊ฐ NSG๋Š” ๋‹ค์–‘ํ•œ Azure ๋ฆฌ์†Œ์Šค์™€ ๊ด€๋ จ๋œ ์ธ๋ฐ”์šด๋“œ ๋ฐ ์•„์›ƒ๋ฐ”์šด๋“œ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ์ฐจ๋‹จํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ๊ทœ์น™์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ทœ์น™ ๊ตฌ์„ฑ ์š”์†Œ: NSG ๋‚ด์˜ ๊ทœ์น™์€ ์†Œ์Šค/๋Œ€์ƒ IP ์ฃผ์†Œ, ํฌํŠธ ๋ฐ ํ”„๋กœํ† ์ฝœ๊ณผ ๊ฐ™์€ ๊ธฐ์ค€์— ๋”ฐ๋ผ ํŠธ๋ž˜ํ”ฝ์„ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋งค์šฐ ๊ตฌ์ฒด์ ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์ฒด์„ฑ์€ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์˜ ์„ธ๋ฐ€ํ•œ ๊ด€๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ณด์•ˆ ๊ฐ•ํ™”: NSG๋Š” ์Šน์ธ๋œ ํŠธ๋ž˜ํ”ฝ๋งŒ์ด Azure ๋ฆฌ์†Œ์Šค์— ๋“ค์–ด์˜ค๊ฑฐ๋‚˜ ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•จ์œผ๋กœ์จ ๋„คํŠธ์›Œํฌ ์ธํ”„๋ผ์˜ ๋ณด์•ˆ ํƒœ์„ธ๋ฅผ ๊ฐ•ํ™”ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

  • VNet ๋‚ด์˜ ์„œ๋ธŒ๋„ท์ด๋‚˜ ํŠน์ • ๊ฐ€์ƒ ๋จธ์‹ ์— MyNSG๋ผ๋Š” NSG๊ฐ€ ์ ์šฉ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์‹ญ์‹œ์˜ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ๋ชจ๋“  ์†Œ์Šค์—์„œ ์›น ์„œ๋ฒ„๋กœ์˜ HTTP ํŠธ๋ž˜ํ”ฝ(ํฌํŠธ 80)์„ ํ—ˆ์šฉํ•˜๋Š” ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™.

  • ํŠน์ • ๋Œ€์ƒ IP ์ฃผ์†Œ ๋ฒ”์œ„๋กœ์˜ SQL ํŠธ๋ž˜ํ”ฝ(ํฌํŠธ 1433)๋งŒ์„ ํ—ˆ์šฉํ•˜๋Š” ์•„์›ƒ๋ฐ”์šด๋“œ ๊ทœ์น™.

์—ด๊ฑฐ

# List NSGs
az network nsg list --query "[].{name:name, location:location}" -o table

# Get NSG rules
az network nsg rule list --nsg-name <NSGName> --resource-group <ResourceGroupName> --query "[].{name:name, priority:priority, direction:direction, access:access, protocol:protocol, sourceAddressPrefix:sourceAddressPrefix, destinationAddressPrefix:destinationAddressPrefix, sourcePortRange:sourcePortRange, destinationPortRange:destinationPortRange}" -o table

Azure Firewall

Azure Firewall๋Š” Azure Virtual Network ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๊ด€๋ฆฌํ˜• ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋‚ด์žฅ๋œ ๊ณ ๊ฐ€์šฉ์„ฑ ๋ฐ ํ™•์žฅ์„ฑ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์™„์ „ํ•œ ์ƒํƒœ ์ €์žฅ ๋ฐฉํ™”๋ฒฝ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

Azure Firewall์€ NSG๋ณด๋‹ค ๋” ๋ฐœ์ „๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ์—ฌ๊ธฐ์—๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€ ํ•„ํ„ฐ๋ง, ๋„คํŠธ์›Œํฌ ์ˆ˜์ค€ ํ•„ํ„ฐ๋ง, ์œ„ํ˜‘ ์ธํ…”๋ฆฌ์ „์Šค ๊ธฐ๋ฐ˜ ํ•„ํ„ฐ๋ง, ๋กœ๊น… ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ Azure Monitor์™€์˜ ํ†ตํ•ฉ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์•„์›ƒ๋ฐ”์šด๋“œ, ์ธ๋ฐ”์šด๋“œ, ์Šคํฌํฌ ๊ฐ„, VPN ๋ฐ ExpressRoute ํŠธ๋ž˜ํ”ฝ์„ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์€ FQDN(์ •๊ทœํ™”๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„), IP ์ฃผ์†Œ ๋ฐ ํฌํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Azure Firewall๊ณผ NSG์˜ ์ฐจ์ด์ 

  1. ๋ฒ”์œ„:

  • NSG: ์„œ๋ธŒ๋„ท ๋˜๋Š” ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์ˆ˜์ค€์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค(NIC), VM ๋˜๋Š” ์„œ๋ธŒ๋„ท์—์„œ ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ๊ธฐ๋ณธ ํ•„ํ„ฐ๋ง์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • Azure Firewall: VNet ์ˆ˜์ค€์—์„œ ์ž‘๋™ํ•˜์—ฌ ๋” ๋„“์€ ๋ณดํ˜ธ ๋ฒ”์œ„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  VNet์œผ๋กœ ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๊ด€๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  1. ๊ธฐ๋Šฅ:

  • NSG: IP ์ฃผ์†Œ, ํฌํŠธ ๋ฐ ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ธฐ๋ณธ ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€ ๊ฒ€์‚ฌ ๋˜๋Š” ์œ„ํ˜‘ ์ธํ…”๋ฆฌ์ „์Šค์™€ ๊ฐ™์€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • Azure Firewall: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€(๊ณ„์ธต 7) ํŠธ๋ž˜ํ”ฝ ํ•„ํ„ฐ๋ง, ์œ„ํ˜‘ ์ธํ…”๋ฆฌ์ „์Šค ๊ธฐ๋ฐ˜ ํ•„ํ„ฐ๋ง, ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ํ•„ํ„ฐ๋ง ๋“ฑ๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ณต์šฉ IP ์ฃผ์†Œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  1. ์‚ฌ์šฉ ์‚ฌ๋ก€:

  • NSG: ๊ธฐ๋ณธ ๋„คํŠธ์›Œํฌ ์ˆ˜์ค€ ํŠธ๋ž˜ํ”ฝ ํ•„ํ„ฐ๋ง์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

  • Azure Firewall: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€ ์ œ์–ด, ๋กœ๊น… ๋ฐ ์œ„ํ˜‘ ์ธํ…”๋ฆฌ์ „์Šค๊ฐ€ ํ•„์š”ํ•œ ๋” ๋ณต์žกํ•œ ํ•„ํ„ฐ๋ง ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

  1. ๊ด€๋ฆฌ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง:

  • NSG: ๊ธฐ๋ณธ ๋กœ๊น… ๋ฐ Azure Monitor์™€์˜ ํ†ตํ•ฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • Azure Firewall: Azure Monitor๋ฅผ ํ†ตํ•œ ๊ณ ๊ธ‰ ๋กœ๊น… ๋ฐ ๋ถ„์„ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์˜ ์„ฑ๊ฒฉ๊ณผ ํŒจํ„ด์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

Enumeration

# List Azure Firewalls
az network firewall list --query "[].{name:name, location:location, subnet:subnet, publicIp:publicIp}" -o table

# Get network rules of a firewall
az network firewall network-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

# Get application rules of a firewall
az network firewall application-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

# Get nat rules of a firewall
az network firewall nat-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

๋„คํŠธ์›Œํฌ ๊ฐ€์ƒ ์–ดํ”Œ๋ผ์ด์–ธ์Šค (NVA)

Azure์˜ ๋„คํŠธ์›Œํฌ ๊ฐ€์ƒ ์–ดํ”Œ๋ผ์ด์–ธ์Šค (NVA)๋Š” ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ๋„คํŠธ์›Œํฌ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ€์ƒ ์–ดํ”Œ๋ผ์ด์–ธ์Šค์ž…๋‹ˆ๋‹ค. NVA๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Azure์—์„œ ๋ณธ๋ž˜ ์ œ๊ณต๋˜์ง€ ์•Š๋Š” ๋„คํŠธ์›Œํฌ ๊ธฐ๋Šฅ์ด๋‚˜ ๋” ๋งŽ์€ ์‚ฌ์šฉ์ž ์ •์˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ ๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” VM์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐฉํ™”๋ฒฝ, WAN ์ตœ์ ํ™”๊ธฐ ๋˜๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์™€ ๊ฐ™์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

NVA๋Š” ๋ณต์žกํ•œ ๋ผ์šฐํŒ…, ๋ณด์•ˆ ๋ฐ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ์ž‘์—…์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Azure Marketplace์—์„œ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋งŽ์€ ์ œ3์ž ๊ณต๊ธ‰์—…์ฒด๊ฐ€ Azure ํ™˜๊ฒฝ์— ํ†ตํ•ฉํ•  ์ค€๋น„๊ฐ€ ๋œ ์–ดํ”Œ๋ผ์ด์–ธ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

  • ์กฐ์ง์€ Azure์— NVA๋ฅผ ๋ฐฐํฌํ•˜์—ฌ ๋งž์ถคํ˜• ๋ฐฉํ™”๋ฒฝ ์†”๋ฃจ์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด NVA๋Š” ์ œ3์ž ๋ฐฉํ™”๋ฒฝ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์นจ์ž… ํƒ์ง€, ํŒจํ‚ท ๊ฒ€์‚ฌ ๋˜๋Š” VPN ์—ฐ๊ฒฐ๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NVA๋Š” ํ†ต๊ณผํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ํ•„ํ„ฐ๋งํ•˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์กฐ์ง์˜ ์ •์ฑ…์— ๋”ฐ๋ผ ํ–ฅ์ƒ๋œ ๋ณด์•ˆ ์กฐ์น˜๊ฐ€ ๋งˆ๋ จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์—ด๊ฑฐ

# Usually NVAs are named or tagged in a way to distinguish them from other VMs
az vm list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# For a specific VM identified as an NVA, list its network interfaces
az vm nic list --vm-name <VMName> --resource-group <ResourceGroupName> --query "[].{id:id}" -o table

Azure Route Tables & User Defined Routes (UDR)

Azure Route Tables๋Š” Microsoft Azure ๋‚ด์—์„œ Azure Virtual Networks (VNets) ๋‚ด์˜ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ, ์ด๋“ค์€ ํŒจํ‚ท์ด VNets ๋‚ด์˜ ์„œ๋ธŒ๋„ท ๊ฐ„, VNets ๊ฐ„, ๋˜๋Š” ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๋กœ ์–ด๋–ป๊ฒŒ ์ „๋‹ฌ๋˜๋Š”์ง€๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ผ์šฐํŠธ ํ…Œ์ด๋ธ”์€ ํŒจํ‚ท์ด ๋ชฉ์ ์ง€ IP ์ฃผ์†Œ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ผ์šฐํŒ…๋˜์–ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ทœ์น™ ์ง‘ํ•ฉ์ธ ๋ผ์šฐํŠธ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

**User Defined Routes (UDR)**๋Š” Azure Route Tables ๋‚ด์—์„œ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. UDR์€ Azure Virtual Networks (VNets) ๋‚ด ๋ฐ ์™ธ๋ถ€ ์—ฐ๊ฒฐ ๊ฐ„์˜ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์œ ์—ฐํ•˜๊ฒŒ ์ง€์‹œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋ฉฐ, Azure์˜ ๊ธฐ๋ณธ ๋ผ์šฐํŒ… ๊ฒฐ์ •์„ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ผ์šฐํŠธ๋Š” ๊ฐ€์ƒ ์–ดํ”Œ๋ผ์ด์–ธ์Šค๋ฅผ ํ†ตํ•œ ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…, ๋ณด์•ˆ ๋˜๋Š” ์ •์ฑ… ์ค€์ˆ˜๋ฅผ ์œ„ํ•œ ํŠน์ • ๊ฒฝ๋กœ ๊ฐ•์ œ, ๋˜๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋„คํŠธ์›Œํฌ์™€์˜ ํ†ตํ•ฉ์ด ํ•„์š”ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

  • ์„œ๋ธŒ๋„ท ๊ฐ„์˜ ํŠธ๋ž˜ํ”ฝ์„ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด Network Virtual Appliance (NVA)๋ฅผ ๋ฐฐํฌํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•œ ์„œ๋ธŒ๋„ท์—์„œ ๋‹ค๋ฅธ ์„œ๋ธŒ๋„ท์œผ๋กœ์˜ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์ด NVA๋ฅผ ํ†ตํ•ด ๊ฐ€๋„๋ก ์ง€์‹œํ•˜๋Š” UDR์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด UDR์€ NVA๊ฐ€ ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ๋ณด์•ˆ ๋ชฉ์ ์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๊ฒ€์‚ฌํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์—ด๊ฑฐ

# List Route Tables
az network route-table list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# List UDRs for a table
az network route-table route list --route-table-name <RouteTableName> --resource-group <ResourceGroupName> --query "[].{name:name, addressPrefix:addressPrefix, nextHopType:nextHopType, nextHopIpAddress:nextHopIpAddress}" -o table

Azure Private Link๋Š” Azure ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ฐœ์ธ ์•ก์„ธ์Šค๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” Azure์˜ ์„œ๋น„์Šค๋กœ, Azure ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ(VNet)์™€ ์„œ๋น„์Šค ๊ฐ„์˜ ํŠธ๋ž˜ํ”ฝ์ด Microsoft์˜ Azure ๋ฐฑ๋ณธ ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ์™„์ „ํžˆ ์ด๋™ํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ ์„œ๋น„์Šค๋ฅผ VNet์œผ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณต์šฉ ์ธํ„ฐ๋„ท์— ๋…ธ์ถœ๋˜์ง€ ์•Š์•„ ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋ฉ๋‹ˆ๋‹ค.

Private Link๋Š” Azure Storage, Azure SQL Database ๋ฐ Private Link๋ฅผ ํ†ตํ•ด ๊ณต์œ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์„œ๋น„์Šค์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ Azure ์„œ๋น„์Šค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ž์‹ ์˜ VNet ๋‚ด์—์„œ ๋˜๋Š” ๋‹ค๋ฅธ Azure ๊ตฌ๋…์—์„œ ์„œ๋น„์Šค๋ฅผ ์†Œ๋น„ํ•˜๋Š” ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

NSG๋Š” ๊ฐœ์ธ ์—”๋“œํฌ์ธํŠธ์— ์ ์šฉ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ, Private Link๋ฅผ ํฌํ•จํ•˜๋Š” ์„œ๋ธŒ๋„ท์— NSG๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ์•„๋ฌด๋Ÿฐ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ

  • VNet์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์•ก์„ธ์Šคํ•˜๊ณ ์ž ํ•˜๋Š” Azure SQL Database๊ฐ€ ์žˆ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ณ ๋ คํ•ด ๋ณด์‹ญ์‹œ์˜ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Š” ๊ณต์šฉ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ด๋™ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Private Link๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด VNet ๋‚ด์—์„œ Azure SQL Database ์„œ๋น„์Šค์— ์ง์ ‘ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฐœ์ธ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์—”๋“œํฌ์ธํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ž์‹ ์˜ VNet์˜ ์ผ๋ถ€์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•˜๋ฉฐ, ๊ฐœ์ธ IP ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด ์•ˆ์ „ํ•˜๊ณ  ๊ฐœ์ธ์ ์ธ ์•ก์„ธ์Šค๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

Enumeration

# List Private Link Services
z network private-link-service list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

# List Private Endpoints
az network private-endpoint list --query "[].{name:name, location:location, resourceGroup:resourceGroup, privateLinkServiceConnections:privateLinkServiceConnections}" -o table

Azure ์„œ๋น„์Šค ์—”๋“œํฌ์ธํŠธ

Azure ์„œ๋น„์Šค ์—”๋“œํฌ์ธํŠธ๋Š” ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ์˜ ๊ฐœ์ธ ์ฃผ์†Œ ๊ณต๊ฐ„๊ณผ VNet์˜ ID๋ฅผ Azure ์„œ๋น„์Šค์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜์—ฌ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด, VNet์˜ ๋ฆฌ์†Œ์Šค๊ฐ€ Azure์˜ ๋ฐฑ๋ณธ ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Azure ์„œ๋น„์Šค์— ์•ˆ์ „ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” VNet์—์„œ Azure ์„œ๋น„์Šค๋กœ์˜ ํŠธ๋ž˜ํ”ฝ์ด Azure ๋„คํŠธ์›Œํฌ ๋‚ด์— ์œ ์ง€๋˜๋„๋ก ํ•˜์—ฌ, ๋ณด๋‹ค ์•ˆ์ „ํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

  • ์˜ˆ๋ฅผ ๋“ค์–ด, Azure Storage ๊ณ„์ •์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณต์šฉ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VNet ๋‚ด์—์„œ Azure Storage์— ๋Œ€ํ•œ ์„œ๋น„์Šค ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด, VNet์˜ ํŠธ๋ž˜ํ”ฝ๋งŒ์ด ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ •์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ • ๋ฐฉํ™”๋ฒฝ์„ ๊ตฌ์„ฑํ•˜์—ฌ VNet์—์„œ๋งŒ ํŠธ๋ž˜ํ”ฝ์„ ์ˆ˜๋ฝํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ด๊ฑฐ

# List Virtual Networks with Service Endpoints
az network vnet list --query "[].{name:name, location:location, serviceEndpoints:serviceEndpoints}" -o table

# List Subnets with Service Endpoints
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, serviceEndpoints:serviceEndpoints}" -o table

์„œ๋น„์Šค ์—”๋“œํฌ์ธํŠธ์™€ ํ”„๋ผ์ด๋น— ๋งํฌ์˜ ์ฐจ์ด

Microsoft๋Š” ๋ฌธ์„œ์—์„œ ํ”„๋ผ์ด๋น— ๋งํฌ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค: \

์„œ๋น„์Šค ์—”๋“œํฌ์ธํŠธ:

  • VNet์—์„œ Azure ์„œ๋น„์Šค๋กœ์˜ ํŠธ๋ž˜ํ”ฝ์€ Microsoft Azure ๋ฐฑ๋ณธ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ด๋™ํ•˜๋ฉฐ, ๊ณต์šฉ ์ธํ„ฐ๋„ท์„ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค.

  • ์—”๋“œํฌ์ธํŠธ๋Š” Azure ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ง์ ‘ ์—ฐ๊ฒฐ์ด๋ฉฐ, VNet ๋‚ด์—์„œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ํ”„๋ผ์ด๋น— IP๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์„œ๋น„์Šค ์ž์ฒด๋Š” VNet ์™ธ๋ถ€์—์„œ ๊ณต์šฉ ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ†ตํ•ด ์—ฌ์ „ํžˆ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์„œ๋น„์Šค ๋ฐฉํ™”๋ฒฝ์„ ๊ตฌ์„ฑํ•˜์—ฌ ์ด๋Ÿฌํ•œ ํŠธ๋ž˜ํ”ฝ์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š” ํ•œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ์„œ๋ธŒ๋„ท๊ณผ Azure ์„œ๋น„์Šค ๊ฐ„์˜ ์ผ๋Œ€์ผ ๊ด€๊ณ„์ž…๋‹ˆ๋‹ค.

  • ํ”„๋ผ์ด๋น— ๋งํฌ๋ณด๋‹ค ๋น„์šฉ์ด ์ €๋ ดํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋ผ์ด๋น— ๋งํฌ:

  • ํ”„๋ผ์ด๋น— ๋งํฌ๋Š” Azure ์„œ๋น„์Šค๋ฅผ VNet ๋‚ด์˜ ํ”„๋ผ์ด๋น— ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ†ตํ•ด ๋งคํ•‘ํ•˜๋ฉฐ, ์ด๋Š” VNet ๋‚ด์˜ ํ”„๋ผ์ด๋น— IP ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

  • Azure ์„œ๋น„์Šค๋Š” ์ด ํ”„๋ผ์ด๋น— IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผ๋˜๋ฉฐ, ๋งˆ์น˜ ๋„คํŠธ์›Œํฌ์˜ ์ผ๋ถ€์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

  • ํ”„๋ผ์ด๋น— ๋งํฌ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋œ ์„œ๋น„์Šค๋Š” VNet ๋˜๋Š” ์—ฐ๊ฒฐ๋œ ๋„คํŠธ์›Œํฌ์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ณต์šฉ ์ธํ„ฐ๋„ท ์ ‘๊ทผ์€ ์—†์Šต๋‹ˆ๋‹ค.

  • Azure ์„œ๋น„์Šค ๋˜๋Š” Azure์— ํ˜ธ์ŠคํŒ…๋œ ์ž์ฒด ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ˆ์ „ํ•œ ์—ฐ๊ฒฐ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ฉฐ, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๊ณต์œ ํ•˜๋Š” ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์„œ๋น„์Šค ์—”๋“œํฌ์ธํŠธ์™€ ๋‹ฌ๋ฆฌ VNet ๋‚ด์˜ ํ”„๋ผ์ด๋น— ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ†ตํ•ด ๋” ์„ธ๋ถ„ํ™”๋œ ์ ‘๊ทผ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด, ์„œ๋น„์Šค ์—”๋“œํฌ์ธํŠธ์™€ ํ”„๋ผ์ด๋น— ๋งํฌ ๋ชจ๋‘ Azure ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ˆ์ „ํ•œ ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ํ”„๋ผ์ด๋น— ๋งํฌ๋Š” ์„œ๋น„์Šค๋ฅผ ๊ณต์šฉ ์ธํ„ฐ๋„ท์— ๋…ธ์ถœํ•˜์ง€ ์•Š๊ณ  ํ”„๋ผ์ด๋น—ํ•˜๊ฒŒ ์ ‘๊ทผํ•˜๋„๋ก ๋ณด์žฅํ•จ์œผ๋กœ์จ ๋” ๋†’์€ ์ˆ˜์ค€์˜ ๊ฒฉ๋ฆฌ์™€ ๋ณด์•ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ์„œ๋น„์Šค ์—”๋“œํฌ์ธํŠธ๋Š” VNet ๋‚ด์—์„œ ํ”„๋ผ์ด๋น— IP๊ฐ€ ํ•„์š” ์—†๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ์•ˆ์ „ํ•œ Azure ์„œ๋น„์Šค ์ ‘๊ทผ์ด ํ•„์š”ํ•œ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์— ์„ค์ •ํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.

Azure Front Door (AFD) ๋ฐ AFD WAF

Azure Front Door๋Š” ์ „ ์„ธ๊ณ„ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น ๋ฅธ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์•ˆ์ „ํ•œ ์ง„์ž…์ ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๊ธ€๋กœ๋ฒŒ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, ์‚ฌ์ดํŠธ ๊ฐ€์†ํ™”, SSL ์˜คํ”„๋กœ๋“œ ๋ฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฉํ™”๋ฒฝ(WAF) ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๋ฅผ ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋กœ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. Azure Front Door๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์—ฃ์ง€ ์œ„์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง€๋Šฅํ˜• ๋ผ์šฐํŒ…์„ ์ œ๊ณตํ•˜์—ฌ ์ตœ์ ์˜ ์„ฑ๋Šฅ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ URL ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…, ๋‹ค์ค‘ ์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, ์„ธ์…˜ ์นœํ™”์„ฑ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ๋ณด์•ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Azure Front Door WAF๋Š” ์›น ๊ธฐ๋ฐ˜ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณดํ˜ธํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, ๋ฐฑ์—”๋“œ ์ฝ”๋“œ ์ˆ˜์ • ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SQL ์ธ์ ์…˜, ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ… ๋ฐ ๊ธฐํƒ€ ์ผ๋ฐ˜์ ์ธ ๊ณต๊ฒฉ๊ณผ ๊ฐ™์€ ์œ„ํ˜‘์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์ •์˜ ๊ทœ์น™ ๋ฐ ๊ด€๋ฆฌ ๊ทœ์น™ ์„ธํŠธ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

  • ์ „ ์„ธ๊ณ„์— ์‚ฌ์šฉ์ž๋“ค์ด ์žˆ๋Š” ๊ธ€๋กœ๋ฒŒ ๋ถ„์‚ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์‹ญ์‹œ์˜ค. Azure Front Door๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ง€์—ญ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋กœ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๊ณ  ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๋ฉฐ WAF ๊ธฐ๋Šฅ์œผ๋กœ ์›น ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ฐฉ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ์ง€์—ญ์—์„œ ๋‹ค์šดํƒ€์ž„์ด ๋ฐœ์ƒํ•˜๋ฉด Azure Front Door๋Š” ์ž๋™์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋‹ค์Œ ์ตœ์ ์˜ ์œ„์น˜๋กœ ์žฌ๋ผ์šฐํŒ…ํ•˜์—ฌ ๋†’์€ ๊ฐ€์šฉ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์—ด๊ฑฐ

# List Azure Front Door Instances
az network front-door list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# List Front Door WAF Policies
az network front-door waf-policy list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

Azure Application Gateway ๋ฐ Azure Application Gateway WAF

Azure Application Gateway๋Š” ์›น ํŠธ๋ž˜ํ”ฝ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋กœ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ํŠธ๋ž˜ํ”ฝ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ด๋Š” ๋ ˆ์ด์–ด 7 ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, SSL ์ข…๋ฃŒ ๋ฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฉํ™”๋ฒฝ(WAF) ๊ธฐ๋Šฅ์„ ์„œ๋น„์Šค๋กœ ์ œ๊ณตํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐ๋‹ฌ ์ปจํŠธ๋กค๋Ÿฌ(ADC)์ž…๋‹ˆ๋‹ค. ์ฃผ์š” ๊ธฐ๋Šฅ์œผ๋กœ๋Š” URL ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…, ์ฟ ํ‚ค ๊ธฐ๋ฐ˜ ์„ธ์…˜ ์นœํ™”์„ฑ ๋ฐ ๋ณด์•ˆ ์†Œ์ผ“ ๊ณ„์ธต(SSL) ์˜คํ”„๋กœ๋“œ๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๊ธ€๋กœ๋ฒŒ ๋ผ์šฐํŒ… ๋ฐ ๊ฒฝ๋กœ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ

  • ์‚ฌ์šฉ์ž ๊ณ„์ • ๋ฐ ๊ฒฐ์ œ ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ ํ•˜์œ„ ๋„๋ฉ”์ธ์„ ํฌํ•จํ•˜๋Š” ์ „์ž ์ƒ๊ฑฐ๋ž˜ ์›น์‚ฌ์ดํŠธ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์‹ญ์‹œ์˜ค. Azure Application Gateway๋Š” URL ๊ฒฝ๋กœ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์›น ์„œ๋ฒ„๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, example.com/accounts๋กœ์˜ ํŠธ๋ž˜ํ”ฝ์€ ์‚ฌ์šฉ์ž ๊ณ„์ • ์„œ๋น„์Šค๋กœ, example.com/pay๋กœ์˜ ํŠธ๋ž˜ํ”ฝ์€ ๊ฒฐ์ œ ์ฒ˜๋ฆฌ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  WAF ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜์‹ญ์‹œ์˜ค.

์—ด๊ฑฐ

# List the Web Application Firewall configurations for your Application Gateways
az network application-gateway waf-config list --gateway-name <AppGatewayName> --resource-group <ResourceGroupName> --query "[].{name:name, firewallMode:firewallMode, ruleSetType:ruleSetType, ruleSetVersion:ruleSetVersion}" -o table

Azure Hub, Spoke & VNet Peering

VNet Peering๋Š” Azure์˜ ๋„คํŠธ์›Œํ‚น ๊ธฐ๋Šฅ์œผ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ(VNet)๋ฅผ ์ง์ ‘์ ์ด๊ณ  ์›ํ™œํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. VNet ํ”ผ์–ด๋ง์„ ํ†ตํ•ด ํ•œ VNet์˜ ๋ฆฌ์†Œ์Šค๋Š” ๋งˆ์น˜ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋‹ค๋ฅธ VNet์˜ ๋ฆฌ์†Œ์Šค์™€ ๊ฐœ์ธ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VNet Peering์€ ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋„คํŠธ์›Œํฌ์™€๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ดํŠธ ๊ฐ„ VPN ๋˜๋Š” Azure ExpressRoute๋ฅผ ์„ค์ •ํ•˜์—ฌ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Azure Hub and Spoke๋Š” Azure์—์„œ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์กฐ์งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€์ž…๋‹ˆ๋‹ค. "ํ—ˆ๋ธŒ"๋Š” ์„œ๋กœ ๋‹ค๋ฅธ "์Šคํฌํฌ" ๊ฐ„์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ œ์–ดํ•˜๊ณ  ๋ผ์šฐํŒ…ํ•˜๋Š” ์ค‘์•™ ์ง€์ ์ž…๋‹ˆ๋‹ค. ํ—ˆ๋ธŒ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋„คํŠธ์›Œํฌ ๊ฐ€์ƒ ์žฅ์น˜(NVA), Azure VPN Gateway, Azure Firewall ๋˜๋Š” Azure Bastion๊ณผ ๊ฐ™์€ ๊ณต์œ  ์„œ๋น„์Šค๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. "์Šคํฌํฌ"๋Š” ์›Œํฌ๋กœ๋“œ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ณ  VNet ํ”ผ์–ด๋ง์„ ์‚ฌ์šฉํ•˜์—ฌ ํ—ˆ๋ธŒ์— ์—ฐ๊ฒฐ๋˜๋Š” VNet์ž…๋‹ˆ๋‹ค, ์ด๋ฅผ ํ†ตํ•ด ํ—ˆ๋ธŒ ๋‚ด์˜ ๊ณต์œ  ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ ์—ฌ๋Ÿฌ VNet์— ๊ฑธ์ณ ์žˆ๋Š” ์—ฌ๋Ÿฌ ์›Œํฌ๋กœ๋“œ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณตํ†ต ์„œ๋น„์Šค๋ฅผ ์ค‘์•™ ์ง‘์ค‘ํ™”ํ•˜์—ฌ ๋ณต์žก์„ฑ์„ ์ค„์ด๊ณ  ๊น”๋”ํ•œ ๋„คํŠธ์›Œํฌ ๋ ˆ์ด์•„์›ƒ์„ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค.

Azure์—์„œ VNET ํ”ผ์–ด๋ง์€ ๋น„์ „์ด์ „์ ์ž…๋‹ˆ๋‹ค, ์ฆ‰ ์Šคํฌํฌ 1์ด ์Šคํฌํฌ 2์— ์—ฐ๊ฒฐ๋˜๊ณ  ์Šคํฌํฌ 2๊ฐ€ ์Šคํฌํฌ 3์— ์—ฐ๊ฒฐ๋˜์–ด๋„ ์Šคํฌํฌ 1์€ ์Šคํฌํฌ 3๊ณผ ์ง์ ‘ ํ†ต์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Examples

  • ํŒ๋งค, ์ธ์‚ฌ ๋ฐ ๊ฐœ๋ฐœ๊ณผ ๊ฐ™์€ ๋ณ„๋„์˜ ๋ถ€์„œ๋ฅผ ๊ฐ€์ง„ ํšŒ์‚ฌ๋ฅผ ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค. ๊ฐ ๋ถ€์„œ๋Š” ์ž์ฒด VNet(์Šคํฌํฌ)์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ VNet์€ ์ค‘์•™ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋ฐฉํ™”๋ฒฝ ๋ฐ ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด์™€ ๊ฐ™์€ ๊ณต์œ  ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค, ์ด ๋ชจ๋“  ๊ฒƒ์€ ๋‹ค๋ฅธ VNet(ํ—ˆ๋ธŒ)์— ์œ„์น˜ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค. Hub and Spoke ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๊ฐ ๋ถ€์„œ๋Š” ๊ณต์œ  ๋ฆฌ์†Œ์Šค๋ฅผ ํ—ˆ๋ธŒ VNet์„ ํ†ตํ•ด ์•ˆ์ „ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์šฉ ์ธํ„ฐ๋„ท์— ๋…ธ์ถœ์‹œํ‚ค๊ฑฐ๋‚˜ ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Enumeration

# List all VNets in your subscription
az network vnet list --query "[].{name:name, location:location, addressSpace:addressSpace}" -o table

# List VNet peering connections for a given VNet
az network vnet peering list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, peeringState:peeringState, remoteVnetId:remoteVnetId}" -o table

# List Shared Resources (e.g., Azure Firewall) in the Hub
az network firewall list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

Site-to-Site VPN

Azure์˜ Site-to-Site VPN์€ ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋„คํŠธ์›Œํฌ๋ฅผ Azure ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ(VNet)์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋ฉฐ, Azure ๋‚ด์˜ VM๊ณผ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์—ฐ๊ฒฐ์€ ๋‘ ๋„คํŠธ์›Œํฌ ๊ฐ„์˜ ํŠธ๋ž˜ํ”ฝ์„ ์•”ํ˜ธํ™”ํ•˜๋Š” VPN ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํ†ตํ•ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

  • ๋‰ด์š•์— ๋ณธ์‚ฌ๊ฐ€ ์žˆ๋Š” ํ•œ ๊ธฐ์—…์€ Azure์—์„œ ๊ฐ€์ƒํ™”๋œ ์›Œํฌ๋กœ๋“œ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” VNet์— ์•ˆ์ „ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Site-to-Site VPN์„ ์„ค์ •ํ•จ์œผ๋กœ์จ, ํšŒ์‚ฌ๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ์„œ๋ฒ„์™€ Azure VM ๊ฐ„์˜ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‘ ํ™˜๊ฒฝ ๋ชจ๋‘์—์„œ ๋ฆฌ์†Œ์Šค์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ๋งˆ์น˜ ๋™์ผํ•œ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์—ด๊ฑฐ

# List VPN Gateways
az network vnet-gateway list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

# List VPN Connections
az network vpn-connection list --gateway-name <VpnGatewayName> --resource-group <ResourceGroupName> --query "[].{name:name, connectionType:connectionType, connectionStatus:connectionStatus}" -o table

Azure ExpressRoute

Azure ExpressRoute๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ์ธํ”„๋ผ์™€ Azure ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๊ฐ„์˜ ๊ฐœ์ธ์ ์ด๊ณ  ์ „์šฉ์˜ ๊ณ ์† ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ด ์—ฐ๊ฒฐ์€ ์—ฐ๊ฒฐ ์ œ๊ณต์ž๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง€๋ฉฐ, ๊ณต์šฉ ์ธํ„ฐ๋„ท์„ ์šฐํšŒํ•˜์—ฌ ์ผ๋ฐ˜ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ๋ณด๋‹ค ๋” ๋†’์€ ์‹ ๋ขฐ์„ฑ, ๋” ๋น ๋ฅธ ์†๋„, ๋” ๋‚ฎ์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ๋ฐ ๋” ๋†’์€ ๋ณด์•ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

  • ๋‹ค๊ตญ์  ๊ธฐ์—…์€ ๋ฐ์ดํ„ฐ์˜ ๋†’์€ ์–‘๊ณผ ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰์˜ ํ•„์š”์„ฑ์œผ๋กœ ์ธํ•ด Azure ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ผ๊ด€๋˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํšŒ์‚ฌ๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋ฅผ Azure์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Azure ExpressRoute๋ฅผ ์„ ํƒํ•˜์—ฌ, ์ผ์ผ ๋ฐฑ์—… ๋ฐ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ณผ ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ํ–ฅ์ƒ๋œ ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ๋ฐ ์†๋„๋กœ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์—ด๊ฑฐ

# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table
HackTricks ์ง€์›ํ•˜๊ธฐ

Last updated