22 de març de 2024
AWS IAM: Control de l'accés a recursos i serveis AWS
Per a aquesta entrada del blog seguirem amb la mateixa temàtica que en l'última, la seguretat en Amazon Web Services, on vam donar diversos consells per a la utilització dels Security Groups d'AWS. En aquest cas parlarem d'una altra eina que Amazon Web Services posa a la nostra disposició per garantir la seguretat de la nostra infraestructura i el seu contingut. En aquest cas us parlarem d'AWS IAM (Identity and Access Management) que com bé diu el seu nom es tracta d'una eina per gestionar l'accés dels usuaris als recursos d'Amazon Web Services. I per entendre el gran potencial que té aquesta eina haurem de conèixer diversos conceptes com són els usuaris, grups, rols i polítiques.
Característiques dels usuaris, grups i rols IAM
Els usuaris IAM
Són objectes del compte que permeten a un usuari individual accedir a l'entorn AWS amb un conjunt de credencials. Els permisos es poden aplicar individualment a un usuari, però no és el recomanable, el més idoni és vincular cada usuari a un grup IAM, i a aquest grup sí que se li assignaran els permisos per accedir als recursos i objectes d'AWS.
Els grups IAM
Són objectes que permeten gestionar de manera eficient els permisos i l'accés als seus recursos a AWS. És molt recomanable l'ús de grups IAM per gestionar els permisos i necessari en el cas que hi hagi un nombre considerable d'usuaris amb accés a recursos AWS. Cada grup abastarà a diferents usuaris amb els mateixos permisos, en el cas que no s'assignin explícitament permisos directament als usuaris. Utilitzar grups d'IAM et permet tenir-ho ben organitzat i estalviar temps, ja que en el cas que hagis d'afegir un nou usuari, l'assignació de permisos per a aquest serà qüestió de segons ja que únicament hauràs de vincular-lo al grup que correspongui. Una bona pràctica és crear un grup per a cada departament (Admins, Developers, etc) ja que tots els integrants de cada grup hauran d'exercir tasques similars dins de l'entorn AWS.
Els rols IAM
Tenen similituds amb els grups IAM encara que en lloc de proporcionar permisos a usuaris, els rols serveixen per concedir permisos a les instàncies quan aquestes són creades. D'aquesta manera, les aplicacions que corren en una instància podran utilitzar aquestes credencials per signar les peticions, per exemple, una aplicació que necessiti tenir accés a un bucket de S3.
Autenticació Multifactor
AWS IAM et permet utilitzar autenticació multifactor (MFA) per afegir una capa addicional de protecció. Això és recomanable per a usuaris IAM amb molts privilegis. D'aquesta manera, l'usuari, a part d'introduir el seu usuari i contrasenya, haurà de realitzar una segona autenticació. Pot ser generada per un programari o per un maquinari, el qual pots aconseguir a través d'AWS.
Polítiques IAM
Les polítiques IAM són un document on s'enumeren les accions que un usuari, grup o rol pot realitzar sobre els recursos d'AWS. A continuació mencionem algunes de les característiques de les polítiques IAM:
- Són arxius en format JSON.
- Per defecte el permís està denegat (Deny by default)
- En el cas que hi hagi diverses polítiques, les més restrictives són les que prevalen.
- L'ordre de prioritat és el següent:
- Primer Explicit Deny
- Segon Explicit Allow
- Tercer Implicit Deny
El camp “Effect” és on estableixes si és una política de permetre o denegar, per la qual cosa són polítiques explícites, tal com hem indicat en les característiques, en cas de denegar, prevaldrà sobre qualsevol permetre que s'hagi creat.
El camp “Action” és on indiques la trucada a l'API als recursos d'AWS. En aquest camp es poden indicar diverses accions les quals s'hauran de separar per una coma. També es poden incloure totes les accions possibles escrivint *. Per exemple, si tenim la següent acció, estem indicant que es podrà crear i eliminar un bucket a S3:
“Action”:”s3:CreateBucket”,”s3:DeleteBucket”
Amb la següent acció, sabem que podrà realitzar qualsevol acció sobre S3:
“Action”:”s3:*”
En el camp “Resource” s'indica sobre quin recurs d'AWS s'aplicarà la política. En aquest element s'han d'indicar diversos camps:
arn:partició:servei:regió:id-compte:recurs
- On “partition” és on es troba el recurs, per la qual cosa s'indicarà que és a aws.
- En “service” s'indicarà el servei al qual es fa menció, com per exemple ec2, dynamodb o s3.
- Per a “region” indicarem la regió en la qual es troba el recurs. En alguns casos no s'indicarà cap regió específica.
- En el cas de “account-id” es mencionarà l'ID del teu compte AWS, que per a alguns serveis tampoc serà necessari omplir.
- I l'últim camp és “resource” on variarà depenent del servei. Per exemple, si estàs creant una política per a S3, aquí esmentaràs el bucket al qual vols aplicar aquesta política.
El posterior element “Condition” és opcional i és on s'indicaran les condicions que s'han de complir perquè s'apliqui la política.
11 pràctiques recomanables per a un bon ús del servei IAM
Per acabar us deixem les següents recomanacions d'Amazon Web Services:
- Crear usuaris individuals per a cada persona que tingui accés a recursos d'AWS.
- Gestionar els permisos a través dels grups.
- Concedir els permisos mínims a cada grup.
- Activar AWS CloudTrail per extreure els logs de totes les trucades a l'API que s'han realitzat.
- Configurar una política de contrasenyes sòlides.
- Habilitar MFA (Autenticació multifactor) per als usuaris que tinguin alts privilegis.
- Utilitzar els rols IAM per a les instàncies d'EC2.
- Utilitzar rols IAM per a l'accés compartit.
- Rotar les credencials de seguretat amb certa regularitat.
- Utilitzar condicions en les polítiques per restringir l'accés.
- No utilitzar l'usuari arrel.
Share