Az AWS használatának első lépése a fiók létrehozása. Régebben ilyenkor az volt a bevett gyakorlat, hogy létrehoztunk egy IAMfelhasználót, és ezzel kezdtük a munkát. Ma már azonban ez nem számít ajánlott megoldásnak. Az AWS best practice szerint az IAM Identity Center (korábbi nevén AWS SSO) a javasolt megközelítés.
Miért jobb ez nekünk? Az Identity Center lehetővé teszi, hogy egyetlen felhasználói azonosítóval több AWS fiókhoz és több szerepkörhöz férjünk hozzá. Ez különösen akkor hasznos, ha nagyobb környezetben dolgozunk, ahol több fiókot kezelünk egyszerre. Nem kell külön-külön jelszavakat tárolni vagy hozzáféréseket kezelni, hiszen a rendszer központilag irányítja a jogosultságokat.
Az Identity Center előnyei közé tartozik a központosított felhasználó- és jogosultságkezelés, a Single Sign-On élmény, valamint az integráció külső identitásszolgáltatókkal (például Microsoft Entra ID vagy Okta). Ez jelentősen növeli a biztonságot, csökkenti a hibalehetőségeket, és egyszerűbbé teszi a mindennapi munkát.
Korlátai között említhető, hogy kisebb, egyfiókos környezetekben talán túlméretezettnek tűnhet a használata. Emellett a kezdeti konfiguráció több időt vehet igénybe, mint egy hagyományos IAM user létrehozása, viszont hosszú távon ez a befektetés megtérül.
Az Identity Center szorosan kapcsolódik az AWS Control Tower szolgáltatáshoz is. A Control Tower-rel könnyedén kialakítható egy többfiókos környezet, ahol az Identity Center biztosítja az egységes hozzáférés-kezelést. Így már az első perctől biztonságosan, skálázható módon működhet a rendszer.
Az Identity Center tehát a modern AWS hozzáférés-kezelés alapja. Ha ma hozunk létre új fiókot, érdemes már az elején ezzel kezdeni, hogy ne kelljen később bonyolult átállásokkal szembenézni.
Minden informatikai rendszerben kiemelkedő szerepet tölt be a jogosultságkezelés, hiszen ez határozza meg, hogy a rendszer mely részéhez ki és hogyan férhet hozzá. Ezzel egyidőben a jogosultságkezelési megoldások bonyolulttá tehetik ezt a területet, amelybe sokszor belezavarodhatunk. Ez sajnos egy valós probléma a mindennapokban.
A felhőben sincs ez másképp. Minden felhőszolgáltató, kicsit másképp oldja meg ezt a feladatot, annak ellenére, hogy az alapelv emögött ugyanaz: mindenki a számára kijelölt szerepkörök szerint férjen hozzá a felhő szolgáltatásaihoz.
AWS-ben az IAM (Identity and Access Management) rendszeren keresztül tudjuk kezelni a jogosultságokat. Itt azonban nem csupán a jól ismert felhasználók, felhasználói csoportok szerepelnek, hanem szerepkörök (role) és jogosultságpolitika (policy) is. Ezek használata azonban habár jól körülhatárolható, mégis sok fejfájást okoz a kezdőknek.
AWS-ben gyakran találkozom én is azzal a kérdéssel, hogy mi az a IAM szerepkör (IAM Role), és miben különbözik a jogosultságpolitika (IAM Policy). Sokan nehezen értik meg ezt a két fogalmat, pedig az IAM (Identity and Access Management) az egyik legfontosabb biztonsági pillére a felhőalapú rendszereknek.
Ebben a cikkben ehhez szeretnénk egy kis segítséget adni, bemutatva a különbségeket, használati eseteket, és gyakorlati példákat is, hogy értsd, ne csak használd az AWS jogosultságkezelését.
Mi az IAM (Identity and Access Management)?
Az IAM lehetővé teszi, hogy meghatározd:
Ki léphet be az AWS-be
Milyen műveleteket hajthat végre
Mely erőforrásokon
Az IAM az alábbi fő elemekkel dolgozik:
Elem
Leírás
IAM User
Egy AWS felhasználó (pl. fejlesztő, tesztelő)
IAM Group
Több user közös kezelése
IAM Policy
JSON-alapú jogosultságlista
IAM Role
Ideiglenes szerepkör, amelyet user vagy szolgáltatás vehet fel
IAM Policy – Mit lehet csinálni?
Egy IAM Policy (jogosultságpolitika) egy JSON formátumú dokumentum, amely pontosan meghatározza, hogy egy adott felhasználó, csoport vagy szerepkör milyen műveleteket hajthat végre, milyen AWS-erőforrásokon, és milyen feltételek mellett.
Ez a dokumentum a következőket tartalmazza:
Effect: A művelet engedélyezése ("Allow") vagy tiltása ("Deny").
Action: Az engedélyezett vagy tiltott AWS műveletek (pl. s3:PutObject, ec2:StartInstances).
Resource: Az érintett AWS-erőforrások, például egy konkrét S3 bucket vagy EC2 instance.
Condition(opcionális): További megszorítások, pl. csak bizonyos IP-címről vagy csak többfaktoros hitelesítés esetén érvényes a policy.
Miért fontos?
Az IAM Policy határozza meg, hogy valaki mit tehet meg az AWS-ben és mit nem. Ezáltal kulcsszerepe van az AWS-fiók biztonságos és kontrollált használatában.
Előre adott, vagy nekem kell kitalálni?
Amikor a policy-k szóba kerülnek az alábbi kérdés is felvetődik:
A policy-ket nekem kell megírnom, vagy vannak előre elkészített sablonok is?
A válasz pedig: mindkettő lehetséges, az AWS kétféle policy-típust támogat:
A. Managed Policies – előre definiált, újrahasznosítható
Ezeket az AWS hozta létre, és sok tipikus szerepkört lefednek (pl. olvasás S3-ból, teljes hozzáférés DynamoDB-hez).
Ez a policy lehetővé teszi, hogy a megcélzott szereplő olvasni tudjon a egy-pelda-bucket nevű S3 tárolóból, de nem tud írni vagy törölni.
IAM Role – Ki és mikor kaphat jogosultságokat?
Egy IAM Role, vagyis szerepkör, egy olyan AWS-identitás, amely nem egy adott felhasználóhoz van kötve, hanem ideiglenesen felvehető jogosultságokat biztosít különböző szolgáltatásoknak, más felhasználóknak, vagy akár külső AWS-fiókoknak.
Miért hasznos?
Nem kell hozzá felhasználónév vagy jelszó, sem hozzáférési kulcs.
A szerepkört fel lehet venni egy adott helyzetben — például amikor egy Lambda függvény elindul, vagy amikor egy EC2 példány hozzáfér egy S3 buckethez.
A role-hoz tartozó policy-k határozzák meg, hogy az adott szerepet viselő milyen AWS-műveleteket hajthat végre.
Példák szerepkör használatra:
Szituáció
Szerepkör célja
Egy Lambda függvénynek adatot kell írnia egy DynamoDB táblába
A Lambda felveszi a „DynamoDBWriterRole”-t, amely ehhez jogot ad
Egy EC2 instance fájlokat tölt fel egy S3 bucketbe
Az EC2 példány a hozzárendelt szerepkörrel teheti ezt
Egy külső felhasználó ideiglenes admin hozzáférést kap
Az IAM Role ad neki meghatározott időre jogokat
Fontos: A Role csak addig érvényes, amíg „fel van véve” – ezáltal sokkal biztonságosabb hosszú távon, mint ha kulcsokat vagy jelszót adnál ki egy szolgáltatásnak.
Hogyan „veszi fel” egy AWS-identitás az IAM Role-t?
Attól függően, hogy ki vagy mi szeretné használni a szerepkört, a felvétel módja eltér. Alapvetően három fő helyzetvan:
A. AWS szolgáltatás (pl. EC2, Lambda) automatikusan felveszi a szerepkört
Amikor egy AWS-erőforráshoz (pl. EC2 példányhoz vagy Lambda függvényhez) hozzárendelsz egy IAM role-t, akkor az AWS rendszer automatikusan „felveszi” azt a szerepet a szolgáltatás nevében futásidőben.
Példa:
Létrehozol egy role-t, ami engedélyezi PutObject műveletet egy S3 bucketre.
Ezt a role-t hozzárendeled egy EC2 példányhoz.
Amikor a példány fut, és az alkalmazás próbál írni az S3 bucketbe, az AWS automatikusan „aláírja” a kérést a role jogosultságaival.
Tehát nem kell semmit kézzel csinálni – a role automatikusan aktiválódik.
B. Egy emberi felhasználó (IAM User vagy Federated User) kézzel veszi fel a szerepkört
Ez történik például akkor, amikor:
Belépsz az AWS Management Console-ba, és ott manuálisan „Assume Role”-t (szerepváltás, szerep felvétel) végzel.
CLI-ból vagy SDK-ból használsz sts:AssumeRole hívást egy másik szerepkör felvételére.
Amikor egy AWS-identitás (pl. ember vagy szolgáltatás) ideiglenesen magára ölt egy másik jogosultságkészletet, azt nevezzük „Assume Role”-nak, azaz szerepkör felvételének.
Ez a parancs egy másik szerepkört aktivál a felhasznalo1, majd visszaad egy ideiglenes hozzáférési kulcsot, amelyet a CLI vagy SDK automatikusan használ a következő hívásokhoz. Ez hasznos például akkor, ha egy fejlesztő csak ideiglenesen akar admin jogosultságot — a role 1 órára „felvehető”, utána lejár.
C. Egy külső AWS-fiókból vagy identitásszolgáltatóból (pl. Azure EntraID, Google Workspace) történik a role felvétel
Ez akkor történik, ha van egy cross-account access (amikor egy AWS-fiók felhasználója vagy szolgáltatása hozzáférést kap egy másik AWS-fiók erőforrásaihoz, jellemzően IAM szerepkörön keresztül.) vagy federált hitelesítés (amikor egy külső identitásszolgáltató – pl. Google, Azure EntraID, vállalati SSO – felhasználói AWS-hozzáférést kapnak anélkül, hogy külön IAM felhasználót hoznánk létre nekik.):
A külső felhasználó azonosítja magát (pl. SAML vagy OIDC segítségével).
Az AWS STS (Security Token Service) engedélyezi, hogy felvegyen egy role-t, amit előre engedélyeztél neki.
Ekkor is ideiglenes tokeneket kap, amelyeket aztán használhat.
Ez a technika például Single Sign-On (SSO) esetén működik így.
IAM Role vs Policy – A teljes kép
Elem
Leírás
Policy
Meghatározza, mit lehet csinálni (pl. olvasás, írás, törlés), hol (melyik erőforráson), milyen feltételekkel
Role
Meghatározza, ki és mikor kaphatja meg ezeket a jogosultságokat – a policy-t tartalmazza
Mikor lehet összekeverni?
Sok kezdő azon akad fenn, hogy a policy-k önmagukban nem „élnek”. Csak akkor működnek, ha:
Hozzá vannak rendelve egy user-hez, group-hoz vagy role-hoz.
A role-t valaki vagy valami ténylegesen „felveszi”.
Tippek a biztonságos használathoz
Használj role-t szolgáltatásokhoz, ne kulcsokat.
Csak annyi jogosultságot adj, amennyi szükséges – ez a „least privilege principle”.
Kerüld az Action: "*" és Resource: "*" használatát, kivéve teszteléskor.
Használj IAM policy simulator-t, hogy kipróbáld, mit engedélyez a policy.
Auditáld a role használatot a CloudTrail segítségével.
Összegzés
A szerepkör olyan, mint egy színes sapka, amit ideiglenesen felvehetsz – ez mutatja, milyen szerepben vagy. A policy pedig az a szabálykönyv, ami meghatározza, hogy az adott sapka viselője mit tehet meg.