Hozzáférés-vezérlési és data lake-konfigurációk az Azure Data Lake Storage Gen2-ben
Ez a cikk segít felmérni és megérteni az Azure Data Lake Storage Gen2 hozzáférés-vezérlési mechanizmusait. Ezek a mechanizmusok közé tartozik az Azure szerepköralapú hozzáférés-vezérlése (RBAC) és a hozzáférés-vezérlési listák (ACL-ek). Az oktatóanyagban érintett témák köre:
- Az Azure RBAC és az ACL-ek közötti hozzáférés kiértékelése
- Hozzáférés-vezérlés konfigurálása ezen mechanizmusok egyikével vagy mindkettővel
- Hozzáférés-vezérlési mechanizmusok alkalmazása a Data Lake implementációs mintáira
Alapszintű ismeretekre van szüksége a tárolókról, a biztonsági csoportokról, az Azure RBAC-ről és az ACL-ről. A vita keretei között a nyers, gazdagított és válogatott zónák általános data lake-struktúrájára hivatkozunk.
Ezt a dokumentumot az adathozzáférés-kezeléssel használhatja.
A beépített Azure RBAC-szerepkörök használata
Az Azure Storage két hozzáférési réteget biztosít: a szolgáltatáskezelést és az adatokat. Az előfizetéseket és a tárfiókokat a szolgáltatásfelügyeleti rétegen keresztül érheti el. Tárolók, blobok és egyéb adaterőforrások elérése az adatrétegen keresztül. Ha például a tárfiókok listáját szeretné az Azure-ból, küldjön egy kérést a felügyeleti végpontnak. Ha egy tárfiókban lévő fájlrendszerek, mappák vagy fájlok listáját szeretné megjeleníteni, küldjön egy kérést egy szolgáltatásvégpontnak.
A szerepkörök felügyeleti vagy adatréteg-hozzáférési engedélyeket tartalmazhatnak. Az Olvasó szerepkör írásvédett hozzáférést biztosít a felügyeleti réteg erőforrásaihoz, de nem olvasási hozzáférést az adatokhoz.
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ítanak hozzáférést az adott fiók adataihoz. Csak az adathozzáféréshez explicit módon definiált szerepkörök teszik lehetővé, hogy a biztonsági tagok hozzáférjenek az adatokhoz. Ezek a szerepkörök az Olvasó kivételével hozzáférést kapnak a tárkulcsokhoz az adatok eléréséhez.
Beépített felügyeleti szerepkörök
Az alábbiakban a beépített felügyeleti szerepkörök szerepelnek.
- Tulajdonos: Minden kezelése, beleértve az erőforrásokhoz való hozzáférést is. Ez a szerepkör kulcshozzáférést biztosít.
- Közreműködő: Az erőforrásokhoz való hozzáférés kivételével minden kezelése. Ez a szerepkör kulcshozzáférést biztosít.
- Tárfiók közreműködője: A tárfiókok teljes felügyelete. Ez a szerepkör kulcshozzáférést biztosít.
- Olvasó: Erőforrások olvasása és listázása. Ez a szerepkör nem biztosít kulcshozzáférést.
Beépített adatszerepkörök
Az alábbiakban a beépített adatszerepkörök szerepelnek.
- Storage Blob-adatok tulajdonosa: Teljes hozzáférés az Azure Storage blobtárolóihoz és adataihoz, beleértve a tulajdonjog beállítását és a POSIX-hozzáférés-vezérlés kezelését.
- Storage-blobadatok közreműködője: Azure Storage-tárolók és blobok olvasása, írása és törlése.
- Storage Blob-adatolvasó: Az Azure Storage-tárolók és blobok olvasása és listázása.
A Storage Blob Data Owner egy olyan felügyelői szerepkör, amely teljes hozzáférést biztosít az összes mutációs művelethez. Ezek a műveletek magukban foglalják egy könyvtár vagy fájl tulajdonosának beállítását, valamint az olyan címtárak és fájlok ACL-jeit, amelyek nem azok. A felügyelői hozzáférés az egyetlen engedélyezett mód az erőforrás tulajdonosának módosítására.
Megjegyzés:
Az Azure RBAC-hozzárendelések propagálása és érvénybe lépése akár öt percet is igénybe vehet.
A hozzáférés kiértékelése
A rendszer az egyszerű biztonsági alapú engedélyezés során a következő sorrendben értékeli ki az engedélyeket. További információkért tekintse meg az alábbi ábrát.
- Az Azure RBAC értékelése elsőként történik, és elsőbbséget élvez az ACL-hozzárendelésekkel szemben.
- Ha a művelet teljes mértékben engedélyezve van az RBAC alapján, a rendszer egyáltalán nem értékeli ki az ACL-eket.
- Ha a művelet nincs teljesen engedélyezve, a rendszer kiértékeli az ACL-eket.
További információ: Hogyan történik az engedélyek kiértékelése.
Megjegyzés:
Ez az engedélymodell csak az Azure Data Lake Storage-ra vonatkozik. Ez nem vonatkozik az általános célú vagy blobtárolókra, ha nincs engedélyezve hierarchikus névtér.
Ez a leírás kizárja a megosztott kulcsot és az SAS hitelesítési módszereket. Emellett kizárja azokat a forgatókönyveket is, amelyekben a biztonsági tag a beépített Storage Blob-adattulajdonos szerepkörhöz van rendelve, amely szuperfelhasználói hozzáférést biztosít.
Állítsa hamisra allowSharedKeyAccess
, hogy az identitás naplózhassa a hozzáférést.
Az adott művelethez szükséges ACL-alapú engedélyekről további információt az Azure Data Lake Storage Gen2 hozzáférés-vezérlési listáiban talál.
Megjegyzés:
- A hozzáférés-vezérlési listák csak az ugyanazon bérlőben lévő biztonsági tagokra vonatkoznak, beleértve a vendégfelhasználókat is.
- A fürthöz csatolási engedéllyel rendelkező felhasználók Azure Databricks csatlakoztatási pontokat hozhatnak létre. Konfigurálja a csatlakoztatási pontot szolgáltatásnév hitelesítő adataival vagy a Microsoft Entra átengedési lehetőségével. A létrehozáskor a rendszer nem értékeli ki az engedélyeket. Az engedélyek akkor lesznek kiértékelve, ha egy művelet a csatlakoztatási pontot használja. A fürthöz csatolható felhasználók megpróbálhatják használni a csatlakoztatási pontot.
- Amikor egy felhasználó létrehoz egy tábladefiníciót az Azure Databricksben vagy az Azure Synapse Analyticsben, olvasási hozzáféréssel kell rendelkeznie az alapul szolgáló adatokhoz.
Az Azure Data Lake Storage-hoz való hozzáférés konfigurálása
Hozzáférés-vezérlés beállítása az Azure Data Lake Storage-ban az Azure RBAC, ACL-ek vagy a kettő kombinációjának használatával.
Hozzáférés konfigurálása csak Az Azure RBAC használatával
Ha a tárolószintű hozzáférés-vezérlés elegendő, az Azure RBAC-hozzárendelések egyszerű felügyeleti megközelítést kínálnak az adatok védelméhez. Ajánlott hozzáférés-vezérlési listákat használni számos korlátozott adategységhez, vagy ha részletes hozzáférés-vezérlésre van szükség.
Hozzáférés konfigurálása csak ACL-ekkel
Az alábbiakban a hozzáférés-vezérlési listák a felhőalapú elemzések konfigurációs javaslatait sorolják fel.
Hozzáférés-vezérlési bejegyzéseket rendelhet hozzá egy biztonsági csoporthoz, nem pedig egyéni felhasználóhoz vagy szolgáltatásnévhez. További információ: Biztonsági csoportok használata egyéni felhasználók helyett.
Amikor felhasználókat ad hozzá vagy távolít el a csoportból, nem kell frissítenie a Data Lake Storage-t. A csoportok használata emellett csökkenti annak az esélyét, hogy fájlonként vagy mappánként túllépi a 32 hozzáférés-vezérlési bejegyzést. A négy alapértelmezett bejegyzés után csak 28 bejegyzés van még az engedély-hozzárendelésekhez.
Még csoportok használata esetén is számos hozzáférés-vezérlési bejegyzéssel rendelkezhet a címtárfa legfelső szintjein. Ez a helyzet akkor fordul elő, ha részletes engedélyekre van szükség a különböző csoportokhoz.
Hozzáférés konfigurálása az Azure RBAC és a hozzáférés-vezérlési listák használatával
A Storage Blob-adatok közreműködője és a Storage Blob-adatolvasó engedélyei nem a tárfiókhoz, hanem az adatokhoz biztosítanak hozzáférést. Hozzáférést a tárfiók vagy a tároló szintjén adhat meg. Ha a storage blobadatok közreműködője van hozzárendelve, az ACL-ek nem használhatók a hozzáférés kezelésére. Ahol a Storage Blob Data Reader van hozzárendelve, emelt szintű írási engedélyeket adhat az ACL-ek használatával. További információ: A hozzáférés kiértékelése.
Ez a megközelítés előnyben részesíti azokat a forgatókönyveket, ahol a felhasználók többségének olvasási hozzáférésre van szüksége, de csak néhány felhasználónak van szüksége írási hozzáférésre. A data lake-zónák különböző tárfiókok lehetnek, az adategységek pedig különböző tárolók lehetnek. A data lake-zónákat tárolók és mappák által képviselt adategységek jelölhetik.
Beágyazott hozzáférés-vezérlési listacsoport megközelítései
A beágyazott ACL-csoportok kétféleképpen használhatók.
1. lehetőség: A szülő végrehajtási csoportja
A fájlok és mappák létrehozása előtt kezdje egy szülőcsoporttal. Rendelje hozzá a csoport futtatási engedélyeit az alapértelmezetthez, és a tároló szintjén fér hozzá az ACL-ekhez. Ezután adja hozzá azokat a csoportokat, amelyek adathozzáférést igényelnek a szülőcsoporthoz.
Figyelmeztetés:
Ezt a mintát javasoljuk, ha rekurzív törléseket használ, és ehelyett használja a 2. lehetőséget: A hozzáférés-vezérlési lista más bejegyzéseket.
Ezt a technikát beágyazási csoportoknak nevezzük. A tagcsoport örökli a szülőcsoport engedélyeit, amely globális futtatási engedélyeket biztosít az összes tagcsoport számára. A tagcsoportnak nincs szüksége futtatási engedélyekre, mert ezek az engedélyek öröklődnek. A nagyobb beágyazás nagyobb rugalmasságot és rugalmasságot biztosíthat. Adja hozzá a csoportokat vagy automatizált feladatokat képviselő biztonsági csoportokat az adatelérési olvasó- és írócsoportokhoz.
2. lehetőség: A hozzáférés-vezérlési lista egyéb bejegyzése
Az ajánlott módszer az ACL másik bejegyzéskészletének használata a tárolóban vagy a gyökérben. Adja meg az alapértelmezett értékeket, és érje el az ACL-eket az alábbi képernyőn látható módon. Ez a megközelítés biztosítja, hogy a gyökérszintűtől a legalacsonyabb szintig az elérési út minden része rendelkezik futtatási engedélyekkel.
Ez a futtatási engedély lefelé propagálja a hozzáadott gyermekmappákat. Az engedély olyan mélységbe terjed, ahol a kívánt hozzáférési csoportnak olvasási és futtatási engedélyekre van szüksége. A szint a lánc legalsó részén található, ahogyan az az alábbi képernyőn látható. Ez a megközelítés hozzáférést biztosít a csoport számára az adatok olvasásához. A megközelítés hasonlóan működik az írási hozzáféréshez.
A Data Lake-zónák ajánlott biztonsága
Az alábbi használati módok az ajánlott biztonsági minták az egyes data lake-zónákhoz:
- A Raw csak egyszerű biztonsági nevek (SPN-ek) használatával engedélyezi az adatok elérését.
- A bővített verziónak csak a biztonsági egyszerű nevek (SPN-k) használatával kell engedélyeznie az adatokhoz való hozzáférést.
- A válogatottnak engedélyeznie kell a hozzáférést a biztonsági egyszerű nevek (SPN-k) és a felhasználónevek (UPN-ek) használatával.
Példaforgatókönyv a Microsoft Entra biztonsági csoportok használatára
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 címtárral /LogData
, amely a kiszolgáló által létrehozott naplóadatokat tartalmazza. Az Azure Data Factory betölti az adatokat ebbe a mappába. A szolgáltatásmérnöki csapat egyes felhasználói naplókat töltenek fel, és kezelhetik a mappa többi felhasználóját. Az Azure Databricks-elemzési és adatelemzési munkaterület-fürtök elemezhetik a mappából származó naplókat.
A tevékenységek engedélyezéséhez hozzon létre egy LogsWriter
csoportot és egy LogsReader
csoportot. Rendelje hozzá a következő engedélyeket:
- Adja hozzá a
LogsWriter
csoportot a címtár ACL-éhez/LogData
engedélyekkelrwx
. - Adja hozzá a
LogsReader
csoportot a címtár ACL-éhez/LogData
engedélyekkelr-x
. - Adja hozzá a Data Factory 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
- Az Azure Databricks konfigurálva van a Microsoft Entra-átengedéshez az Azure Data Lake Store-ba.
Ha a szolgáltatásmérnöki csapat egy felhasználója átkerül egy másik csapatba, egyszerűen távolítsa el a felhasználót 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
címtárból. Emellett el kell távolítania a bejegyzést a könyvtár teljes könyvtárhierarchiájának összes alkönyvtárából és fájljából /LogData
.
Az Azure Synapse Analytics adathozzáférés-vezérlése
Az Azure Synapse-munkaterület üzembe helyezéséhez egy Azure Data Lake Storage Gen2-fiókra van szükség. Az Azure Synapse Analytics több integrációs forgatókönyvhöz használja az elsődleges tárfiókot, és egy tárolóban tárolja az adatokat. A tároló apache Spark-táblákat és alkalmazásnaplókat tartalmaz egy úgynevezett /synapse/{workspaceName}
mappában. A munkaterület egy tárolót is használ a telepített kódtárak kezeléséhez.
A munkaterület Azure Portalon keresztüli üzembe helyezése során adjon meg egy meglévő tárfiókot, vagy hozzon létre egy újat. A megadott tárfiók a munkaterület elsődleges tárfiókja. Az üzembe helyezési folyamat hozzáférést biztosít a munkaterület identitásának a megadott Data Lake Storage Gen2-fiókhoz a Storage Blob Data Közreműködő szerepkörrel.
Ha a munkaterületet az Azure Portalon kívül helyezi üzembe, manuálisan adja hozzá az Azure Synapse Analytics-munkaterület identitását a Storage Blob Data Közreműködő szerepkörhöz. Javasoljuk, hogy a tároló szintjén rendelje hozzá a Storage Blob Data Contributor szerepkört a minimális jogosultsági elv betartásához.
Amikor folyamatokat, munkafolyamatokat és jegyzetfüzeteket futtat a feladatokon keresztül, azok a munkaterület identitásengedély-környezetét használják. Ha a feladatok bármelyike a munkaterület elsődleges tárolójára olvas vagy ír, a munkaterület identitása a Tárolási blog adatszolgáltatója által megadott olvasási/írási engedélyeket használja.
Amikor a felhasználók szkriptek futtatásához vagy fejlesztéshez jelentkeznek be a munkaterületre, a felhasználó környezeti engedélyei olvasási/írási hozzáférést biztosítanak az elsődleges tárolóhoz.
Az Azure Synapse Analytics részletes adathozzáférési vezérlése hozzáférés-vezérlési listák használatával
A Data Lake hozzáférés-vezérlésének beállításakor egyes szervezetek részletes szintű hozzáférést igényelnek. Előfordulhat, hogy bizalmas adatokkal rendelkeznek, amelyeket a szervezet egyes csoportjai nem láthatnak. Az Azure RBAC csak a tárfiók és a tároló szintjén engedélyezi az olvasást és az írást. Az ACL-ekkel finomított hozzáférés-vezérlést állíthat be a mappában és a fájl szintjén, hogy lehetővé tegye az adatok adott csoportokhoz tartozó részhalmazának olvasását/írását.
Megfontolandó szempontok Spark-táblák használatakor
Amikor Apache Spark-táblákat használ a Spark-készletben, az létrehoz egy raktármappát. A mappa a munkaterület elsődleges tárolójának tárolójának gyökerében található:
synapse/workspaces/{workspaceName}/warehouse
Ha Apache Spark-táblákat szeretne létrehozni az Azure Synapse Spark-készletben, adjon írási engedélyt a Spark-táblát létrehozó parancsot futtató csoport raktármappájára . Ha a parancs egy folyamat aktivált feladatán fut végig, adjon írási engedélyt a munkaterület MSI-jének.
Ez a példa létrehoz egy Spark-táblát:
df.write.saveAsTable("table01")
További információ: Hozzáférés-vezérlés beállítása a synapse-munkaterülethez.
Az Azure Data Lake-hozzáférés összegzése
A data lake-hozzáférés kezelésének egyetlen megközelítése sem felel meg mindenkinek. A data lake egyik fő előnye, hogy súrlódásmentes hozzáférést biztosít az adatokhoz. A gyakorlatban a különböző szervezetek különböző szabályozási szinteket szeretnének, és szabályozni szeretnék az adataikat. Egyes szervezetek központi csapattal rendelkeznek a hozzáférési és kiépítési csoportok szigorú belső felügyelet mellett történő kezelésére. Más szervezetek agilisabbak, és decentralizált irányítással rendelkeznek. Válassza ki a szabályozási szintnek megfelelő megközelítést. A választás nem okozhat indokolatlan késést vagy súrlódást az adatokhoz való hozzáférésben.