Hozzáférés-vezérlési modell az Azure Data Lake Storage Gen2-ben

A Data Lake Storage Gen2 a következő engedélyezési mechanizmusokat támogatja:

  • Megosztott kulcs engedélyezése
  • Közös hozzáférésű jogosultságkód (SAS) engedélyezése
  • Szerepköralapú hozzáférés-vezérlés (Azure RBAC)
  • Attribútumalapú hozzáférés-vezérlés (Azure ABAC)
  • Hozzáférés-vezérlési listák (ACL-ek)

A megosztott kulcs és SAS-engedélyezés hozzáférést biztosít egy felhasználónak (vagy alkalmazásnak) anélkül, hogy identitást kellene igényelnie a Microsoft Entra-azonosítóban. Ezzel a két hitelesítési formával az Azure RBAC, az Azure ABAC és az ACL nincs hatással.

Az Azure RBAC és az ACL egyaránt megköveteli, hogy a felhasználó (vagy az alkalmazás) rendelkezzen identitással a Microsoft Entra-azonosítóban. Az Azure RBAC lehetővé teszi a tárfiókok adataihoz való "durva szemcsés" hozzáférést, például olvasási vagy írási hozzáférést a tárfiók összes adatához. Az Azure ABAC lehetővé teszi az RBAC-szerepkör-hozzárendelések finomítását feltételek hozzáadásával. Például olvasási vagy írási hozzáférést adhat egy adott címkével rendelkező tárfiók összes adatobjektumához. Az ACL-ekkel "részletes" hozzáférést biztosíthat, például írási hozzáférést egy adott könyvtárhoz vagy fájlhoz.

Ez a cikk az Azure RBAC-ről, az ABAC-ről és az ACL-ekről szól, valamint arról, hogy a rendszer hogyan értékeli őket együtt a tárfiók-erőforrások engedélyezési döntéseinek meghozatalához.

Szerepköralapú hozzáférés-vezérlés (Azure RBAC)

Az Azure RBAC szerepkör-hozzárendelésekkel engedélykészleteket alkalmaz a biztonsági tagokra. A biztonsági tagok olyan objektumok, amelyek a Microsoft Entra-azonosítóban definiált felhasználót, csoportot, szolgáltatásnevet vagy felügyelt identitást jelölik. Az engedélykészletek "durva szemcsés" hozzáférési szintet biztosíthatnak egy biztonsági tagnak, például olvasási vagy írási hozzáférést a tárfiók összes adatához vagy egy tároló összes adatához.

Az alábbi szerepkörök lehetővé teszik, hogy egy biztonsági tag hozzáférjen egy tárfiók adataihoz.

Szerepkör Leírás
Storage-blobadatok tulajdonosa Teljes hozzáférés a Blob Storage-tárolókhoz és -adatokhoz. Ez a hozzáférés lehetővé teszi, hogy a biztonsági tag beállítson egy elemet a tulajdonosnak, és módosítsa az összes elem ACL-jeit.
Storage blobadat-közreműködő A Blob Storage-tárolókhoz és blobokhoz való hozzáférés olvasása, írása és törlése. Ez a hozzáférés nem teszi lehetővé, hogy a biztonsági tag beállítsa egy elem tulajdonjogát, de módosíthatja a rendszerbiztonsági tag tulajdonában lévő elemek ACL-ét.
Storage-blobadatok olvasója Blobtárolók és blobok olvasása és listázása.

Az olyan szerepkörök, mint a Tulajdonos, a Közreműködő, az Olvasó és a Tárfiók közreműködője lehetővé teszik, hogy egy biztonsági tag kezelje a tárfiókot, de nem biztosít hozzáférést a fiókon belüli adatokhoz. Ezek a szerepkörök (az Olvasó kivételével) azonban hozzáférhetnek a tárkulcsokhoz, amelyek különböző ügyféleszközökön használhatók az adatok eléréséhez.

Attribútumalapú hozzáférés-vezérlés (Azure ABAC)

Az Azure ABAC az Azure RBAC-re épít úgy, hogy adott műveletek kontextusában attribútumokon alapuló szerepkör-hozzárendelési feltételeket ad hozzá. A szerepkör-hozzárendelési feltétel egy további ellenőrzés, amelyet igény szerint hozzáadhat a szerepkör-hozzárendeléshez, hogy pontosabb hozzáférés-vezérlést biztosítson. Adott erőforrásokhoz való hozzáférést nem tagadhatja meg explicit módon feltételekkel.

Az Azure ABAC-nek az Azure Storage-hoz való hozzáférés szabályozására való használatával kapcsolatos további információkért lásd : Hozzáférés engedélyezése az Azure Blob Storage-hoz Azure-szerepkör-hozzárendelési feltételek használatával.

Hozzáférés-vezérlési lista (ACL-ek)

Az ACL-ek lehetővé teszik a könyvtárakhoz és fájlokhoz való "finomabb szemcsés" hozzáférés alkalmazását. Az ACL olyan engedélyszerkezet, amely ACL-bejegyzések sorozatát tartalmazza. Minden ACL-bejegyzés egy hozzáférési szinttel társítja a biztonsági tagot. További információ: Hozzáférés-vezérlési listák (ACL-ek) az Azure Data Lake Storage Gen2-ben.

How permissions are evaluated

A rendszer a rendszerbiztonsági főkiszolgálón alapuló engedélyezés során az engedélyeket az alábbi ábrán látható módon értékeli ki.

data lake storage permission flow

  1. Az Azure meghatározza, hogy létezik-e szerepkör-hozzárendelés az egyszerű felhasználóhoz.
    • Ha létezik szerepkör-hozzárendelés, a rendszer a következő kiértékeli a szerepkör-hozzárendelési feltételeket (2).
    • Ha nem, a rendszer a következő kiértékeli az ACL-eket (4).
  2. Az Azure meghatározza, hogy léteznek-e ABAC-szerepkör-hozzárendelési feltételek.
    • Ha nincsenek feltételek, a hozzáférés biztosított.
    • Ha vannak feltételek, a rendszer kiértékeli, hogy megfelelnek-e a kérésnek (3).
  3. Az Azure meghatározza, hogy az ABAC szerepkör-hozzárendelési feltételei megfelelnek-e a kérés attribútumainak.
    • Ha mindegyik egyezik, a hozzáférés biztosított.
    • Ha legalább az egyik nem egyezik meg, a rendszer a következő kiértékeli az ACL-eket (4).
  4. Ha a szerepkör-hozzárendelések és feltételek kiértékelése után a hozzáférés nem lett explicit módon megadva, a rendszer kiértékeli az ACL-eket.
    • Ha az ACL-ek engedélyezik a kért hozzáférési szintet, a hozzáférés biztosított.
    • Ha nem, a hozzáférés megtagadva.

Fontos

Mivel a hozzáférési engedélyeket a rendszer kiértékeli, nem használhat ACL-t a szerepkör-hozzárendelés és annak feltételei által már biztosított hozzáférés korlátozására. Ennek az az oka, hogy a rendszer először kiértékeli az Azure-szerepkör-hozzárendeléseket és -feltételeket, és ha a hozzárendelés megfelelő hozzáférési engedélyt ad, a rendszer figyelmen kívül hagyja az ACL-eket.

Az alábbi ábrán három gyakori művelet engedélyfolyamata látható: a címtár tartalmának felsorolása, egy fájl olvasása és egy fájl írása.

data lake storage permission flow example

Engedélyek táblázat: Az Azure RBAC, az ABAC és az ACL kombinálása

Az alábbi táblázat bemutatja, hogyan kombinálhatja az Azure-szerepköröket, a feltételeket és az ACL-bejegyzéseket, hogy egy biztonsági tag végrehajthassa a Művelet oszlopban felsorolt műveleteket. Ez a táblázat egy olyan oszlopot jelenít meg, amely egy fiktív címtárhierarchia minden szintjét képviseli. Van egy oszlop a tároló gyökérkönyvtárához (/), egy Oregon nevű alkönyvtárhoz, egy Portland nevű Oregon könyvtár alkönyvtárához és egy Data.txt nevű szövegfájlhoz a Portland könyvtárban. Ezekben az oszlopokban az engedélyek megadásához szükséges ACL-bejegyzés rövid formátumú ábrázolásai jelennek meg. Ha a művelet végrehajtásához nincs szükség ACL-bejegyzésre, az oszlopban n/A (nem alkalmazható) jelenik meg.

