Tanquem el capítol de seguretat amb un problema molt pràctic que hem anat ajornant: on guardes els secrets de les teves aplicacions? Les contrasenyes de bases de dades, les claus d’API, els tokens... no poden estar escrits al codi ni en fitxers .tfvars versionats (ho vam advertir al subcapítol 19.4). AWS ofereix dos serveis per guardar-los de forma segura: Secrets Manager i Parameter Store. Vegem què són i quan utilitzar cadascun.

El problema: els secrets no poden anar al codi

Tota aplicació necessita secrets: dades sensibles que li donen accés a altres sistemes. Per exemple, la contrasenya per connectar-se a la seva base de dades. L’error de principiant és posar-los directament al codi o a la configuració:

❌ MALAMENT:  password = "LaMevaContrasenya123"  escrit al codi o a Git
   → qualsevol amb accés al repositori veu el secret
   → queda a l’historial de Git per sempre
   → un desastre de seguretat esperant a passar

Recorda el que vam veure al subcapítol 19.4: mai escriguis secrets en fitxers versionats. La solució és guardar-los en un gestor de secrets i que l’aplicació els llegeixi en el moment que els necessita.

La idea: guardar el secret fora i llegir-lo sota demanda

Un gestor de secrets guarda les dades sensibles de forma xifrada i amb accés controlat. L’aplicació, quan arrenca o quan ho necessita, demana el secret al gestor (demostrant que té permís) i el rep. El secret mai està escrit al codi.

Aplicació  ──"dona’m la contrasenya de la BD"──►  Gestor de secrets (xifrat)
            ◄──── la contrasenya (si tens permís) ───
   → el secret NO està al codi, s’obté en el moment

Els secrets es xifren amb KMS (subcapítol 23.5) i l’accés es controla amb IAM (Capítol 7), aplicant el mínim privilegi: només l’aplicació que necessita un secret té permís per llegir-lo.

Les dues opcions d’AWS

AWS ofereix dos serveis per això, i convé saber-los distingir:

Secrets Manager

Secrets Manager està dissenyat específicament per a secrets (contrasenyes, claus d’API, credencials). La seva característica estrella és la rotació automàtica: pot canviar automàticament les contrasenyes de forma periòdica, integrant-se amb bases de dades com RDS per actualitzar la contrasenya tant al secret com a la base de dades, sense interrupcions.

Secrets Manager:
  ✓ pensat per a secrets
  ✓ ROTACIÓ AUTOMÀTICA de credencials (el seu gran avantatge)
  ✓ integració nativa amb bases de dades (RDS...)
  - té un cost per secret

Parameter Store

Parameter Store (part d’AWS Systems Manager) és un servei més general per guardar paràmetres de configuració, que també pot guardar secrets (com a «cadenes segures» xifrades amb KMS). És més senzill i el seu ús bàsic és gratuït, però no ofereix la rotació automàtica de Secrets Manager.

Parameter Store:
  ✓ guarda configuració I secrets (com a "SecureString" xifrat)
  ✓ el seu nivell estàndard és GRATUÏT
  ✓ senzill i versàtil
  - NO té rotació automàtica integrada

Taula comparativa

Secrets Manager Parameter Store
Pensat per a Secrets específicament Configuració general (i secrets)
Rotació automàtica Sí (el seu gran avantatge) No
Integració amb BD Nativa (RDS, etc.) No
Cost De pagament (per secret) Nivell estàndard gratuït
Ideal per a Credencials que s’han de rotar Configuració i secrets senzills

Analogia: Parameter Store és com una caixa forta general on guardes documents importants i també algunes joies; compleix, és barata i versàtil. Secrets Manager és com una caixa forta especialitzada per a joies de molt alt valor, amb un servei extra que canvia la combinació periòdicament per tu (la rotació). Costa més, però per als teus secrets més crítics, aquest servei de rotació val la pena.

Quin trio?

La decisió depèn sobretot de si necessites rotació automàtica i del cost:

  • Fes servir Secrets Manager quan: necessites rotació automàtica de credencials (especialment contrasenyes de bases de dades), o vols la seva integració nativa amb RDS. És l’opció més robusta per a secrets crítics.
  • Fes servir Parameter Store quan: vols una opció senzilla i gratuïta per guardar configuració i secrets que no necessiten rotació automàtica, o estàs començant i vols minimitzar costos.

Per començar: Parameter Store (nivell gratuït) és perfecte per guardar les teves primeres configuracions i secrets de forma segura. Quan gestionis credencials crítiques que s’hagin de rotar (com en producció amb bases de dades sensibles), fes el salt a Secrets Manager.

Com s’utilitza amb Terraform i les aplicacions

El patró habitual connecta tot el que hem après:

1. El secret es guarda a Secrets Manager / Parameter Store (xifrat amb KMS)
2. L’aplicació (o Terraform) el LLEGEIX en el moment, amb permisos IAM
3. El secret MAI apareix al codi ni a Git

Per exemple, Terraform pot llegir un secret existent amb un bloc data (recorda els data sources del subcapítol 14.2) en lloc de tenir-lo escrit. I una aplicació en una Lambda o un contenidor demana el secret a l’arrencar. ⚠️ Recorda (del subcapítol 11.2) que, si Terraform llegeix un secret, aquest pot acabar a l’estat, així que l’estat ha d’estar xifrat i protegit.

Exemple del món real: una aplicació necessita connectar-se a la seva base de dades de producció. La contrasenya es guarda a Secrets Manager amb rotació automàtica mensual. L’aplicació, a l’arrencar, demana la contrasenya a Secrets Manager (té permís IAM per a aquell secret concret, i per a cap altre). Quan Secrets Manager rota la contrasenya, actualitza tant el secret com la base de dades, i l’aplicació simplement torna a demanar la nova: tot sense que cap humà vegi ni escrigui mai la contrasenya. Si un atacant aconseguís el codi de l’aplicació, no hi trobaria cap contrasenya.

El que has de recordar

  • Els secrets (contrasenyes, claus d’API, tokens) mai han d’anar al codi ni a fitxers versionats; es guarden en un gestor de secrets i l’aplicació els llegeix en el moment, amb permisos.
  • Els secrets es xifren amb KMS (subcap. 23.5) i l’accés es controla amb IAM (mínim privilegi).
  • Secrets Manager: dissenyat per a secrets, amb rotació automàtica de credencials (el seu gran avantatge) i integració nativa amb bases de dades; de pagament.
  • Parameter Store: servei general per a configuració i secrets (com a cadenes xifrades), senzill i amb nivell gratuït, però sense rotació automàtica.
  • Tria Secrets Manager si necessites rotació automàtica (credencials crítiques, BD de producció); Parameter Store per a allò senzill i gratuït. Per començar, Parameter Store és suficient.
  • Patró: el secret viu al gestor (xifrat), l’app/Terraform el llegeix amb IAM, i mai apareix al codi. ⚠️ Si Terraform el llegeix, protegeix l’estat (que pot contenir-lo).

Has acabat el Capítol 23! Ja domines la seguretat en profunditat a AWS: límits organitzatius, compliment, amenaces, visió centralitzada, xifrat i secrets. Al Capítol 24 veurem l’altra cara imprescindible d’operar en producció: la observabilitat (logs, mètriques i traces).

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