Fins ara hem parlat de límits, compliment, amenaces i visió centralitzada. Ara baixem a un nivell més concret: la protecció de les dades mitjançant xifratge. Hem esmentat el xifratge moltes vegades (bases de dades xifrades, estat xifrat, HTTPS...), però on es guarden les claus que xifren i desxifren? Aquesta és la missió de KMS (Key Management Service), el servei de gestió de claus d’AWS.

Repàs: què és el xifratge i per què importa

Xifrar és transformar dades llegibles en dades il·legibles, fent servir una clau. Només qui té la clau pot tornar-les a llegir (desxifrar-les). És la protecció fonamental de les dades:

Dades llegibles  ──[xifrar amb clau]──►  dades il·legibles (xK9#mP2$...)
Dades il·legibles ──[desxifrar amb clau]──►  dades llegibles

Si algú roba les teves dades xifrades però no té la clau, només veu soroll inútil. Per això es xifra: la informació sensible (dades de clients, contrasenyes, còpies de seguretat) ha d’estar xifrada tant en repòs (emmagatzemada) com en trànsit (viatjant per la xarxa, recorda HTTPS, subcapítol 16.3).

El problema: on guardes les claus?

El xifratge és tan fort com la protecció de les claus. Si guardes la clau al costat de les dades xifrades, és com deixar la clau enganxada al pany: no serveix de res. I gestionar claus a mà és molt difícil:

  • On les guardes de forma segura?
  • Com controles qui pot fer-les servir?
  • Com les rotes (canvies periòdicament) sense trencar res?
  • Com evites perdre-les (el que deixaria les teves dades il·legibles per sempre)?

Per resoldre tot això existeix KMS.

Què és KMS

KMS (Key Management Service) és el servei d’AWS per crear, guardar i gestionar les claus de xifratge de forma centralitzada i segura. Les claus «mestres» mai surten de KMS sense xifrar; AWS les protegeix en maquinari especialitzat i molt segur.

   KMS (la "caixa forta de les claus")
    ├── guarda les claus mestres de forma ultra segura
    ├── controla qui pot fer servir cada clau (amb IAM)
    ├── registra cada ús de cada clau (auditoria)
    └── rota les claus automàticament

Analogia: KMS és com la caixa forta d’un banc per a les claus, custodiada per guàrdies. Tu no t’emportes les claus mestres a casa (on te les podrien robar): es queden a la cambra cuirassada. Quan necessites obrir alguna cosa, el banc fa servir la clau per tu, dins la cambra, i registra qui va demanar obrir què i quan. Les claus mai surten a l’exterior desprotegides.

Com s’utilitza KMS (el bo: gairebé només)

El millor de KMS és que es integra amb gairebé tots els serveis d’AWS i fa el xifratge pràcticament transparent. Recorda totes les vegades que hem dit «activa el xifratge» al llibre:

  • S3 (Capítol 5): xifrar els objectes d’un bucket.
  • RDS (Capítol 8): xifrar la base de dades.
  • EBS (discos d’EC2): xifrar l’emmagatzematge.
  • L’estat de Terraform (subcapítol 20.1): encrypt = true.

En tots aquests casos, al darrere hi ha KMS gestionant la clau. Tu només dius «xifra això amb aquesta clau de KMS», i AWS s’encarrega de xifrar i desxifrar automàticament quan cal, sense que la teva aplicació hagi de gestionar les claus.

"Xifra aquest bucket S3 amb la meva clau de KMS"
   → AWS xifra les dades en guardar-les (usant KMS)
   → AWS les desxifra en llegir-les (si tens permís)
   → tot automàtic i transparent per a la teva aplicació

Control d’accés a les claus

Una peça clau: qui pot fer servir cada clau es controla amb IAM (Capítol 7) i les polítiques de la clau. Això és molt potent, perquè afegeix una segona barrera:

Encara que algú tingui accés a unes dades xifrades, si no té permís per fer servir la clau de KMS que les desxifra, no pot llegir-les. És una capa extra de protecció: separes «accedir a la dada» de «poder desxifrar-la».

Aplica el mínim privilegi (subcapítol 7.2): només qui realment necessita desxifrar certes dades ha de tenir permís sobre aquella clau.

La rotació de claus

Una bona pràctica de seguretat és rotar les claus periòdicament: canviar-les cada cert temps, perquè, si una clau es veiés compromesa, la seva «finestra d’utilitat» per a un atacant sigui limitada. Fer això a mà seria un embolic enorme (caldria re-xifrar tot amb la clau nova).

KMS ofereix rotació automàtica: pots activar que una clau es roti sola (per exemple, un cop l’any) sense que hagis de fer res i sense trencar l’accés a les dades ja xifrades. KMS gestiona les versions de la clau per sota de forma transparent.

Rotació automàtica activada:
   → KMS canvia la clau periòdicament, sol
   → les dades antigues segueixen sent accessibles
   → sense feina manual, sense interrupcions

Auditoria: qui va fer servir quina clau

KMS registra cada ús de cada clau (integrat amb CloudTrail). Així pots saber qui va desxifrar què i quan, cosa essencial per investigar incidents i per complir normatives. Si hi hagués un accés indegut a dades sensibles, la traça queda.

Exemple del món real: un hospital emmagatzema historials mèdics a AWS, xifrats amb KMS. Per llei, han de protegir aquestes dades i poder demostrar qui hi accedeix. Amb KMS: les dades estan xifrades, només el personal autoritzat té permís sobre la clau que les desxifra, les claus es roten automàticament cada any, i cada accés queda registrat. Si un empleat intentés desxifrar historials sense autorització, no podria (no té permís sobre la clau) i l’intent quedaria registrat. L’hospital compleix la normativa i protegeix els seus pacients.

El que has de recordar

  • El xifratge protegeix les dades (en repòs i en trànsit) tornant-les il·legibles sense la clau; però el xifratge és tan fort com la protecció de les claus (no serveix «deixar la clau al pany»).
  • KMS (Key Management Service) és la caixa forta de les claus d’AWS: les crea, guarda i gestiona de forma ultra segura; les claus mestres mai surten sense protecció.
  • S’integra amb gairebé tots els serveis (S3, RDS, EBS, estat de Terraform...) fent el xifratge transparent: tu dius «xifra amb aquesta clau» i AWS xifra/desxifra sol.
  • L’accés a les claus es controla amb IAM (mínim privilegi): encara que algú accedeixi a les dades xifrades, sense permís sobre la clau no pot llegir-les (barrera extra).
  • Ofereix rotació automàtica de claus (sense feina manual ni interrupcions) i auditoria de cada ús (qui va desxifrar què i quan), essencial per a entorns regulats.

A l’últim subcapítol del capítol veurem on guardar els secrets de les teves aplicacions (contrasenyes, claus d’API): Secrets Manager i Parameter Store.

Cloud, AWS & Terraform — De zero a expert

Capítol 1 · Què és el cloud computing

Capítol 2 · El mercat cloud i els grans proveïdors

Capítol 3 · Regions, zones de disponibilitat i edge

Capítol 4 · Càlcul: EC2

Capítol 5 · Emmagatzematge: S3

Capítol 6 · Xarxes: VPC

Capítol 7 · Identitat i accés: IAM

Capítol 8 · Bases de dades gestionades

Capítol 9 · Per què Infraestructura com a Codi

Capítol 10 · HCL: el llenguatge de Terraform

Capítol 11 · Providers i estat

Capítol 12 · La teva primera infraestructura real amb Terraform

Capítol 13 · Balanceig de càrrega i autoescalat

Capítol 14 · Serverless amb Lambda

Capítol 15 · Missatgeria i esdeveniments

Capítol 16 · Lliurament de contingut i DNS

Capítol 17 · Contenidors a AWS

Capítol 18 · Mòduls: reutilització i composició

Capítol 19 · Workspaces i gestió d'entorns

Capítol 20 · Backends remots i locking

Capítol 21 · Testing d'infraestructura

Capítol 22 · Terraform en CI/CD

Capítol 23 · Seguretat en profunditat

Capítol 24 · Observabilitat: logs, mètriques i traces

Capítol 25 · Optimització de costos

Capítol 26 · Alta disponibilitat i disaster recovery

Capítol 27 · Well-Architected Framework d'AWS

Capítol 28 · Arquitectures serverless a escala

Capítol 29 · Plataformes de dades a AWS

Capítol 30 · Multi-compte i landing zones

Capítol 31 · Platform Engineering i Internal Developer Platform

Capítol 32 · Certificacions AWS rellevants

Capítol 33 · Projectes per consolidar el que s'ha après

Capítol 34 · Recursos i comunitat

© Copyright 2024. Tots els drets reservats