Operation Hozzárendelt Azure-szerepkör (feltételekkel vagy anélkül) / Oregon/ Portland/ Data.txt
Data.txt olvasása Storage Blob adattulajdonos N.A. N/A N/A N.A.
Storage Blob Data Contributor N.A. N/A N/A N.A.
Storage Blob Data Reader N.A. N/A N/A N.A.
None --X --X --X R--
Hozzáfűzés a Data.txt fájlhoz Storage Blob adattulajdonos N.A. N/A N/A N.A.
Storage Blob Data Contributor N.A. N/A N/A N.A.
Storage Blob Data Reader --X --X --X -W-
None --X --X --X RW-
Data.txt törlése Storage Blob adattulajdonos N.A. N/A N/A N.A.
Storage Blob Data Contributor N.A. N/A N/A N.A.
Storage Blob Data Reader --X --X -WX N/A
None --X --X -WX N/A
Data.txt létrehozása Storage Blob adattulajdonos N.A. N/A N/A N.A.
Storage Blob Data Contributor N.A. N/A N/A N.A.
Storage Blob Data Reader --X --X -WX N/A
None --X --X -WX N/A
Lista/ Storage Blob adattulajdonos N.A. N/A N/A N.A.
Storage Blob Data Contributor N.A. N/A N/A N.A.
Storage Blob Data Reader N.A. N/A N/A N.A.
None R-X N.A. N/A N.A.
Lista /Oregon/ Storage Blob adattulajdonos N.A. N/A N/A N.A.
Storage Blob Data Contributor N.A. N/A N/A N.A.
Storage Blob Data Reader N.A. N/A N/A N.A.
None --X R-X N.A. N.A.
Lista /Oregon/Portland/ Storage Blob adattulajdonos N.A. N/A N/A N.A.
Storage Blob Data Contributor N.A. N/A N/A N.A.
Storage Blob Data Reader N.A. N/A N/A N.A.
None --X --X R-X N/A

Megjegyzés:

Ha meg szeretné tekinteni egy tároló tartalmát az Azure Storage Explorerben, a biztonsági tagoknak Microsoft Entra-azonosítóval kell bejelentkezniük a Storage Explorerbe, és (legalább) olvasási hozzáféréssel (R-) kell rendelkezniük a tároló gyökérmappájához (\). Ez az engedélyszint lehetővé teszi számukra a gyökérmappa tartalmának listázását. Ha nem szeretné, hogy a gyökérmappa tartalma látható legyen, hozzárendelheti őket olvasói szerepkörhöz. Ezzel a szerepkörrel a fiókban lévő tárolókat listázhatják, a tároló tartalmát azonban nem. Ezután ACL-ek használatával hozzáférést adhat bizonyos könyvtárakhoz és fájlokhoz.

Biztonsági csoportok

Mindig a Microsoft Entra biztonsági csoportokat használja hozzárendelt tagként egy ACL-bejegyzésben. Ellen kell állnia annak a lehetőségnek, hogy közvetlenül rendeljen hozzá egyéni felhasználókat vagy szolgáltatásneveket. A struktúra használatával anélkül adhat hozzá és távolíthat el felhasználókat vagy szolgáltatásneveket, hogy újra kellene alkalmaznia az ACL-eket a teljes címtárstruktúrában. Ehelyett egyszerűen hozzáadhat vagy eltávolíthat felhasználókat és szolgáltatásneveket a megfelelő Microsoft Entra biztonsági csoportból.

A csoportok beállításának számos különböző módja van. Tegyük fel például, hogy rendelkezik egy /LogData nevű könyvtárral, amely a kiszolgáló által létrehozott naplóadatokat tárolja. Az Azure Data Factory (ADF) betölti az adatokat ebbe a mappába. A szolgáltatásmérnöki csapat egyes felhasználói feltöltik a naplókat, és kezelik a mappa többi felhasználóját, a különböző Databricks-fürtök pedig az adott mappából származó naplókat elemzik.

