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.
- 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).
- 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).
- 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).
- 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.
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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: