Les identitats administrades de la lliçó anterior van eliminar els secrets d'accés a sttarjetascontosopro i a db-reservas, i aquesta és la millor notícia possible: el secret que no existeix no es pot filtrar. Però no tot es resol així. Contoso Airlines continua necessitant la clau de la passarel·la de pagament, el testimoni del proveïdor de dades meteorològiques que alimenta les previsions de retard, la cadena de connexió del sistema heretat de facturació que encara corre a Barcelona i el certificat TLS de contosoairlines.example. Cap d'aquests sistemes no parla Entra ID, així que el secret existeix i s'ha de guardar en algun lloc. Avui aquest lloc passa a ser Azure Key Vault: un magatzem sustentat per maquinari, amb permisos per RBAC, xarxa tancada, versionat i auditoria de cada lectura. En acabar, app-contoso-reservas-pro llegirà els seus secrets amb la identitat administrada de 04-02 i no hi haurà ni una sola contrasenya al desplegament.
Avís important: la gestió de claus i secrets toca directament el compliment normatiu —PCI DSS per als pagaments, RGPD per a les dades de passatgers— i una configuració incorrecta pot provocar tant una bretxa com una pèrdua irreversible de dades xifrades. Abans de portar a producció qualsevol disseny de Key Vault, de rotació o de claus gestionades pel client, l'ha de revisar un professional de seguretat o l'equip de compliance de la teva organització.
Contingut
- On viuen avui els secrets de Contoso
- Què guarda Key Vault: secrets, claus i certificats
- Nivells Estàndard, Premium i Managed HSM
- Crear
kv-contoso-proamb eliminació temporal i protecció contra purga - Els dos models de permisos: directives d'accés davant de RBAC
- Accés des de la xarxa: tallafoc, punt de connexió privat i serveis de confiança
- Desar, recuperar i versionar secrets
- Rotació de secrets sense caiguda
- Certificats TLS gestionats
- Consumir secrets des d'App Service amb referències de Key Vault
- Claus de xifratge gestionades pel client
- Auditoria, límits i què NO posar al magatzem
- Errors Comuns i Consells
- Exercicis
- Conclusió
- On viuen avui els secrets de Contoso
Un inventari honest abans d'arreglar res:
| Secret | On és avui | Risc |
|---|---|---|
| Clau de la passarel·la de pagament | Ajustos d'app-contoso-reservas-pro, en clar |
Qualsevol Col·laborador la llegeix amb config/list |
| Testimoni del proveïdor meteorològic | appsettings.json al repositori |
A l'historial de Git per sempre |
| Cadena del sistema heretat | Document compartit de l'equip | Sense control d'accés ni auditoria |
| Certificat TLS amb clau privada | Fitxer .pfx al portàtil de la Marta |
Es perd amb el portàtil |
| Contrasenya de l'administrador de SQL | Correu de fa vuit mesos | Ningú no recorda qui la té |
Cap no ha rotat mai, ningú no sap qui els ha llegit i revocar-los exigiria buscar-los per cinc llocs. Key Vault resol les quatre coses alhora: emmagatzematge centralitzat, control d'accés per identitat, auditoria de cada operació i rotació gestionada.
- Què guarda Key Vault: secrets, claus i certificats
| Tipus | Què és | Es pot extreure | Ús típic a Contoso |
|---|---|---|---|
| Secret | Qualsevol cadena de fins a 25 KB | Sí: l'aplicació rep el valor | Clau de la passarel·la, testimonis, cadenes de connexió |
| Clau | Clau criptogràfica (RSA, EC) | No: mai no surt del magatzem | Xifratge de db-reservas i de l'emmagatzematge |
| Certificat | Certificat X.509 + la seva clau privada | Sí, com a PFX si la directiva ho permet | TLS de contosoairlines.example |
La distinció entre secret i clau és la més important i la que més es confon. Un secret es guarda per tornar-lo: l'aplicació demana la clau de la passarel·la i rep el text. Una clau no es torna mai: s'envia a Key Vault la dada perquè ell la xifri, la signi o la desxifri, i la clau privada no abandona mai el mòdul criptogràfic. Per això les claus de xifratge es guarden com a claus i no com a secrets: encara que algú robés el testimoni d'accés, no podria exfiltrar el material criptogràfic.
Un certificat és en realitat tres objectes coordinats: el certificat, una clau i un secret que conté el PFX complet. Key Vault en gestiona a més el cicle de vida, inclosa la renovació automàtica.
- Nivells Estàndard, Premium i Managed HSM
| Estàndard | Premium | Azure Managed HSM | |
|---|---|---|---|
| Protecció de claus | Programari (dins d'HSM validats) | HSM dedicat, FIPS 140-2 nivell 3 | HSM dedicat d'un sol inquilí |
| Cost | Cèntims per 10.000 operacions | Igual + cost per clau HSM | Diversos milers d'€ al mes |
| Aïllament | Multiinquilí | Multiinquilí | Un sol inquilí |
| Quan | El 90 % dels casos | Exigència normativa d'HSM | Banca, autoritats de certificació |
Contoso tria Estàndard per a kv-contoso-pro. És la decisió correcta llevat que una norma exigeixi explícitament HSM certificat de nivell 3, i convé saber que el nivell no es pot canviar de Premium a Estàndard un cop creat (d'Estàndard a Premium sí). Azure Managed HSM existeix, costa milers d'euros al mes i només té sentit quan el mateix auditor ho exigeix per escrit.
- Crear
kv-contoso-pro amb eliminació temporal i protecció contra purga
kv-contoso-pro amb eliminació temporal i protecció contra purgaRG_SEG="rg-contoso-seguridad-pro"; KV="kv-contoso-pro"
az keyvault create --name $KV --resource-group $RG_SEG --location westeurope \
--sku standard \
--enable-rbac-authorization true \ # RBAC en lloc de directives d'acces
--enable-purge-protection true \ # ningu no pot esborrar definitivament
--retention-days 90 \ # finestra de recuperacio despres d'un esborrat
--public-network-access Disabled \ # nomes per punt de connexio privat
--tags entorno=produccion proyecto=contoso-reservas centro-coste=CC-1042 \
[email protected]Tres opcions mereixen una explicació detallada:
- Eliminació temporal (soft delete): està sempre activada i no es pot desactivar. En esborrar un secret, una clau o el magatzem sencer, l'objecte passa a estat eliminat i es conserva durant
--retention-days(de 7 a 90). Durant aquest temps es pot recuperar ambaz keyvault recover. - Protecció contra purga: impedeix eliminar definitivament l'objecte durant la retenció, ni tan sols a un Propietari. Un cop activada tampoc no es pot desactivar. És incòmoda a propòsit: converteix un esborrat maliciós o accidental en una cosa reversible.
- La conseqüència pràctica que sorprèn tothom: mentre un magatzem eliminat continuï en retenció, el seu nom queda reservat globalment i no se'n pot crear cap altre d'igual. Si esborres
kv-contoso-proen una prova, no el podràs recrear amb aquest nom fins 90 dies després (o abans purgant-lo, llevat que la protecció contra purga ho impedeixi, que és justament el cas). Per això els magatzems de prova es creen amb noms d'usar i llençar i--retention-days 7.
- Els dos models de permisos: directives d'accés davant de RBAC
| Directives d'accés (heretat) | RBAC d'Azure (recomanat) | |
|---|---|---|
| On es defineix | Al mateix magatzem | A Control d'accés (IAM), com la resta d'Azure |
| Granularitat | Per magatzem complet | Per magatzem i per secret individual |
| Límit | 1.024 directives per magatzem | Les assignacions de rol normals |
| Herència d'àmbits | No | Sí, des de subscripció o grup de recursos |
| Auditoria i PIM | Fora del model estàndard | Integrada amb tot Azure |
| Recomanació | Només per compatibilitat | Tria-ho sempre en magatzems nous |
Amb --enable-rbac-authorization true, els permisos del pla de dades es concedeixen amb els mateixos rols de la resta d'Azure. Els que es fan servir:
| Rol | Permet |
|---|---|
| Usuari de Key Vault Secrets | Llegir el valor dels secrets. El de les aplicacions |
| Responsable de Key Vault Secrets | Crear, actualitzar i eliminar secrets |
| Responsable de Key Vault Crypto | Gestionar claus i operar amb elles |
| Lector de Key Vault | Veure metadades, no valors. Per a auditoria |
| Col·laborador de Key Vault | Gestionar el magatzem (pla de gestió), no les seves dades |
Aquest últim és el parany de 04-02 aplicat aquí: Col·laborador de Key Vault no permet llegir ni un sol secret. Sí que permet, en canvi, canviar la configuració del magatzem, motiu pel qual també és un rol privilegiat que convé mantenir sota PIM.
KV_ID=$(az keyvault show -n $KV -g $RG_SEG --query id -o tsv)
APP_PRINCIPAL=$(az webapp identity show -g rg-contoso-reservas-pro -n app-contoso-reservas-pro --query principalId -o tsv)
# L'aplicacio: nomes LLEGIR, i nomes el secret que necessita
az role assignment create --assignee-object-id $APP_PRINCIPAL --assignee-principal-type ServicePrincipal \
--role "Key Vault Secrets User" \
--scope "$KV_ID/secrets/pasarela-pago-clave"
# La Marta gestiona els secrets del magatzem sencer
az role assignment create --assignee-object-id $(az ad group show --group "Contoso-Infraestructura" --query id -o tsv) \
--assignee-principal-type Group --role "Key Vault Secrets Officer" --scope "$KV_ID"Fixa't en l'àmbit de la primera assignació: un secret concret, no el magatzem. Si app-contoso-reservas-pro queda compromesa, l'atacant obté aquesta clau i res més.
- Accés des de la xarxa: tallafoc, punt de connexió privat i serveis de confiança
Amb --public-network-access Disabled el magatzem no respon a internet. L'accés arriba per un punt de connexió privat a snet-datos, exactament igual que pe-sql-reservas i pe-storage-tarjetas del mòdul 2:
az network private-endpoint create -g rg-contoso-red-pro -n pe-kv-contoso \
--vnet-name vnet-contoso-pro --subnet snet-datos \
--private-connection-resource-id $KV_ID --group-id vault \
--connection-name conn-kv-contosoI cal registrar el nom al DNS privat, o el client continuarà resolent la IP pública: es crea la zona privatelink.vaultcore.azure.net, es vincula a vnet-contoso-pro i s'associa al punt de connexió amb un grup de zones DNS. Sense aquest pas, el punt de connexió existeix i no el fa servir ningú: és la fallada més freqüent de Private Link.
Queda un matís operatiu. Certs serveis d'Azure —App Service llegint referències, Azure SQL desxifrant amb clau del client, Event Grid— no surten per la xarxa virtual. Per a ells existeix l'excepció de serveis de confiança de Microsoft, que cal activar explícitament:
--bypass AzureServices permet el pas a aquesta llista tancada de serveis; --default-action Deny continua rebutjant tota la resta. L'excepció no és un forat obert: cada servei de la llista ha de tenir a més un rol assignat.
- Desar, recuperar i versionar secrets
# Desar. El valor NO s'escriu a l'ordre: es llegeix d'una variable o de l'entrada estandard
read -s -p "Clau de la passarel-la de pagament: " VALOR; echo
az keyvault secret set --vault-name $KV --name pasarela-pago-clave --value "$VALOR" \
--expires "$(date -u -d '+180 days' +%Y-%m-%dT%H:%M:%SZ)" \
--tags rotacion=semestral sistema=pagos
# Recuperar el valor actual (aquesta operacio queda auditada)
az keyvault secret show --vault-name $KV --name pasarela-pago-clave --query value -o tsv
# Veure totes les versions: cada 'set' en crea una de nova i l'anterior continua existint
az keyvault secret list-versions --vault-name $KV --name pasarela-pago-clave \
--query "[].{Versio:id, Habilitat:attributes.enabled, Creat:attributes.created}" -o tableCada secret té un identificador amb versió, https://kv-contoso-pro.vault.azure.net/secrets/pasarela-pago-clave/a1b2c3..., i un altre sense versió que apunta sempre a l'actual. La regla pràctica: fes servir l'identificador sense versió perquè la rotació no obligui a tornar a desplegar, llevat que necessitis fixar una versió concreta per reproductibilitat.
Els atributs --expires i --not-before no bloquegen la lectura per si sols en tots els clients: són metadades que alimenten els avisos de caducitat i les consultes d'auditoria. Posa'ls sempre; ignorar-los és el que fa que una clau porti quatre anys sense rotar.
- Rotació de secrets sense caiguda
Rotar és substituir un secret per un de nou sense que res deixi de funcionar. Tres mecanismes, de més a menys automàtic:
Rotació totalment gestionada. Per a les claus de comptes d'emmagatzematge, Key Vault les pot regenerar per si mateix. Es crea un secret de tipus compte administrat, se li indica cada quant ha de rotar, i Key Vault alterna entre key1 i key2 regenerant la que no està en ús:
az keyvault storage add --vault-name $KV -n sttarjetascontosopro \
--active-key-name key1 --auto-regenerate-key --regeneration-period P60D \
--resource-id $(az storage account show -n sttarjetascontosopro -g rg-contoso-reservas-pro --query id -o tsv)Fixa't en la ironia saludable: Contoso ja no fa servir aquestes claus perquè va passar a identitat administrada (04-02). Aquest mecanisme és per als comptes heretats que encara no han migrat.
Notificació de caducitat per Event Grid. Key Vault publica esdeveniments SecretNearExpiry (30 dies abans) i SecretExpired, que poden disparar una funció o una Logic App que cridi l'API del proveïdor, obtingui una credencial nova i escrigui la versió al magatzem. És el patró per a secrets de tercers com la passarel·la de pagament.
El patró de rotació sense caiguda, que és l'important conceptualment i val per a qualsevol secret:
flowchart TB
A[1. Generar la credencial NOVA al proveidor<br/>mantenint activa l anterior] --> B[2. Escriure la nova versio<br/>a Key Vault]
B --> C[3. Esperar que expiri la memoria cau<br/>de totes les instancies]
C --> D[4. Verificar que el transit fa servir la nova<br/>als registres del proveidor]
D --> E[5. Revocar la credencial ANTIGA]
La clau és al pas 1: el proveïdor ha d'admetre dues credencials vàlides alhora. Si només n'admet una, no hi ha rotació sense caiguda possible i caldrà planificar una finestra de manteniment. És una pregunta que convé fer a cada proveïdor abans d'integrar-lo.
- Certificats TLS gestionats
Key Vault pot emetre i renovar certificats automàticament si s'integra amb una autoritat de certificació associada (DigiCert, GlobalSign), o custodiar certificats importats de qualsevol altra. Es defineix una directiva amb l'assumpte, els noms alternatius, la vigència i el percentatge de vida a partir del qual es renova:
az keyvault certificate create --vault-name $KV -n cert-contosoairlines \
--policy "$(az keyvault certificate get-default-policy)"A partir d'aquí, app-contoso-reservas-pro importa el certificat amb az webapp config ssl import --key-vault $KV --key-vault-certificate-name cert-contosoairlines, i quan Key Vault el renova, App Service recull la versió nova sense intervenció. Application Gateway fa el mateix referenciant l'identificador del certificat, i és allà on es farà servir a la lliçó 04-04 en muntar el tallafoc d'aplicacions web. L'alternativa gratuïta per a casos senzills són els certificats administrats d'App Service, que ja vas veure a 02-03; Key Vault és l'opció quan el mateix certificat s'ha de compartir entre diversos serveis.
- Consumir secrets des d'App Service amb referències de Key Vault
Aquest és el moment en què les contrasenyes desapareixen del desplegament. Una referència de Key Vault és un ajust d'aplicació el valor del qual no és el secret, sinó un punter:
az webapp config appsettings set -g rg-contoso-reservas-pro -n app-contoso-reservas-pro --settings \
ClavePasarelaPago="@Microsoft.KeyVault(SecretUri=https://kv-contoso-pro.vault.azure.net/secrets/pasarela-pago-clave/)" \
TokenMeteorologico="@Microsoft.KeyVault(VaultName=kv-contoso-pro;SecretName=token-meteo)"El que passa per sota: en arrencar, App Service fa servir la identitat administrada de 04-02 per demanar el testimoni, resol la referència i exposa el valor a l'aplicació com una variable d'entorn normal. Conseqüències que convé tenir clares:
- El codi no canvia: continua llegint
ClavePasarelaPagocom sempre. No hi ha cap SDK per afegir. - El secret no és a la configuració: qui tingui
config/listveu el punter, no el valor. - La resolució passa en arrencar i es guarda en memòria cau 24 hores (o en reiniciar). Després de rotar un secret, cal reiniciar l'aplicació o esperar; si has fet servir l'URI sense versió, la referència recull la versió nova.
- Si la referència falla, l'aplicació arrenca sense aquest ajust i sol fallar de manera confusa. Comprova sempre l'estat amb
az webapp config appsettings list, on una referència trencada es mostra amb el seu error.
Quan l'aplicació necessita llegir secrets en calent (no només en arrencar), es fa servir SecretClient de l'SDK amb DefaultAzureCredential, la mateixa credencial de 04-02, i sempre amb memòria cau pròpia, pel motiu de l'apartat 12.
- Claus de xifratge gestionades pel client
Tot el que guarda Azure està xifrat en repòs amb claus de Microsoft, sense que calgui fer res. Les claus gestionades pel client (CMK) canvien qui controla la clau: la genera Contoso a kv-contoso-pro, i el servei la fa servir mitjançant la seva identitat administrada.
az keyvault key create --vault-name $KV -n clave-cifrado-tarjetas --kty RSA --size 3072 \
--ops wrapKey unwrapKey --protection softwareQuè aporta de debò: la capacitat de revocar. Si es deshabilita la clau, sttarjetascontosopro deixa de poder desxifrar les seves dades de manera immediata; és el «botó vermell» que exigeixen alguns auditors. I què costa: si aquesta clau s'esborra o es perd, les dades són irrecuperables, sense que Microsoft hi pugui fer res. Per això la protecció contra purga és obligatòria en magatzems amb CMK, i per això Contoso les aplica només a sttarjetascontosopro i a db-reservas, on hi ha dades personals, i no a la resta. La rotació d'una CMK és transparent: es torna a xifrar la clau de dades, no les dades.
- Auditoria, límits i què NO posar al magatzem
Key Vault registra cada operació del pla de dades: qui va llegir quin secret, des de quina IP i amb quin resultat. Aquests registres no es conserven al magatzem, cal enviar-los:
az monitor diagnostic-settings create --name diag-kv-contoso --resource $KV_ID \
--workspace $(az monitor log-analytics workspace show -g rg-contoso-seguridad-pro -n log-contoso-pro --query id -o tsv) \
--logs '[{"category":"AuditEvent","enabled":true}]'Amb això, a Log Analytics (07-02) es pot respondre a preguntes com ara «qui va llegir la clau de la passarel·la fora de l'horari laboral?» o «quines identitats han accedit a aquest secret els últims 90 dies?». És requisit directe de PCI DSS i el motiu pel qual l'àrea de treball viu a rg-contoso-seguridad-pro al costat del magatzem.
Sobre límits de rendiment: Key Vault aplica limitació de sol·licituds per magatzem i regió (de l'ordre de 2.000 operacions de secret per 10 segons, menys per a operacions amb claus RSA). En superar-la retorna HTTP 429. Per això la regla és innegociable: l'aplicació guarda els secrets en memòria durant hores i només els torna a llegir en rotar o en rebre un error d'autenticació. Un servei que demana el secret a cada petició HTTP tomba el seu propi magatzem tan bon punt arriba trànsit real.
I què no ha d'anar a Key Vault:
- Configuració que no és secreta (URLs, noms de servidor, marques de funcionalitat): va a App Configuration o als ajustos normals.
- Dades de negoci o dades personals: no és una base de dades. Un secret són 25 KB com a màxim.
- Fitxers grans, encara que siguin sensibles: xifra'ls i desa'ls a l'emmagatzematge, amb la clau a Key Vault.
- Secrets d'usuaris finals (contrasenyes de passatgers): aquestes viuen a Entra External ID (04-01), amb el seu resum criptogràfic, mai aquí.
Errors Comuns i Consells
- Crear el magatzem amb directives d'accés «perquè és el que surt a tutorials antics». Fes servir
--enable-rbac-authorization truedes del principi; migrar després és tediós. - Esperar que Col·laborador de Key Vault deixi llegir secrets. No ho fa: gestiona el magatzem, no les seves dades.
- Esborrar un magatzem de prova i no poder recrear-lo amb el mateix nom. El nom queda reservat durant la retenció. Fes servir noms d'usar i llençar i 7 dies de retenció a les proves.
- Activar la protecció contra purga sense entendre-la. És irreversible. En producció és obligatòria; en un curs o una prova, evita-la.
- Oblidar la zona DNS privada del punt de connexió. El magatzem queda inaccessible amb un error de xarxa que no diu res.
- Demanar el secret a cada petició. HTTP 429 garantit sota càrrega. Fes memòria cau.
- Escriure el secret a la línia d'ordres. Queda a l'historial de l'intèrpret d'ordres i als registres de la canalització. Llegeix-lo de l'entrada estàndard o d'una variable protegida.
- Consell: un magatzem per entorn i per àmbit de confiança.
kv-contoso-proikv-contoso-devseparats, mai el mateix magatzem per a producció i desenvolupament. - Consell: posa una alerta sobre el registre d'auditoria per a lectures des d'identitats inesperades. És un dels senyals de compromís més nets que existeixen.
Exercicis
Exercici 1: dissenyar el magatzem de Contoso Millas
«Contoso Millas» (centro-coste=CC-2077) necessita guardar: la clau d'una API de socis comercials, el certificat TLS del seu subdomini, una clau de xifratge per a les dades dels clients i la cadena de connexió d'una base heretada.
- Classifica els quatre elements com a secret, clau o certificat, i justifica-ho.
- Escriu l'ordre de creació del magatzem amb les opcions adequades i explica cadascuna.
- Quins rols assignaries a la identitat administrada de l'aplicació i al grup de desenvolupament, i en quin àmbit?
Exercici 2: rotar la clau de la passarel·la de pagament
La passarel·la de pagament admet dues claus actives simultàniament i Contoso ha de rotar cada 180 dies sense tallar la venda de bitllets.
- Descriu els cinc passos del procés, indicant què es fa al proveïdor i què a Azure.
- Com automatitzaries l'avís que s'acosta la caducitat?
- L'aplicació guarda el secret en memòria cau 12 hores. Què implica això per al pas de revocació?
Exercici 3: diagnosticar tres fallades
- Després de desplegar, l'aplicació arrenca però falla en cridar la passarel·la; als ajustos,
ClavePasarelaPagoapareix amb un error de referència. - Un procés per lots que llegeix 40 secrets a l'inici de cada tasca comença a rebre HTTP 429 en augmentar la concurrència.
- L'equip va esborrar
kv-contoso-devi en recrear-lo amb el mateix nom rep un error de conflicte.
Solucions
Solució 1:
- Clau de l'API de socis: secret, perquè cal tornar-ne el valor a l'aplicació. Certificat TLS: certificat, per aprofitar la renovació automàtica i la integració amb App Service. Clau de xifratge: clau, perquè no ha de sortir mai del magatzem i només es fa servir per a operacions criptogràfiques. Cadena de connexió heretada: secret (i a mitjà termini, substituir-la per identitat administrada si el motor ho permet).
az keyvault create -n kv-contoso-millas-pro -g rg-contoso-seguridad-pro -l westeurope --sku standard --enable-rbac-authorization true --enable-purge-protection true --retention-days 90 --public-network-access Disabledmés les quatre etiquetes obligatòries ambcentro-coste=CC-2077. RBAC perquè és el model recomanat i permet àmbit per secret; protecció contra purga perquè hi ha una clau de xifratge i la seva pèrdua faria irrecuperables les dades; xarxa pública deshabilitada més punt de connexió privat; retenció de 90 dies per ser producció.- A la identitat administrada, Usuari de Key Vault Secrets amb àmbit del secret concret que necessita, i Usuari de Key Vault Crypto sobre la clau de xifratge si hi opera. Al grup de desenvolupament, cap rol de dades al magatzem de producció: com a molt Lector de Key Vault (metadades, sense valors) per diagnosticar, i Responsable de Secrets només a
kv-contoso-millas-dev.
Solució 2:
- (a) Generar la clau secundària al portal de la passarel·la, deixant activa l'actual. (b) Escriure la nova versió del secret a Key Vault amb
az keyvault secret set, fent servir l'URI sense versió a la referència per no tornar a desplegar. (c) Reiniciar l'aplicació o esperar que expiri la memòria cau de totes les instàncies. (d) Comprovar als registres del proveïdor que el trànsit arriba amb la clau nova. (e) Revocar la clau antiga al proveïdor. - Amb Event Grid: l'esdeveniment
SecretNearExpirys'emet 30 dies abans de la data d'--expires, i es connecta a una Logic App (06-04) que obre un tiquet i avisa per correu el propietari indicat a les etiquetes del secret. Requereix haver posat la data de caducitat en crear el secret. - Que no es pot revocar l'antiga fins passades com a mínim 12 hores des de l'escriptura de la nova, o fins a haver reiniciat totes les instàncies. Revocar-la abans provoca fallades de pagament a les instàncies que encara serveixen la clau en memòria cau. Per això el pas 4 —verificar al proveïdor— és obligatori i no una formalitat.
Solució 3:
- La referència no es resol. Causes per ordre: la identitat administrada no té el rol Usuari de Key Vault Secrets en aquest secret; el nom del secret està mal escrit; el tallafoc del magatzem bloqueja App Service (falta
--bypass AzureServices); o el magatzem fa servir directives d'accés i no RBAC. Es diagnostica ambaz webapp config appsettings list, que mostra l'error concret de la referència. - S'està superant la limitació de sol·licituds del magatzem. Solució: guardar en memòria cau els 40 secrets durant hores en lloc de tornar-los a llegir per tasca, agrupar la càrrega a l'arrencada del procés i no per tasca, i aplicar reintents amb espera exponencial davant del 429. Si el volum és realment necessari, repartir-los en diversos magatzems per domini funcional.
- És l'eliminació temporal: el magatzem continua existint en estat eliminat i el seu nom està reservat. Solució correcta,
az keyvault recover -n kv-contoso-dev, que el restaura amb tots els seus secrets. Si de debò es volia destruir,az keyvault purge, que només funciona si no tenia protecció contra purga i requereix el permís corresponent.
Conclusió
Contoso ja no té secrets repartits. Has fet l'inventari incòmode del punt de partida —ajustos en clar, un testimoni a l'historial de Git, un document compartit, un PFX en un portàtil— i l'has centralitzat a kv-contoso-pro, dins de rg-contoso-seguridad-pro. Distingeixes els tres tipus d'objecte: secrets, que es tornen; claus, que no surten mai del magatzem i operen a dins; i certificats, amb el seu cicle de vida i renovació automàtica. Saps que Estàndard n'hi ha prou per a gairebé tot, que Premium aporta HSM certificat i que Managed HSM costa milers d'euros al mes i només es justifica si ho exigeix un auditor.
Has creat el magatzem amb eliminació temporal —sempre activa, no desactivable— i protecció contra purga, entenent que és irreversible i que el nom d'un magatzem eliminat queda reservat durant la retenció. Has triat RBAC d'Azure davant de les directives d'accés heretades, amb el matís decisiu que permet concedir un secret concret a una identitat concreta, i coneixes els rols de dades i el parany de Col·laborador de Key Vault. Has tancat la xarxa amb el punt de connexió privat pe-kv-contoso, la seva zona DNS i l'excepció de serveis de confiança. Domines el versionat de secrets i les seves dates, els tres mecanismes de rotació —gestionada per a claus d'emmagatzematge, avisos per Event Grid i el patró de cinc passos sense caiguda, que exigeix que el proveïdor admeti dues credencials alhora—, i els certificats TLS gestionats que App Service i Application Gateway consumeixen sols. Sobretot, has arribat al moment en què les contrasenyes desapareixen del desplegament: les referències @Microsoft.KeyVault(...) resolen els ajustos amb la identitat administrada de 04-02 sense tocar ni una línia de codi. Tanquen la lliçó les claus gestionades pel client amb el seu poder de revocació i el seu risc de pèrdua definitiva, l'auditoria enviada a Log Analytics i els límits que obliguen a fer memòria cau.
Amb identitats governades, permisos mínims i zero secrets exposats, l'interior de la plataforma està raonablement sa. El problema és que Contoso Reserves és un web públic: qualsevol a internet li pot llançar peticions, i allà no valen ni RBAC ni Key Vault. A la lliçó següent, Protecció DDoS i tallafoc d'aplicacions web, veuràs quins atacs arriben de debò a un web de venda de bitllets —volumètrics, de protocol, de capa d'aplicació i els bots que exhaureixen les places de la cistella—, muntaràs una directiva de WAF sobre fd-contoso-global amb el conjunt de regles d'OWASP, aprendràs per què sempre es comença en mode detecció i compararàs què protegeix exactament cada capa: NSG, Azure Firewall, WAF i DDoS.
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