A tevékenységek engedélyezéséhez létrehozhat egy LogsWriter csoportot és egy LogsReader csoportot. Ezután a következőképpen rendelhet hozzá engedélyeket:

  • Adja hozzá a LogsWriter csoportot a /LogData könyvtár ACL-éhez engedélyekkelrwx.
  • Adja hozzá a LogsReader csoportot a /LogData könyvtár ACL-éhez engedélyekkelr-x.
  • Adja hozzá az ADF szolgáltatásnév-objektumát vagy felügyeltszolgáltatás-identitását (MSI) a LogsWriters csoporthoz.
  • Felhasználók hozzáadása a szolgáltatásmérnöki csapathoz.LogsWriter
  • Adja hozzá a Databricks szolgáltatásnév-objektumát vagy MSI-ját a LogsReader csoporthoz.

Ha a szolgáltatásmérnöki csapat egy felhasználója elhagyja a vállalatot, egyszerűen eltávolíthatja őket a LogsWriter csoportból. Ha nem adta hozzá a felhasználót egy csoporthoz, hanem egy dedikált ACL-bejegyzést adott hozzá a felhasználóhoz, el kell távolítania az ACL-bejegyzést a /LogData könyvtárból. A bejegyzést a /LogData könyvtár teljes könyvtárhierarchiájában lévő összes alkönyvtárból és fájlból el kell távolítania.

Csoport létrehozásához és tagok hozzáadásához lásd : Alapszintű csoport létrehozása és tagok hozzáadása a Microsoft Entra-azonosítóval.

Fontos

Az Azure Data Lake Storage Gen2 a Microsoft Entra azonosítójától függ a biztonsági csoportok kezeléséhez. A Microsoft Entra ID azt javasolja, hogy egy adott biztonsági tag csoporttagsága 200-nál kevesebbre legyen korlátozva. Ez a javaslat a JSON webes jogkivonatok (JWT) korlátozásának köszönhető, amelyek a Microsoft Entra-alkalmazásokban biztosítják a biztonsági tagok csoporttagsági adatait. A korlát túllépése a Data Lake Storage Gen2 váratlan teljesítményproblémáihoz vezethet. További információ: Csoportjogcímek konfigurálása alkalmazásokhoz a Microsoft Entra ID használatával.

Az Azure-szerepkör-hozzárendelések és az ACL-bejegyzések korlátai

Csoportok használatával kisebb valószínűséggel lépi túl az előfizetésenkénti szerepkör-hozzárendelések maximális számát, valamint a fájlonként vagy könyvtáronkénti ACL-bejegyzések maximális számát. Az alábbi táblázat ezeket a korlátokat ismerteti.

Mechanizmus Scope Korlátozások Támogatott engedélyszint
Azure RBAC Tárfiókok, tárolók.
Erőforrásközi Azure-szerepkör-hozzárendelések előfizetés vagy erőforráscsoport szintjén.
4000 Azure-szerepkör-hozzárendelés egy előfizetésben Azure-szerepkörök (beépített vagy egyéni)
ACL Könyvtár, fájl Fájlonként és könyvtáronként 32 ACL-bejegyzés (gyakorlatilag 28 ACL-bejegyzés). A hozzáférési és az alapértelmezett ACL-ekre külön 32 ACL-bejegyzéses korlát vonatkozik. ACL-engedély

Megosztott kulcs és közös hozzáférésű jogosultságkód (SAS) engedélyezése

Az Azure Data Lake Storage Gen2 támogatja a közös kulcs és SAS metódusokat is a hitelesítéshez. A hitelesítési módszerek egyik jellemzője, hogy nincs identitás társítva a hívóval, ezért a rendszerbiztonsági tagok engedélyalapú hitelesítése nem hajtható végre.

Megosztott kulcs esetén a hívó hatékonyan kap "szuperfelhasználói" hozzáférést, ami azt jelenti, hogy teljes hozzáféréssel rendelkezik az összes erőforrás összes műveletéhez, beleértve az adatokat, a tulajdonos beállítását és az ACL-ek módosítását.

Az SAS-jogkivonatok a jogkivonat részeként engedélyezett engedélyeket tartalmaznak. Az SAS-jogkivonatban szereplő engedélyek hatékonyan érvényesek az összes engedélyezési döntésre, de nem végeznek további ACL-ellenőrzéseket.

Következő lépések

A hozzáférés-vezérlési listákkal kapcsolatos további információkért lásd : Hozzáférés-vezérlési listák (ACL-ek) az Azure Data Lake Storage Gen2-ben.