La lliçó anterior va acabar amb una constatació incòmoda: tot el que ha desplegat Contoso Airlines fins ara —les VM del motor heretat, el conjunt d'escalat de l'API, les aplicacions d'App Service i el compte d'emmagatzematge de targetes— es comunica per internet. Funciona, però cap arquitectura seriosa no es queda així. I arreglar-ho després és molt més car que fer-ho bé des del principi, perquè l'espai d'adreces d'una xarxa virtual condiciona tot el que s'hi connecti durant anys.
Per això tota arquitectura seriosa comença per la xarxa. Canviar la mida d'una VM costa dos minuts; canviar el rang d'adreces d'una xarxa virtual amb cent recursos a dins i una VPN contra dues oficines és un projecte amb tall de servei.
En aquesta lliçó dissenyaràs i desplegaràs la xarxa completa de Contoso: l'espai d'adreces de vnet-contoso-pro amb l'aritmètica CIDR explicada des de zero, les seves quatre subxarxes, els grups de seguretat de xarxa que obren només l'imprescindible, la resolució DNS privada, l'aparellament entre xarxes amb el patró hub-and-spoke, la diferència decisiva entre punts de connexió de servei i Azure Private Link, com es connecta App Service a la xarxa i per què ningú no hauria d'exposar SSH a internet tenint Azure Bastion.
Avís de cost: les xarxes virtuals, les subxarxes i els NSG no costen res. Sí que costen els punts de connexió privats (per hora i per dades processades), les IP públiques estàtiques i, sobretot, Azure Bastion, que es factura per hora des del moment en què existeix. Al final tens la neteja.
Contingut
- Per què la xarxa va primer
- Xarxes virtuals i espai d'adreces
- Aritmètica CIDR sense dolor
- Disseny de subxarxes de
vnet-contoso-pro - Adreces reservades per Azure a cada subxarxa
- Grups de seguretat de xarxa (NSG)
- Etiquetes de servei i grups de seguretat d'aplicació
- IP públiques i privades, estàtiques i dinàmiques
- DNS a Azure i zones DNS privades
- Aparellament de xarxes virtuals i hub-and-spoke
- Punts de connexió de servei davant d'Azure Private Link
- Integració d'App Service amb la xarxa virtual
- Azure Bastion davant d'exposar SSH i RDP
- Verificació amb Network Watcher
- Topologia completa i neteja
- Errors Comuns i Consells
- Exercicis
- Conclusió
- Per què la xarxa va primer
Una xarxa virtual (VNet) és la teva xarxa privada dins d'Azure: un espai d'adreces IP aïllat i controlat per tu, on col·loques recursos que es veuen entre ells i pel qual decideixes què entra i què surt.
El que la xarxa determina, i per això va primer:
| Decisió de xarxa | Què condiciona |
|---|---|
| Espai d'adreces | Amb quines xarxes locals et podràs connectar sense encavalcaments, per sempre |
| Mida de les subxarxes | Quants recursos hi caben; ampliar una subxarxa amb recursos a dins és problemàtic |
| Segmentació | Què pot parlar amb què quan algú entri on no ha d'entrar |
| Connectivitat privada | Si les teves dades viatgen per internet o no surten mai de la xarxa de Microsoft |
| Regió | Una VNet viu en una regió; es connecta a d'altres per aparellament |
I un avís sobre el que no pots fer: dues xarxes amb espais d'adreces encavalcats no es poden aparellar ni unir per VPN. Si tries 10.0.0.0/16 perquè és l'exemple de tots els tutorials, i la teva oficina de Barcelona fa servir 10.0.0.0/16, has creat un problema que només s'arregla renumerant una de les dues.
- Xarxes virtuals i espai d'adreces
Una VNet té un o diversos espais d'adreces en notació CIDR, presos dels rangs privats de l'RFC 1918:
| Rang privat | Adreces | Ús habitual |
|---|---|---|
10.0.0.0/8 |
16,7 milions | Xarxes corporatives grans; el més utilitzat a Azure |
172.16.0.0/12 |
1 milió | Xarxes mitjanes |
192.168.0.0/16 |
65.536 | Xarxes domèstiques i petites oficines |
Pla d'adreçament de Contoso Airlines, decidit per la Marta Ríos amb la vista posada en la VPN amb les oficines (lliçó 02-06):
| Xarxa | Espai | Ús |
|---|---|---|
vnet-contoso-hub-pro |
10.10.0.0/16 |
Concentrador: porta d'enllaç VPN, Bastion, serveis compartits |
vnet-contoso-pro |
10.20.0.0/16 |
Radi de producció: web, aplicació, dades, gestió |
vnet-contoso-dev |
10.30.0.0/16 |
Radi de desenvolupament |
| Oficina de Barcelona | 10.100.0.0/16 |
Xarxa local existent |
| Oficina de Palma | 10.101.0.0/16 |
Xarxa local existent |
Observa la disciplina: blocs /16 separats i res encavalcat, amb forat reservat entre ells per créixer. Això no costa res ara i evita una migració dolorosa d'aquí a tres anys.
GRUP_XARXA="rg-contoso-red-pro" # el grup de xarxa de llarga durada del modul 1
REGIO="westeurope"
ETIQUETES=(entorno=produccion proyecto=contoso-reservas centro-coste=CC-1042
[email protected] criticidad=alta)
az network vnet create \
--resource-group "${GRUP_XARXA}" \
--name vnet-contoso-pro \
--location "${REGIO}" \
--address-prefixes 10.20.0.0/16 \
--tags "${ETIQUETES[@]}" \
--output tableRecorda per què la xarxa viu a rg-contoso-red-pro i no al costat de les aplicacions: el criteri d'agrupació de la lliçó 01-05 era cicle de vida + entorn, i la xarxa sobreviu a moltes generacions d'aplicacions.
- Aritmètica CIDR sense dolor
Si CIDR ja et resulta natural, salta a l'apartat següent. Si no, aquest és el mínim imprescindible i n'hi ha prou d'entendre tres idees.
Idea 1: el número després de la barra són els bits fixos. Una adreça IPv4 té 32 bits. A 10.20.1.0/24, els 24 primers bits són la xarxa (fixos) i els 8 restants identifiquen l'equip (variables).
Idea 2: com més bits fixos, més petita és la xarxa. Una /24 és més petita que una /16. El compte és directe: 2^(32 - prefix) adreces.
| Prefix | Adreces totals | Utilitzables a Azure (−5) | Equivalent |
|---|---|---|---|
/16 |
65.536 | 65.531 | Una xarxa virtual completa |
/20 |
4.096 | 4.091 | Un bloc gran de subxarxes |
/24 |
256 | 251 | Una subxarxa típica |
/26 |
64 | 59 | Subxarxa petita (mínim per a Bastion) |
/27 |
32 | 27 | Mínim per a GatewaySubnet |
/29 |
8 | 3 | La subxarxa més petita permesa a Azure |
Idea 3: per trossejar, s'avança de bloc en bloc. Una /24 cobreix 256 adreces, així que dins de 10.20.0.0/16 les subxarxes /24 van saltant d'una en una al tercer octet:
10.20.0.0/16 → de 10.20.0.0 a 10.20.255.255 (65.536 adreces) ├── 10.20.1.0/24 → 10.20.1.0 a 10.20.1.255 ├── 10.20.2.0/24 → 10.20.2.0 a 10.20.2.255 ├── 10.20.3.0/24 → 10.20.3.0 a 10.20.3.255 └── 10.20.4.0/24 → 10.20.4.0 a 10.20.4.255
I si una subxarxa necessita menys, es trosseja amb prefixos més grans. Dins de 10.20.250.0/24:
10.20.250.0/26 → 10.20.250.0 a 10.20.250.63 (64 adreces) 10.20.250.64/26 → 10.20.250.64 a 10.20.250.127 10.20.250.128/26 → 10.20.250.128 a 10.20.250.191 10.20.250.192/26 → 10.20.250.192 a 10.20.250.255
Regla mental que resol el 90 % dels casos del dia a dia: /24 és "un bloc de 256 amb el mateix tercer octet". Planifica amb /24 llevat que sàpigues que necessites una altra cosa, i deixa forats entre subxarxes per créixer.
- Disseny de subxarxes de
vnet-contoso-pro
vnet-contoso-proUna subxarxa és una porció de l'espai d'adreces de la xarxa virtual on es col·loquen realment els recursos. Se segmenta per funció, perquè la segmentació és el que permet aplicar regles diferents a cada capa.
| Subxarxa | Rang | Què conté | Qui li parla |
|---|---|---|---|
snet-web |
10.20.1.0/24 |
Front-end públic, Application Gateway | Internet (només 443) |
snet-app |
10.20.2.0/24 |
API de Disponibilitat, integració d'App Service | Només snet-web |
snet-datos |
10.20.3.0/24 |
Punts de connexió privats de SQL i Storage | Només snet-app |
snet-gestion |
10.20.4.0/24 |
VM del motor heretat, servidors d'administració | Només snet-gestion i Bastion |
AzureBastionSubnet |
10.20.250.0/26 |
Azure Bastion (nom obligatori) | Servei gestionat |
GatewaySubnet |
10.20.255.0/27 |
Porta d'enllaç VPN (nom obligatori, lliçó 02-06) | Servei gestionat |
GRUP_XARXA="rg-contoso-red-pro"
VNET="vnet-contoso-pro"
# Subxarxes funcionals.
for PARELL in "snet-web:10.20.1.0/24" "snet-app:10.20.2.0/24" \
"snet-datos:10.20.3.0/24" "snet-gestion:10.20.4.0/24"; do
NOM="${PARELL%%:*}"
RANG="${PARELL##*:}"
az network vnet subnet create \
--resource-group "${GRUP_XARXA}" \
--vnet-name "${VNET}" \
--name "${NOM}" \
--address-prefixes "${RANG}" \
--output none
echo "Subxarxa ${NOM} creada amb ${RANG}"
done
# Subxarxes de serveis gestionats: el nom es obligatori i literal.
az network vnet subnet create -g "${GRUP_XARXA}" --vnet-name "${VNET}" \
--name AzureBastionSubnet --address-prefixes 10.20.250.0/26 --output none
az network vnet subnet create -g "${GRUP_XARXA}" --vnet-name "${VNET}" \
--name GatewaySubnet --address-prefixes 10.20.255.0/27 --output none
# Comprovacio.
az network vnet subnet list -g "${GRUP_XARXA}" --vnet-name "${VNET}" \
--query "[].{Subxarxa:name, Rang:addressPrefix}" --output tableNoms reservats que cal respectar al peu de la lletra, perquè Azure els busca literalment:
| Nom obligatori | Servei | Mida mínima recomanada |
|---|---|---|
GatewaySubnet |
Porta d'enllaç de VPN o ExpressRoute | /27 (millor /26) |
AzureBastionSubnet |
Azure Bastion | /26 |
AzureFirewallSubnet |
Azure Firewall | /26 |
I una restricció amb conseqüències: una subxarxa es pot ampliar, però no si hi ha recursos que ho impedeixin, i no es pot reduir amb recursos a dins. Dimensiona amb marge.
- Adreces reservades per Azure a cada subxarxa
En una subxarxa /24 no disposes de 256 adreces ni de 254, sinó de 251. Azure en reserva cinc a cada subxarxa:
Adreça (a 10.20.1.0/24) |
Reservada per a |
|---|---|
10.20.1.0 |
Identificador de xarxa (estàndard) |
10.20.1.1 |
Porta d'enllaç predeterminada d'Azure |
10.20.1.2 |
Assignada a Azure DNS (mapatge del servidor virtual) |
10.20.1.3 |
Reservada per a ús futur d'Azure |
10.20.1.255 |
Difusió (broadcast, estàndard) |
Per tant, la primera adreça assignable de snet-web és 10.20.1.4. Això importa quan dimensiones al límit: una subxarxa /29 té 8 adreces i només 3 utilitzables. Si has planificat «vuit servidors en una /29», no hi caben.
- Grups de seguretat de xarxa (NSG)
Un grup de seguretat de xarxa és una llista de regles de filtratge amb estat que s'aplica a una subxarxa o a una NIC. Amb estat vol dir que si permets una connexió d'entrada, la resposta de sortida es permet automàticament; no cal escriure la regla inversa.
Cada regla té:
| Camp | Què és |
|---|---|
| Prioritat | De 100 a 4096. S'avalua de menor a major i la primera coincidència guanya |
| Origen / Destinació | IP, CIDR, etiqueta de servei o grup de seguretat d'aplicació |
| Ports | D'origen (gairebé sempre *) i de destinació |
| Protocol | Tcp, Udp, Icmp o * |
| Direcció | Entrada (Inbound) o Sortida (Outbound) |
| Acció | Allow o Deny |
Regles per defecte
Tot NSG porta regles invisibles que no es poden esborrar, només sobreescriure amb prioritats més baixes:
| Prioritat | Nom | Efecte |
|---|---|---|
| 65000 | AllowVnetInBound |
Permet tot el trànsit dins de la xarxa virtual |
| 65001 | AllowAzureLoadBalancerInBound |
Permet les sondes del balancejador |
| 65500 | DenyAllInBound |
Denega tot allò altre que entri |
| 65000 | AllowVnetOutBound |
Permet la sortida dins de la xarxa virtual |
| 65001 | AllowInternetOutBound |
Permet la sortida a internet |
| 65500 | DenyAllOutBound |
Denega la resta de la sortida |
Dues conseqüències que cal interioritzar:
- Per defecte, tot el trànsit dins de la VNet està permès, encara que siguin subxarxes diferents. La segmentació no és automàtica: cal escriure-la.
- Per defecte, tot pot sortir a internet. Si ho vols impedir, cal denegar-ho explícitament.
Segmentar les capes de Contoso
GRUP_XARXA="rg-contoso-red-pro"
REGIO="westeurope"
# --- NSG de la capa web ---
az network nsg create -g "${GRUP_XARXA}" -n nsg-snet-web -l "${REGIO}" --output none
# Permetre HTTPS des d'internet.
az network nsg rule create -g "${GRUP_XARXA}" --nsg-name nsg-snet-web \
--name permitir-https-internet --priority 100 \
--direction Inbound --access Allow --protocol Tcp \
--source-address-prefixes Internet --source-port-ranges '*' \
--destination-address-prefixes '*' --destination-port-ranges 443 \
--description "Transit public de Contoso Reserves" --output none
# Denegar HTTP en clar: l'aplicacio redirigeix, pero la xarxa no ho accepta.
az network nsg rule create -g "${GRUP_XARXA}" --nsg-name nsg-snet-web \
--name denegar-http-plano --priority 110 \
--direction Inbound --access Deny --protocol Tcp \
--source-address-prefixes Internet --destination-port-ranges 80 \
--output none
az network vnet subnet update -g "${GRUP_XARXA}" --vnet-name vnet-contoso-pro \
--name snet-web --network-security-group nsg-snet-web --output none
# --- NSG de la capa d'aplicacio: nomes accepta transit des de la web ---
az network nsg create -g "${GRUP_XARXA}" -n nsg-snet-app -l "${REGIO}" --output none
az network nsg rule create -g "${GRUP_XARXA}" --nsg-name nsg-snet-app \
--name permitir-api-desde-web --priority 100 \
--direction Inbound --access Allow --protocol Tcp \
--source-address-prefixes 10.20.1.0/24 --destination-port-ranges 8080 \
--description "API de Disponibilitat nomes des de snet-web" --output none
# Denegar explicitament la resta del transit intern (anul·la AllowVnetInBound).
az network nsg rule create -g "${GRUP_XARXA}" --nsg-name nsg-snet-app \
--name denegar-resto-vnet --priority 4000 \
--direction Inbound --access Deny --protocol '*' \
--source-address-prefixes VirtualNetwork --destination-port-ranges '*' \
--output none
az network vnet subnet update -g "${GRUP_XARXA}" --vnet-name vnet-contoso-pro \
--name snet-app --network-security-group nsg-snet-app --output noneLa regla denegar-resto-vnet amb prioritat 4000 és la peça clau de la segmentació: s'avalua abans que la regla per defecte 65000 que permetia tot el trànsit intern, però després que la regla 100 que autoritza la capa web. El resultat és exactament el que buscàvem: snet-app només escolta snet-web.
Comprovació de les regles efectives, incloses les invisibles:
az network nsg rule list -g "${GRUP_XARXA}" --nsg-name nsg-snet-app \
--include-default \
--query "sort_by([].{Prioritat:priority, Nom:name, Dir:direction, Accio:access, Origen:sourceAddressPrefix, Port:destinationPortRange}, &Prioritat)" \
--output table
- Etiquetes de servei i grups de seguretat d'aplicació
Escriure rangs d'IP a mà envelleix malament: les IP dels serveis d'Azure canvien i les de les teves màquines també. Azure ofereix dues abstraccions per no dependre'n.
Etiquetes de servei
Una etiqueta de servei representa un conjunt de prefixos d'IP que Microsoft manté actualitzat per tu.
| Etiqueta | Què representa |
|---|---|
Internet |
Tot el que és fora de la teva xarxa |
VirtualNetwork |
La teva xarxa virtual, xarxes aparellades i xarxes locals connectades |
AzureLoadBalancer |
El balancejador d'Azure (necessari per a les sondes d'estat) |
Storage / Storage.WestEurope |
Azure Storage, global o d'una regió |
Sql / Sql.WestEurope |
Azure SQL Database |
AzureCloud |
Tots els serveis públics d'Azure |
AzureMonitor |
Els punts de connexió de supervisió (mòdul 7) |
# Permetre sortida NOMES cap a Azure SQL de West Europe, sense coneixer cap IP.
az network nsg rule create -g "${GRUP_XARXA}" --nsg-name nsg-snet-app \
--name permitir-salida-sql --priority 200 \
--direction Outbound --access Allow --protocol Tcp \
--source-address-prefixes VirtualNetwork \
--destination-address-prefixes Sql.WestEurope \
--destination-port-ranges 1433 --output noneGrups de seguretat d'aplicació (ASG)
Un ASG és una etiqueta lògica que agrupa NIC. En lloc d'escriure regles per rang d'IP, escrius regles entre grups: «el que sigui a asg-web pot parlar amb el que sigui a asg-api». Quan afegeixes una màquina al grup, hereta les regles sense tocar el NSG.
# 1. Crear els grups.
az network asg create -g "${GRUP_XARXA}" -n asg-web -l "${REGIO}" --output none
az network asg create -g "${GRUP_XARXA}" -n asg-api -l "${REGIO}" --output none
# 2. Regla entre grups, sense ni una sola IP escrita.
az network nsg rule create -g "${GRUP_XARXA}" --nsg-name nsg-snet-app \
--name permitir-web-a-api --priority 90 \
--direction Inbound --access Allow --protocol Tcp \
--source-asgs asg-web --destination-asgs asg-api \
--destination-port-ranges 8080 --output none
# 3. Associar una NIC al seu grup.
az network nic ip-config update \
-g rg-contoso-reservas-pro --nic-name nic-api-01 --name ipconfig1 \
--application-security-groups asg-api --output noneÉs la manera de mantenir regles llegibles quan la xarxa creix: es llegeixen com a frases del negoci, no com a llistes d'octets.
- IP públiques i privades, estàtiques i dinàmiques
| Tipus | Assignació | Comportament | Quan fer-la servir |
|---|---|---|---|
| Privada dinàmica | Azure la tria de la subxarxa | Es conserva mentre la VM existeixi; pot canviar en desassignar i reassignar | Predeterminada per a VM normals |
| Privada estàtica | La tries tu | Fixa sempre | Controladors de domini, servidors DNS, appliances |
| Pública dinàmica | Azure l'assigna en arrencar | Canvia en desassignar la VM | Només proves |
| Pública estàtica | Reservada per a tu | Fixa; es factura encara que la VM estigui apagada | Balancejadors, portes d'enllaç, qualsevol cosa en un registre DNS |
# IP privada estatica per a la VM del motor heretat.
az network nic ip-config update \
--resource-group rg-contoso-reservas-pro \
--nic-name nic-motor-disponibilidad-01 \
--name ipconfig1 \
--private-ip-address 10.20.4.10 \
--output noneSobre les SKU d'IP pública: Standard és l'actual (estàtica sempre, tancada per defecte —necessita un NSG que permeti el trànsit explícitament— i compatible amb zones). La SKU Basic està retirada. Fes servir sempre Standard.
Un matís de sortida a internet que confon molta gent: una VM sense IP pública pot continuar sortint a internet mitjançant l'accés sortint predeterminat d'Azure, amb una IP que no controles i que Microsoft està retirant per a les xarxes noves. Per a una sortida predictible i auditable es fa servir un NAT Gateway, que dona a tota la subxarxa una IP de sortida fixa i evita l'esgotament de ports SNAT.
- DNS a Azure i zones DNS privades
Dins d'una VNet, Azure ofereix resolució DNS automàtica: les màquines de la mateixa xarxa es resolen pel seu nom d'amfitrió sense que configuris res, a través del servidor virtual 168.63.129.16 (una adreça que apareix a tots els diagnòstics d'Azure i convé reconèixer).
Aquesta resolució automàtica té límits: no funciona entre xarxes aparellades ni resol noms de serveis privats. Per a això hi ha les zones DNS privades.
# 1. Zona privada propia de Contoso.
az network private-dns zone create \
--resource-group rg-contoso-red-pro \
--name interno.contosoairlines.example \
--output none
# 2. Vincular la zona a la xarxa virtual, amb registre automatic de les VM.
az network private-dns link vnet create \
--resource-group rg-contoso-red-pro \
--zone-name interno.contosoairlines.example \
--name enlace-vnet-contoso-pro \
--virtual-network vnet-contoso-pro \
--registration-enabled true \
--output none
# 3. Registre manual per al motor heretat.
az network private-dns record-set a add-record \
--resource-group rg-contoso-red-pro \
--zone-name interno.contosoairlines.example \
--record-set-name motor \
--ipv4-address 10.20.4.10 \
--output noneAra qualsevol recurs de la xarxa resol motor.interno.contosoairlines.example a 10.20.4.10. Amb --registration-enabled true, a més, les VM es registren soles en crear-se.
Les zones privades són imprescindibles per a Private Link: són el mecanisme pel qual sql-contoso-reservas-pro.database.windows.net deixa de resoldre's a una IP pública i passa a resoldre's a una IP de la teva subxarxa. Ho veiem ara.
El DNS públic (registrar contosoairlines.example i publicar-ne els registres al món) és Azure DNS, i es tracta a la lliçó 02-06.
- Aparellament de xarxes virtuals i hub-and-spoke
L'aparellament (peering) connecta dues xarxes virtuals perquè es vegin com si fossin una de sola: trànsit privat per la xarxa troncal de Microsoft, latència baixa, sense portes d'enllaç ni internet pel mig.
Característiques que cal conèixer:
- Funciona dins d'una regió i entre regions (aparellament global).
- No és transitiu: si A s'aparella amb B i B amb C, A no veu C. Aquest és el punt que més sorprèn i el que dona forma a la topologia hub-and-spoke.
- Els espais d'adreces no es poden encavalcar.
- Es factura per dades transferides en tots dos sentits.
- Cal crear-lo en els dos sentits: dues ordres, una per xarxa.
GRUP_XARXA="rg-contoso-red-pro"
# Del concentrador al radi de produccio.
az network vnet peering create \
--resource-group "${GRUP_XARXA}" \
--name peer-hub-a-pro \
--vnet-name vnet-contoso-hub-pro \
--remote-vnet vnet-contoso-pro \
--allow-vnet-access \
--allow-gateway-transit \
--output none
# Del radi al concentrador (obligatori: l'aparellament es bidireccional per definicio).
az network vnet peering create \
--resource-group "${GRUP_XARXA}" \
--name peer-pro-a-hub \
--vnet-name vnet-contoso-pro \
--remote-vnet vnet-contoso-hub-pro \
--allow-vnet-access \
--use-remote-gateways \
--output noneLes dues opcions importants: --allow-gateway-transit al concentrador vol dir «pots fer servir la meva porta d'enllaç VPN», i --use-remote-gateways al radi vol dir «la faré servir». Gràcies a aquesta parella, una sola porta d'enllaç VPN al concentrador dona connectivitat a tots els radis, en lloc de pagar-ne una per xarxa. És l'argument econòmic principal del patró.
El patró hub-and-spoke
graph TD
OFI["Oficines Barcelona i Palma<br/>10.100.0.0/16 i 10.101.0.0/16"] -->|VPN lloc a lloc| GW["Porta d'enllac VPN<br/>(llico 02-06)"]
GW --> HUB["vnet-contoso-hub-pro<br/>10.10.0.0/16<br/>Bastion, serveis compartits"]
HUB -->|peering| PRO["vnet-contoso-pro<br/>10.20.0.0/16<br/>produccio"]
HUB -->|peering| DEV["vnet-contoso-dev<br/>10.30.0.0/16<br/>desenvolupament"]
PRO -.->|"sense peering directe:<br/>produccio i desenvolupament<br/>NO es veuen"| DEV
Com que l'aparellament no és transitiu, producció i desenvolupament no es veuen entre ells encara que tots dos vegin el concentrador. Això no és una limitació: és exactament la propietat d'aïllament que volem, i surt de franc.
- Punts de connexió de servei davant d'Azure Private Link
Aquí hi ha la decisió més important de la lliçó, i la que resol el problema amb què obríem: la base de dades i el compte d'emmagatzematge de Contoso són accessibles des d'internet.
| Aspecte | Punt de connexió de servei | Punt de connexió privat (Private Link) |
|---|---|---|
| Què fa | Estén la identitat de la teva subxarxa cap al servei, que continua tenint la seva IP pública | Crea una NIC amb IP privada de la teva subxarxa per a aquest servei |
| Adreça de destinació | La IP pública del servei (encara que el trànsit no surti a internet) | Una IP privada de snet-datos |
| El servei continua exposat a internet? | Sí, només restringit pel tallafoc del servei | No, pots tancar l'accés públic del tot |
| Accés des de la xarxa local per VPN | No funciona | Sí |
| Abast | Tota la subxarxa cap a tot el servei | Un recurs concret (aquest compte, aquesta base de dades) |
| DNS | No canvia | Requereix zona DNS privada per resoldre al privat |
| Cost | Gratis | Per hora i per dades processades |
La diferència pràctica que decideix: amb un punt de connexió de servei, algú amb la clau del compte d'emmagatzematge pot continuar accedint-hi des de qualsevol lloc autoritzat pel tallafoc; i les oficines connectades per VPN no el poden fer servir. Amb un punt de connexió privat, el recurs té una IP dins de la teva xarxa, es pot tancar del tot al món i les oficines hi arriben per la VPN.
Contoso tria punts de connexió privats per a la base de dades sql-contoso-reservas-pro i per al compte sttarjetascontosopro. El cost afegit és petit comparat amb exposar les dades dels passatgers.
GRUP_XARXA="rg-contoso-red-pro"
VNET="vnet-contoso-pro"
# 1. Desactivar les politiques de xarxa a la subxarxa de dades (requisit de Private Link).
az network vnet subnet update -g "${GRUP_XARXA}" --vnet-name "${VNET}" \
--name snet-datos --disable-private-endpoint-network-policies true --output none
# 2. Punt de connexio privat cap al compte d'emmagatzematge de targetes.
ID_COMPTE=$(az storage account show -g rg-contoso-reservas-pro \
-n sttarjetascontosopro --query id -o tsv)
az network private-endpoint create \
--resource-group "${GRUP_XARXA}" \
--name pe-storage-tarjetas \
--vnet-name "${VNET}" --subnet snet-datos \
--private-connection-resource-id "${ID_COMPTE}" \
--group-id blob \
--connection-name conexion-blob-tarjetas \
--output none
# 3. Zona DNS privada del servei: sense aixo, el nom continua resolent a la IP publica.
az network private-dns zone create -g "${GRUP_XARXA}" \
--name "privatelink.blob.core.windows.net" --output none
az network private-dns link vnet create -g "${GRUP_XARXA}" \
--zone-name "privatelink.blob.core.windows.net" \
--name enlace-blob-vnet-pro --virtual-network "${VNET}" \
--registration-enabled false --output none
# 4. Registrar automaticament el punt de connexio a la zona.
az network private-endpoint dns-zone-group create \
--resource-group "${GRUP_XARXA}" \
--endpoint-name pe-storage-tarjetas \
--name grupo-zonas-blob \
--private-dns-zone "privatelink.blob.core.windows.net" \
--zone-name blob --output none
# 5. Tancar l'acces public del compte: ara nomes s'hi arriba per la xarxa.
az storage account update -g rg-contoso-reservas-pro -n sttarjetascontosopro \
--public-network-access Disabled --output noneEl pas 3 és el que més gent oblida i el que provoca la fallada clàssica: crees el punt de connexió privat, tanques l'accés públic i l'aplicació deixa de funcionar, perquè continua resolent el nom a la IP pública que ja està tancada. Sense la zona DNS privada vinculada, Private Link no serveix de res.
Comprovació des d'una VM de la xarxa:
nslookup sttarjetascontosopro.blob.core.windows.net
# Esperat: un CNAME a sttarjetascontosopro.privatelink.blob.core.windows.net
# i una adreca 10.20.3.x (privada), no una IP publica.Les zones privades dels serveis que Contoso farà servir: privatelink.blob.core.windows.net (Storage), privatelink.database.windows.net (SQL, mòdul 3), privatelink.vaultcore.azure.net (Key Vault, 04-03) i privatelink.azurewebsites.net (App Service).
- Integració d'App Service amb la xarxa virtual
Amb App Service cal distingir dues direccions, i confondre-les és font d'hores perdudes.
| Necessitat | Mecanisme | Què fa |
|---|---|---|
| Sortida: que l'aplicació arribi a recursos privats | Integració amb xarxa virtual | Encamina el trànsit de sortida per una subxarxa delegada |
| Entrada: que només es pugui arribar a l'aplicació des de la xarxa | Punt de connexió privat o restriccions d'accés | Treu l'aplicació d'internet |
# 1. Subxarxa dedicada i delegada a App Service (la delegacio es obligatoria
# i la subxarxa no es pot compartir amb altres recursos).
az network vnet subnet create \
-g rg-contoso-red-pro --vnet-name vnet-contoso-pro \
--name snet-integracion-app --address-prefixes 10.20.5.0/24 \
--delegations Microsoft.Web/serverFarms --output none
# 2. Integracio de sortida de la web de reserves.
az webapp vnet-integration add \
-g rg-contoso-reservas-pro -n app-contoso-reservas-pro \
--vnet vnet-contoso-pro --subnet snet-integracion-app --output none
# 3. Entrada restringida per a l'API interna: nomes des de snet-web.
az webapp config access-restriction add \
-g rg-contoso-reservas-pro -n app-contoso-api-disponibilidad-pro \
--rule-name permitir-solo-web --priority 100 \
--action Allow --vnet-name vnet-contoso-pro --subnet snet-web --output noneDetalls pràctics: la integració de sortida requereix nivell Basic o superior, la subxarxa delegada és d'ús exclusiu d'aquell pla, i per defecte només s'encamina cap a adreces privades (per forçar tot el trànsit de sortida per la xarxa s'activa WEBSITE_VNET_ROUTE_ALL=1, que és el que Contoso fa en producció perquè la sortida sigui auditable).
- Azure Bastion davant d'exposar SSH i RDP
A la lliçó 02-01 vam obrir el port 22 a internet amb --nsg-rule SSH i vam avisar que era temporal. Ha arribat el moment de fer-ho bé.
| Aspecte | SSH/RDP amb IP pública | Azure Bastion |
|---|---|---|
| Ports exposats a internet | 22 o 3389, atacats en minuts | Cap |
| IP pública a cada VM | Necessària (i facturada) | No en cal cap |
| Accés | Client SSH o RDP | Navegador (HTTPS) o client natiu per túnel |
| Auditoria | La del sistema operatiu | Sessions registrades a la plataforma |
| Cost | Baix | Per hora, des que existeix |
# Bastion necessita AzureBastionSubnet (/26) i una IP publica Standard.
az network public-ip create -g rg-contoso-red-pro -n ip-bastion-contoso-pro \
--sku Standard --allocation-method Static --output none
az network bastion create \
--resource-group rg-contoso-red-pro \
--name bastion-contoso-pro \
--vnet-name vnet-contoso-pro \
--public-ip-address ip-bastion-contoso-pro \
--location westeurope \
--sku Standard \
--output none
# Connexio SSH sense IP publica a la VM ni port 22 obert.
az network bastion ssh \
--name bastion-contoso-pro \
--resource-group rg-contoso-red-pro \
--target-resource-id "$(az vm show -g rg-contoso-reservas-pro -n vm-motor-disponibilidad-01 --query id -o tsv)" \
--auth-type ssh-key --username azureuser --ssh-key ~/.ssh/contoso_motorAvís de cost important: Bastion es factura per hora mentre existeixi, més el trànsit de sortida. En un laboratori, crea'l, fes-lo servir i esborra'l el mateix dia. En producció, el seu cost es compara favorablement amb el de gestionar IP públiques i sobreviure a un incident per SSH exposat.
Alternativa més barata per a administració puntual: az ssh vm amb Microsoft Entra ID i l'extensió corresponent, o un simple túnel a través d'una VPN de punt a lloc, que és justament el que la Marta Ríos farà servir des de casa (lliçó 02-06).
- Verificació amb Network Watcher
Quan alguna cosa no connecta, endevinar és car. Network Watcher et diu exactament quina regla està bloquejant què.
# 1. Comprovacio de flux IP: aquesta connexio concreta es permet o es denega?
az network watcher test-ip-flow \
--resource-group rg-contoso-reservas-pro \
--vm vm-motor-disponibilidad-01 \
--direction Inbound --protocol TCP \
--local 10.20.4.10:22 --remote 10.20.1.5:60000 \
--output json
# La resposta inclou "access": "Allow"/"Deny" i la regla exacta responsable.
# 2. Regles de seguretat efectives sobre una NIC (suma de NSG de subxarxa i de NIC).
az network nic list-effective-nsg \
--resource-group rg-contoso-reservas-pro \
--name nic-motor-disponibilidad-01 \
--output json
# 3. Solucio de problemes de connexio d'extrem a extrem.
az network watcher test-connectivity \
--resource-group rg-contoso-reservas-pro \
--source-resource vm-motor-disponibilidad-01 \
--dest-address sttarjetascontosopro.privatelink.blob.core.windows.net \
--dest-port 443 \
--output tabletest-ip-flow és l'eina que cal fer servir abans de tocar cap regla: et diu el nom de la regla que decideix, amb la qual cosa deixes de canviar coses a l'atzar. I els registres de flux de NSG, que envien a Log Analytics tot el que es permet i es denega, són la base de l'anàlisi que veuràs a la lliçó 07-02.
- Topologia completa i neteja
graph TB
NET["Internet"] -->|443| WEB
subgraph VNET["vnet-contoso-pro · 10.20.0.0/16"]
WEB["snet-web · 10.20.1.0/24<br/>nsg-snet-web: nomes 443 d'entrada"]
APP["snet-app · 10.20.2.0/24<br/>nsg-snet-app: nomes des de snet-web"]
DAT["snet-datos · 10.20.3.0/24<br/>punts de connexio privats"]
GES["snet-gestion · 10.20.4.0/24<br/>motor heretat, sense IP publica"]
INT["snet-integracion-app · 10.20.5.0/24<br/>delegada a App Service"]
BAS["AzureBastionSubnet · 10.20.250.0/26"]
GWS["GatewaySubnet · 10.20.255.0/27<br/>(llico 02-06)"]
end
WEB --> APP
APP --> DAT
INT --> DAT
DAT -.->|Private Link| SQL["sql-contoso-reservas-pro"]
DAT -.->|Private Link| ST["sttarjetascontosopro"]
BAS --> GES
HUB["vnet-contoso-hub-pro · 10.10.0.0/16"] <-->|peering| VNET
Neteja del que factura:
# 1. Bastion: el mes car d'aquesta llico. Esborra'l tan bon punt acabis.
az network bastion delete -g rg-contoso-red-pro -n bastion-contoso-pro
az network public-ip delete -g rg-contoso-red-pro -n ip-bastion-contoso-pro
# 2. Punts de connexio privats (es facturen per hora).
az network private-endpoint delete -g rg-contoso-red-pro -n pe-storage-tarjetas
# 3. Les VNet, subxarxes i NSG no costen res: poden quedar-s'hi.
# Si tot i aixi vols esborrar-ho tot en un laboratori:
# az group delete --name rg-contoso-red-pro --yes --no-waitComprovació de despesa residual: az network public-ip list --query "[?ipConfiguration==null]" -o table i az network private-endpoint list -o table.
Errors Comuns i Consells
- Fer servir
10.0.0.0/16perquè és l'exemple del tutorial. És el rang que fa servir mitja internet corporativa; el dia que muntis la VPN amb l'oficina, s'encavalcarà. Planifica l'adreçament abans de crear res. - Dimensionar les subxarxes al límit. Azure reserva 5 adreces per subxarxa i ampliar amb recursos a dins és problemàtic. Deixa marge.
- Oblidar els noms obligatoris.
GatewaySubnetiAzureBastionSubnets'escriuen exactament així; amb qualsevol altre nom, el servei no es desplega. - Suposar que les subxarxes estan aïllades per defecte. La regla
AllowVnetInBoundpermet tot el trànsit intern. La segmentació cal escriure-la. - Confondre l'ordre de prioritats. S'avalua de menor a major i la primera coincidència guanya. Una regla
Denyamb prioritat 100 anul·la unAllowamb prioritat 200. - Escriure rangs d'IP on hi cap una etiqueta de servei. Les IP dels serveis d'Azure canvien; les etiquetes s'actualitzen soles.
- Esperar que l'aparellament sigui transitiu. No ho és. En hub-and-spoke, els radis no es veuen entre ells (i normalment això és el que vols).
- Crear l'aparellament en un sol sentit. Queda en estat Initiated i no funciona fins que existeix l'enllaç invers.
- Crear un punt de connexió privat sense la seva zona DNS privada. El nom continua resolent a la IP pública i, en tancar l'accés públic, l'aplicació deixa de funcionar. És l'errada número u de Private Link.
- Deixar Azure Bastion encès en un laboratori. Es factura per hora encara que no el facis servir.
- Depurar connectivitat a força de provar regles.
az network watcher test-ip-flowet dona la regla culpable en una ordre. - Consell: documenta el pla d'adreçament en un fitxer del repositori juntament amb els scripts. La xarxa és la part de l'arquitectura que més gent necessita consultar i menys gent recorda.
- Consell: aplica els NSG a subxarxes, no a NIC individuals, llevat d'excepcions justificades. Les regles per NIC s'obliden i creen forats invisibles.
Exercicis
Exercici 1: planificar l'adreçament
Contoso obre una tercera oficina a Sevilla i vol a més una xarxa virtual per a proves de càrrega, aïllada de producció.
- Assigna espais d'adreces a l'oficina de Sevilla i a la nova xarxa
vnet-contoso-pruebas, coherents amb el pla existent i sense encavalcaments. - Divideix
vnet-contoso-pruebasen tres subxarxes/24amb noms coherents amb la nomenclatura del curs. - Quantes adreces utilitzables té cada subxarxa
/24? I una/27? - Explica per què no pots fer servir
10.20.0.0/16per a la xarxa de proves.
Exercici 2: segmentar amb NSG
Escriu les regles de NSG (amb prioritats) que compleixin exactament aquesta política per a vnet-contoso-pro:
snet-webaccepta 443 des d'internet i res més.snet-appaccepta 8080 només des desnet-web; cap altre trànsit intern.snet-datosaccepta 1433 només des desnet-app.snet-gestionno accepta res des d'internet; només administració des de Bastion.snet-apppot sortir cap a Azure SQL de West Europe, però no cap a la resta d'internet.
Exercici 3: fer privada la base de dades
Descriu, amb les ordres corresponents, els passos perquè sql-contoso-reservas-pro deixi de ser accessible des d'internet i només s'hi arribi des de snet-app:
- Preparar la subxarxa.
- Crear el punt de connexió privat.
- Configurar la resolució DNS.
- Tancar l'accés públic.
- Verificar que la resolució retorna una IP privada.
Explica a més què passaria si et saltessis el pas 3.
Solucions
Solució 1:
- Adreçament coherent amb el pla existent:
| Xarxa | Espai | Motiu |
|---|---|---|
| Oficina de Sevilla | 10.102.0.0/16 |
Segueix la sèrie d'oficines (Barcelona 10.100, Palma 10.101) |
vnet-contoso-pruebas |
10.40.0.0/16 |
Segueix la sèrie de xarxes d'Azure (hub 10.10, pro 10.20, dev 10.30) |
- Subxarxes:
az network vnet create -g rg-contoso-red-pro -n vnet-contoso-pruebas \
--address-prefixes 10.40.0.0/16 --location westeurope --output none
az network vnet subnet create -g rg-contoso-red-pro --vnet-name vnet-contoso-pruebas \
-n snet-web --address-prefixes 10.40.1.0/24 --output none
az network vnet subnet create -g rg-contoso-red-pro --vnet-name vnet-contoso-pruebas \
-n snet-app --address-prefixes 10.40.2.0/24 --output none
az network vnet subnet create -g rg-contoso-red-pro --vnet-name vnet-contoso-pruebas \
-n snet-datos --address-prefixes 10.40.3.0/24 --output none-
Una
/24té 256 adreces, menys les 5 que reserva Azure: 251 utilitzables. Una/27en té 32, menys 5: 27 utilitzables. -
Perquè
10.20.0.0/16ja és l'espai devnet-contoso-pro. Dues xarxes amb rangs encavalcats no es poden aparellar ni connectar per VPN, i l'encaminament seria ambigu. Encara que avui no les aparellessis, reutilitzar el rang tanca aquesta porta per sempre.
Solució 2:
G="rg-contoso-red-pro"
# 1. snet-web: 443 des d'internet, res mes (la denegacio la dona la regla per defecte 65500).
az network nsg rule create -g $G --nsg-name nsg-snet-web -n permitir-https \
--priority 100 --direction Inbound --access Allow --protocol Tcp \
--source-address-prefixes Internet --destination-port-ranges 443 --output none
# 2. snet-app: 8080 nomes des de snet-web; la resta del transit intern, denegat.
az network nsg rule create -g $G --nsg-name nsg-snet-app -n permitir-web \
--priority 100 --direction Inbound --access Allow --protocol Tcp \
--source-address-prefixes 10.20.1.0/24 --destination-port-ranges 8080 --output none
az network nsg rule create -g $G --nsg-name nsg-snet-app -n denegar-resto-vnet \
--priority 4000 --direction Inbound --access Deny --protocol '*' \
--source-address-prefixes VirtualNetwork --destination-port-ranges '*' --output none
# 3. snet-datos: 1433 nomes des de snet-app.
az network nsg rule create -g $G --nsg-name nsg-snet-datos -n permitir-app-sql \
--priority 100 --direction Inbound --access Allow --protocol Tcp \
--source-address-prefixes 10.20.2.0/24 --destination-port-ranges 1433 --output none
az network nsg rule create -g $G --nsg-name nsg-snet-datos -n denegar-resto-vnet \
--priority 4000 --direction Inbound --access Deny --protocol '*' \
--source-address-prefixes VirtualNetwork --destination-port-ranges '*' --output none
# 4. snet-gestion: res d'internet; SSH i RDP nomes des de la subxarxa de Bastion.
az network nsg rule create -g $G --nsg-name nsg-snet-gestion -n permitir-bastion \
--priority 100 --direction Inbound --access Allow --protocol Tcp \
--source-address-prefixes 10.20.250.0/26 --destination-port-ranges 22 3389 --output none
az network nsg rule create -g $G --nsg-name nsg-snet-gestion -n denegar-internet \
--priority 200 --direction Inbound --access Deny --protocol '*' \
--source-address-prefixes Internet --destination-port-ranges '*' --output none
# 5. Sortida de snet-app: nomes Azure SQL de la regio; la resta d'internet, denegat.
az network nsg rule create -g $G --nsg-name nsg-snet-app -n permitir-salida-sql \
--priority 200 --direction Outbound --access Allow --protocol Tcp \
--destination-address-prefixes Sql.WestEurope --destination-port-ranges 1433 --output none
az network nsg rule create -g $G --nsg-name nsg-snet-app -n denegar-salida-internet \
--priority 4000 --direction Outbound --access Deny --protocol '*' \
--destination-address-prefixes Internet --destination-port-ranges '*' --output noneDetall del punt 5: la regla de sortida a SQL ha de tenir prioritat menor (200) que la denegació general (4000), o el trànsit legítim quedaria bloquejat.
Solució 3:
G="rg-contoso-red-pro"; V="vnet-contoso-pro"
# 1. Preparar la subxarxa que allotjara el punt de connexio.
az network vnet subnet update -g $G --vnet-name $V -n snet-datos \
--disable-private-endpoint-network-policies true --output none
# 2. Punt de connexio privat cap al servidor SQL (group-id sqlServer).
ID_SQL=$(az sql server show -g rg-contoso-reservas-pro -n sql-contoso-reservas-pro --query id -o tsv)
az network private-endpoint create -g $G -n pe-sql-reservas \
--vnet-name $V --subnet snet-datos \
--private-connection-resource-id "${ID_SQL}" --group-id sqlServer \
--connection-name conexion-sql-reservas --output none
# 3. Zona DNS privada del servei, vinculada a la xarxa i enllacada al punt de connexio.
az network private-dns zone create -g $G -n "privatelink.database.windows.net" --output none
az network private-dns link vnet create -g $G \
--zone-name "privatelink.database.windows.net" -n enlace-sql-vnet-pro \
--virtual-network $V --registration-enabled false --output none
az network private-endpoint dns-zone-group create -g $G \
--endpoint-name pe-sql-reservas -n grupo-zonas-sql \
--private-dns-zone "privatelink.database.windows.net" --zone-name sql --output none
# 4. Tancar l'acces public del servidor.
az sql server update -g rg-contoso-reservas-pro -n sql-contoso-reservas-pro \
--enable-public-network false --output none
# 5. Verificar des d'una VM de la xarxa.
nslookup sql-contoso-reservas-pro.database.windows.net
# Esperat: CNAME a ...privatelink.database.windows.net i una IP 10.20.3.xSi et saltes el pas 3, el punt de connexió privat existeix i té la seva IP, però el nom sql-contoso-reservas-pro.database.windows.net continua resolent a la IP pública. Tan bon punt executis el pas 4, l'aplicació intentarà connectar-se a aquesta IP pública ja tancada i fallarà amb un error de connexió esgotada, sense cap pista que apunti al DNS. És l'avaria més freqüent i més desconcertant de Private Link.
Conclusió
Ja tens la tercera pota de la plataforma. Saps per què la xarxa va primer i quines decisions queden congelades durant anys. Manegues els espais d'adreces privats, l'aritmètica CIDR suficient per trossejar una /16 en subxarxes sense encavalcaments, i coneixes les cinc adreces que Azure reserva a cada subxarxa. Has dissenyat i desplegat vnet-contoso-pro amb snet-web, snet-app, snet-datos, snet-gestion i les subxarxes de nom obligatori AzureBastionSubnet i GatewaySubnet. Escrius regles de NSG entenent les prioritats i les regles per defecte —inclosa la més perillosa, AllowVnetInBound, que fa que la segmentació no sigui automàtica—, i fas servir etiquetes de servei i grups de seguretat d'aplicació perquè les regles no depenguin de llistes d'IP. Distingeixes IP públiques i privades, estàtiques i dinàmiques, amb el seu efecte a la factura. Saps com funciona la resolució DNS d'Azure i per a què serveixen les zones DNS privades. Entens l'aparellament i la seva manca de transitivitat, que és just el que dona forma al patró hub-and-spoke i permet pagar una sola porta d'enllaç VPN. I has pres la decisió que més protegeix les dades dels passatgers: punts de connexió privats amb la seva zona DNS per a la base de dades i el compte d'emmagatzematge, en lloc de punts de connexió de servei. A més, has connectat App Service a la xarxa, has substituït l'SSH exposat per Azure Bastion i saps diagnosticar amb Network Watcher en comptes d'endevinar.
Queda una peça per tancar el mòdul, i és la que connecta Azure amb el món real de Contoso Airlines. Les oficines de Barcelona i Palma continuen fora d'aquesta xarxa: el seu personal no arriba als recursos privats que acabes de blindar, el sistema de facturació heretat continua vivint en local, i la Marta Ríos no pot administrar res des de casa sense exposar alguna cosa. Alhora, un client que compra un bitllet des de Sud-amèrica pateix la latència de creuar l'Atlàntic a cada petició fins a West Europe.
A l'última lliçó del mòdul, Connectivitat híbrida i lliurament global, resolem tots dos extrems: VPN de punt a lloc per a la Marta i de lloc a lloc per a les oficines, amb les seves portes d'enllaç i el seu desplegament per CLI; ExpressRoute i quan justifica el seu preu; Azure Virtual WAN com a evolució del hub-and-spoke híbrid; i el lliurament global del lloc amb Azure Front Door, Azure CDN i Traffic Manager, inclòs el cost de la sortida de dades que sorprèn tothom la primera vegada que llegeix una factura.
Curs d'Azure
Mòdul 1: Introducció a Azure
- Què és Azure?
- Models de servei, regions i zones de disponibilitat
- Crear i configurar el teu compte d'Azure
- Recorregut pel portal d'Azure
- Azure Resource Manager: subscripcions, grups de recursos i etiquetes
- Azure CLI, PowerShell i Cloud Shell
Mòdul 2: Serveis principals d'Azure
- Màquines virtuals d'Azure
- Escalat i alta disponibilitat del còmput
- Azure App Service
- Azure Storage: blobs, fitxers, cues i taules
- Xarxes a Azure: xarxes virtuals, subxarxes i NSG
- Connectivitat híbrida i lliurament global
Mòdul 3: Bases de dades d'Azure
- Triar el servei de dades adequat
- Azure SQL Database
- Azure Cosmos DB
- Azure Database for MySQL
- Azure Database for PostgreSQL
- Analítica de dades: Data Lake, Data Factory i Synapse
Mòdul 4: Seguretat a Azure
- Microsoft Entra ID i gestió d'identitats
- RBAC i identitats administrades
- Azure Key Vault
- Protecció DDoS i tallafoc d'aplicacions web
- Microsoft Defender for Cloud
- Governança i compliment amb Azure Policy
Mòdul 5: Azure DevOps
- Introducció a Azure DevOps
- Azure Repos
- Azure Pipelines: integració contínua
- Desplegament continu amb entorns i aprovacions
- Azure Artifacts
- Infraestructura com a codi amb Bicep
Mòdul 6: Serveis avançats d'Azure
- Contenidors a Azure: Container Registry i Container Apps
- Azure Kubernetes Service (AKS)
- Azure Functions
- Azure Logic Apps
- Missatgeria i esdeveniments: Service Bus, Event Grid i Event Hubs
- Serveis d'IA d'Azure
Mòdul 7: Monitoratge i gestió
- Azure Monitor: mètriques, alertes i taulers
- Log Analytics i consultes KQL
- Application Insights
- Azure Automation i runbooks
- Còpies de seguretat i recuperació davant desastres
Mòdul 8: Gestió i optimització de costos
- Calculadora de preus i estimació de costos
- Azure Cost Management: anàlisi, pressupostos i alertes
- Reserves, plans d'estalvi i Azure Hybrid Benefit
- Azure Advisor
- Estratègies d'optimització i cultura FinOps
