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

  1. 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).

  1. 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 Desenvolupadors amb 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.

  1. 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.

  1. 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

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