Cea mai bună practică pentru resursele AWS, cum ar fi EC2/Lambda/etc. este de a folosi roluri IAM, detaliate Aici. Pe scurt, nu creați un utilizator pentru un server, creați un rol pe care serviciul îl poate asuma, care are un set de permisiuni care este asociat cu serverul EC2.
Serverul cu un rol primește acreditări „temporale” atunci când rulează, astfel încât să poată accesa orice serviciu pe care rolul IAM îl permite. Când spun „temporar”, acreditările acordate serviciului sunt de scurtă durată, poate 24 de ore, dar când expiră se eliberează noi acreditări. Acest lucru este de obicei transparent, cu excepția cazului în care scrieți software care le folosește, caz în care trebuie să le verificați ocazional. S-ar putea să nu am detaliile fine chiar acolo, dar sunt mai mult sau mai puțin corecte.
AWS are politici predefinite care pot facilita definirea rolurilor.
De exemplu, puteți defini un rol care spune „Serverele EC2 cu acest rol pot împinge către SQS, pot extrage din SQS, executa această funcție lambda” și orice lucru care nu este acordat în mod explicit este refuzat. Uneori este nevoie de puțină experimentare pentru a obține permisiunile de care aveți nevoie. Cel mai mic privilegiu este cel mai bun, astfel încât, dacă o resursă precum serverul EC2 este compromisă, aceasta să nu aibă drepturi de administrator pentru AWS și să nu poată șterge totul sau să nu spună că începe minarea cripto.
Dacă lucrați într-o companie mare care desfășoară activități AWS, vă sugerez să obțineți o instruire AWS. Instruirea online pentru AWS Architect Associate într-un loc precum Cloud Guru este un minim de care aveți nevoie. AWS este complex. Lucrez în AWS cu normă întreagă de ani de zile, dar învăț ceva nou în fiecare zi.