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 momentEls 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
- 1.1 El model client-servidor tradicional
- 1.2 Problemes que venia a resoldre el núvol
- 1.3 On-premise vs cloud vs híbrid
- 1.4 Els tres models de servei: IaaS, PaaS, SaaS
- 1.5 Els cinc pilars del cloud (segons NIST)
- 1.6 Avantatges reals: elasticitat, pagament per ús, disponibilitat global
Capítol 2 · El mercat cloud i els grans proveïdors
- 2.1 AWS, Azure i GCP: diferències i quotes de mercat
- 2.2 Per què aprendre AWS primer
- 2.3 Conceptes que són universals entre proveïdors
Capítol 3 · Regions, zones de disponibilitat i edge
- 3.1 Què és una regió AWS i com triar-la
- 3.2 Availability Zones: alta disponibilitat des del disseny
- 3.3 Edge locations i CloudFront
- 3.4 Latència, resiliència i sobirania de dades
Capítol 4 · Càlcul: EC2
- 4.1 Instàncies: tipus, famílies i quan triar cadascuna
- 4.2 AMIs, key pairs i Security Groups
- 4.3 Cicle de vida d'una instància
- 4.4 Elastic IPs i Placement Groups
- 4.5 Savings Plans vs Reserved vs On-Demand vs Spot
Capítol 5 · Emmagatzematge: S3
- 5.1 Buckets, objectes i claus
- 5.2 Classes d'emmagatzematge (Standard, IA, Glacier…)
- 5.3 Versionat i cicle de vida d'objectes
- 5.4 Polítiques de bucket i ACLs
- 5.5 Hosting de llocs web estàtics
Capítol 6 · Xarxes: VPC
- 6.1 Què és una VPC i per què la necessites
- 6.2 Subxarxes públiques i privades
- 6.3 Internet Gateway i NAT Gateway
- 6.4 Route Tables i Network ACLs
- 6.5 VPC Peering i endpoints
Capítol 7 · Identitat i accés: IAM
- 7.1 Usuaris, grups, rols i polítiques
- 7.2 El principi de mínim privilegi
- 7.3 Polítiques basades en identitat vs en recurs
- 7.4 MFA i credencials temporals (STS)
- 7.5 Bones pràctiques de seguretat IAM
Capítol 8 · Bases de dades gestionades
- 8.1 RDS: motors, Multi-AZ i rèpliques de lectura
- 8.2 Aurora i els seus avantatges sobre RDS vanilla
- 8.3 DynamoDB: model clau-valor / documents
- 8.4 ElastiCache per a memòria cau en memòria
- 8.5 Quan utilitzar cada tipus de base de dades
Capítol 9 · Per què Infraestructura com a Codi
- 9.1 Problemes del provisionament manual
- 9.2 IaC declaratiu vs imperatiu
- 9.3 Terraform vs CloudFormation vs Pulumi vs CDK
- 9.4 El cicle plan → apply → destroy
Capítol 10 · HCL: el llenguatge de Terraform
- 10.1 Blocs resource, variable, output, locals
- 10.2 Tipus de dades: string, number, bool, list, map, object
- 10.3 Expressions, referències i funcions built-in
- 10.4 Condicionals i bucles (count, for_each, for)
Capítol 11 · Providers i estat
- 11.1 Com funciona el provider d'AWS
- 11.2 El fitxer terraform.tfstate i la seva importància
- 11.3 State local vs state remot (S3 + DynamoDB)
- 11.4 Comandes essencials: init, plan, apply, destroy, fmt, validate
Capítol 12 · La teva primera infraestructura real amb Terraform
- 12.1 Crear una VPC amb subxarxes des de zero
- 12.2 Posar en marxa una instància EC2 pública
- 12.3 Associar un Security Group i una Elastic IP
- 12.4 Outputs i referències entre recursos
- 12.5 Flux de treball en equip: PR review de plans
Capítol 13 · Balanceig de càrrega i autoescalat
- 13.1 Application Load Balancer vs Network Load Balancer
- 13.2 Target Groups, listeners i regles
- 13.3 Auto Scaling Groups: polítiques i mètriques
- 13.4 Warm pools i lifecycle hooks
Capítol 14 · Serverless amb Lambda
- 14.1 El model d'execució de Lambda
- 14.2 Triggers: API Gateway, S3, DynamoDB Streams, SQS
- 14.3 Gestió de dependències i capes (Layers)
- 14.4 Cold starts i estratègies per reduir-los
- 14.5 Límits i antipatrones
Capítol 15 · Missatgeria i esdeveniments
- 15.1 SQS: cues estàndard vs FIFO, DLQ
- 15.2 SNS: topics, subscripcions, fan-out
- 15.3 EventBridge: event buses i regles
- 15.4 Patrons: pub/sub, desacoblament, saga
Capítol 16 · Lliurament de contingut i DNS
- 16.1 Route 53: tipus de registres i routing policies
- 16.2 CloudFront: distribucions, memòries cau i origins
- 16.3 ACM: certificats SSL/TLS gratuïts
- 16.4 WAF integrat amb CloudFront
Capítol 17 · Contenidors a AWS
- 17.1 Docker: repàs exprés de conceptes clau
- 17.2 ECR: registre privat d'imatges
- 17.3 ECS: task definitions, services, Fargate vs EC2
- 17.4 EKS: quan Kubernetes i quan no
Capítol 18 · Mòduls: reutilització i composició
- 18.1 Anatomia d'un mòdul Terraform
- 18.2 Variables d'entrada, outputs i dependències
- 18.3 Mòduls locals vs mòduls del Terraform Registry
- 18.4 Versionat de mòduls amb Git tags
- 18.5 Disseny de mòduls genèrics vs específics de domini
Capítol 19 · Workspaces i gestió d'entorns
- 19.1 Workspaces de Terraform: casos d'ús i limitacions
- 19.2 Estratègia de directoris per entorn (dev/stg/prod)
- 19.3 Terragrunt: DRY per a configuracions d'entorn
- 19.4 Variables d'entorn i fitxers .tfvars
Capítol 20 · Backends remots i locking
- 20.1 Configurar S3 + DynamoDB com a backend
- 20.2 State locking: evitar corrupció en equip
- 20.3 Migració d'estat entre backends
- 20.4 terraform import: portar recursos existents a l'estat
Capítol 21 · Testing d'infraestructura
- 21.1 Terraform validate i fmt en CI
- 21.2 Checkov i tfsec: anàlisi de seguretat estàtica
- 21.3 Terratest: tests d'integració en Go
- 21.4 Contract testing entre mòduls
Capítol 22 · Terraform en CI/CD
- 22.1 Pipeline bàsic: lint → plan → apply a GitHub Actions
- 22.2 Atlantis: GitOps per a Terraform
- 22.3 Terraform Cloud / HCP Terraform
- 22.4 Drift detection i reconciliació automàtica
Capítol 23 · Seguretat en profunditat
- 23.1 AWS Organizations i Service Control Policies
- 23.2 AWS Config: compliment continu
- 23.3 GuardDuty: detecció d'amenaces
- 23.4 Security Hub: visió centralitzada
- 23.5 KMS: gestió de claus i rotació
- 23.6 Secrets Manager vs Parameter Store
Capítol 24 · Observabilitat: logs, mètriques i traces
- 24.1 CloudWatch Logs, mètriques i alarmes
- 24.2 CloudWatch Dashboards i Contributor Insights
- 24.3 X-Ray: traçat distribuït
- 24.4 OpenTelemetry a AWS
- 24.5 Managed Grafana i Managed Prometheus
Capítol 25 · Optimització de costos
- 25.1 AWS Cost Explorer i pressupostos amb alertes
- 25.2 Trusted Advisor i Compute Optimizer
- 25.3 Rightsizing: com detectar sobredimensionament
- 25.4 Savings Plans vs Reserved Instances: decisió estratègica
- 25.5 FinOps: cultura i processos per controlar la despesa
Capítol 26 · Alta disponibilitat i disaster recovery
- 26.1 RTO i RPO: definir els objectius
- 26.2 Estratègies: backup/restore, pilot light, warm standby, multi-site
- 26.3 Route 53 health checks i failover automàtic
- 26.4 AWS Backup: política centralitzada de còpies
Capítol 27 · Well-Architected Framework d'AWS
- 27.1 Els sis pilars: excel·lència operacional, seguretat, fiabilitat, eficiència de rendiment, optimització de costos, sostenibilitat
- 27.2 Well-Architected Tool: revisions formals
- 27.3 Com aplicar el framework en decisions de disseny
Capítol 28 · Arquitectures serverless a escala
- 28.1 Event-driven architecture amb Lambda + EventBridge
- 28.2 Saga pattern per a transaccions distribuïdes
- 28.3 Step Functions: orquestració de workflows complexos
- 28.4 Lambda@Edge i CloudFront Functions
Capítol 29 · Plataformes de dades a AWS
- 29.1 Data Lake amb S3, Glue i Athena
- 29.2 Kinesis Data Streams i Firehose per a streaming
- 29.3 Redshift: data warehousing a escala
- 29.4 Lake Formation: govern del dada
Capítol 30 · Multi-compte i landing zones
- 30.1 Per què separar workloads en comptes diferents
- 30.2 AWS Control Tower i Account Factory
- 30.3 Gestió centralitzada de logs i seguretat
- 30.4 Terraform a escala multi-compte amb mòduls compartits
Capítol 31 · Platform Engineering i Internal Developer Platform
- 31.1 Golden paths i abstraccions sobre Terraform
- 31.2 Service Catalog d'AWS
- 31.3 Backstage com a portal de desenvolupadors
- 31.4 Mòduls Terraform com a producte intern
Capítol 32 · Certificacions AWS rellevants
- 32.1 Cloud Practitioner: val la pena?
- 32.2 Solutions Architect Associate → Professional
- 32.3 DevOps Engineer Professional
- 32.4 Specialty: Security, Database, Networking
- 32.5 HashiCorp Terraform Associate
Capítol 33 · Projectes per consolidar el que s'ha après
- 33.1 Projecte 1: blog serverless (S3 + CloudFront + Lambda + DynamoDB)
- 33.2 Projecte 2: API REST amb ECS Fargate + RDS + ALB
- 33.3 Projecte 3: plataforma de dades amb Glue + Athena + Redshift
- 33.4 Projecte 4: landing zone multi-compte amb Terraform i Control Tower
