Arribem a un dels serveis més importants de tot el núvol: IAM. Controla qui pot fer què al teu compte d’AWS. Si la VPC era la seguretat de la teva xarxa, IAM és la seguretat de les teves identitats i permisos. Dominar els seus quatre conceptes bàsics —usuaris, grups, rols i polítiques— és imprescindible per treballar amb AWS de manera segura.
Què és IAM
IAM significa Identity and Access Management (Gestió d’Identitats i Accessos). És el servei que gestiona:
- Qui pot accedir al teu compte d’AWS (identitats).
- Què pot fer cadascú (permisos).
Dues dades importants per començar:
- IAM és gratuït.
- IAM és global: no pertany a una regió concreta; els teus usuaris i permisos serveixen a tot el teu compte.
Analogia general: IAM és el sistema de seguretat i targetes d’accés d’un edifici d’oficines. Decideix qui té targeta, a quines plantes pot entrar cadascú i quines portes pot obrir. Sense IAM ben configurat, o ningú pot treballar, o qualsevol pot entrar on vulgui (perillós).
Els quatre conceptes clau
- Usuaris (Users): una identitat per a una persona o app
Un usuari IAM representa una persona concreta (o a vegades una aplicació) que necessita accedir a AWS. Té les seves pròpies credencials:
- Usuari i contrasenya per entrar a la consola web.
- Claus d’accés (access keys) per utilitzar la línia d’ordres o programar contra AWS.
Analogia: Un usuari IAM és com la targeta d’empleat d’una persona. És individual i intransferible: cada empleat té la seva.
Bona pràctica: cada persona ha de tenir el seu propi usuari. Mai compartiu un usuari entre diverses persones, perquè llavors no sabries qui ha fet què (es perd la traçabilitat).
- Grups (Groups): organitzar usuaris per funció
Un grup és un conjunt d’usuaris que comparteixen els mateixos permisos. En lloc de donar permisos un a un a cada persona, els dónes al grup i hi poses les persones.
Analogia: Un grup és com un departament. En comptes de donar claus a cada persona del departament de comptabilitat per separat, decideixes «tots els de comptabilitat poden entrar a la sala de finances» i després afegeixes o treus persones del departament.
Exemple: Crees un grup
Desenvolupadorsamb permisos per gestionar servidors de prova. Quan entra un desenvolupador nou, l’afegeixes al grup i hereta tots els permisos automàticament. Quan se’n va, el treus i perd l’accés. Molt més fàcil que gestionar permisos persona a persona.
Els grups no tenen credencials pròpies; només agrupen usuaris. I un usuari pot estar en diversos grups alhora.
- Rols (Roles): permisos temporals que s’«assumeixen»
Un rol és una identitat amb permisos, però sense credencials fixes: no pertany a una persona concreta, sinó que s’assumeix temporalment quan es necessita. El poden assumir tant persones com, sobretot, serveis i aplicacions.
Analogia: Un rol és com un armilla de "visitant autoritzat" o un uniforme que et poses temporalment per fer una tasca. Mentre el portes, tens certs permisos; quan acabes, te’l treus. No és teu en propietat: l’utilitzes mentre el necessites.
Aquest és probablement el concepte que més costa al principi, però és el més important per a la seguretat. El seu ús típic:
Exemple clau: Tens una instància EC2 que necessita llegir fitxers d’un bucket S3. Com li dónes permís? Mala idea: posar unes claus d’accés dins del servidor (si algú el compromet, roba les claus). Bona idea: assignar un rol a la instància EC2. La instància «assumeix» el rol i obté permisos temporals per llegir S3, sense que hi hagi cap clau guardada enlloc. AWS rota aquestes credencials automàticament.
Els rols són la base de la seguretat moderna a AWS. Els veurem més a fons al subcapítol 7.4 (credencials temporals) i són protagonistes en molts capítols posteriors.
- Polítiques (Policies): el document que defineix els permisos
Una política és un document (en format JSON) que defineix exactament què es permet o es denega. Les polítiques són les que de veritat contenen els permisos; els usuaris, grups i rols simplement tenen polítiques adjuntes.
Analogia: Una política és la llista detallada de permisos escrita en un paper: «pot obrir les portes A i B, però no la C; pot llegir els documents de l’arxiu, però no modificar-los».
Una política respon a quatre preguntes:
- Effect: permetre o denegar?
- Action: quina acció? (llegir un bucket, llançar una instància…)
- Resource: sobre quin recurs?
- (Opcional) Condition: sota quines condicions?
Veurem les polítiques en detall al subcapítol 7.3.
Com encaixen els quatre
┌─────────────┐
│ POLÍTICA │ ← defineix els permisos (el "què es pot fer")
└──────┬──────┘
│ s’adjunta a...
┌───────────┼───────────┐
▼ ▼ ▼
USUARI GRUP ROL
(persona) (conjunt (s’assumeix
d’usuaris) temporalment:
serveis, apps)- Les polítiques contenen els permisos.
- S’adjunten a usuaris (persones), grups (conjunts d’usuaris) o rols (identitats temporals).
- Els grups faciliten gestionar permisos de moltes persones alhora.
- Els rols donen permisos temporals sense credencials fixes (ideals per a serveis).
Un advertiment: l’usuari root
Quan crees un compte d’AWS, obtens l’usuari root (el correu amb què et vas registrar). Aquest usuari té poder absolut sobre tot, inclosa la facturació. És tan poderós que és perillós utilitzar-lo diàriament.
Regla d’or: No utilitzis l’usuari root excepte per a les poquíssimes tasques que ho exigeixen. Crea un usuari IAM normal (amb permisos d’administrador si cal) per a la teva feina diària, i protegeix el root amb MFA (subcapítol 7.4). Ho veurem més al subcapítol 7.5.
El que has de recordar
- IAM controla qui pot fer què al teu compte. És gratuït i global.
- Usuari: una identitat per a una persona o app (amb les seves credencials). Un per persona, mai compartit.
- Grup: conjunt d’usuaris que comparteixen permisos. Facilita la gestió.
- Rol: identitat amb permisos temporals que s’assumeix (ideal per a serveis com EC2, evita guardar claus).
- Política: document JSON que defineix els permisos i s’adjunta a usuaris, grups o rols.
- No utilitzis l’usuari root per al dia a dia.
Al següent subcapítol veurem el principi més important de tota la seguretat al núvol: el mínim privilegi.
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
