ACL-ek kezelése az Azure Data Lake Storage-ban az Azure CLI használatával
Ez a cikk bemutatja, hogyan használhatja az Azure CLI-t a címtárak és fájlok hozzáférés-vezérlési listájának lekérésére, beállítására és frissítésére.
Az ACL-öröklés már elérhető a szülői könyvtár alatt létrehozott új gyermekelemek számára. A szülőkönyvtár meglévő gyermekelemeit rekurzív módon is hozzáadhatja, frissítheti és eltávolíthatja anélkül, hogy ezeket a módosításokat külön-külön kellene végrehajtania minden gyermekelemhez.
Referenciaminták | | Visszajelzés küldése
Előfeltételek
Azure-előfizetés. További információ: Ingyenes Azure-próbaidőszak lekérése.
Olyan tárfiók, amely engedélyezve van a hierarchikus névtérrel. Az alábbi utasításokat követve hozzon létre egyet.
Azure CLI-verzió
2.14.0
vagy újabb.Az alábbi biztonsági engedélyek egyike:
Kiépített Microsoft Entra ID biztonsági tag, amely a Storage Blob Data Owner szerepkörhöz lett hozzárendelve, hatóköre a céltárolóra, tárfiókra, szülőerőforrás-csoportra vagy előfizetésre terjed ki.
Annak a céltárolónak vagy könyvtárnak a tulajdonosa, amelyre ACL-beállításokat kíván alkalmazni. Az ACL-ek rekurzív beállításához ez magában foglalja a céltárolóban vagy könyvtárban lévő összes gyermekelemet.
Tárfiókkulcs.
Győződjön meg arról, hogy az Azure CLI megfelelő verziója van telepítve
Nyissa meg az Azure Cloud Shellt, vagy ha helyileg telepítette az Azure CLI-t, nyisson meg egy parancskonzolalkalmazást, például a Windows PowerShellt.
Az alábbi paranccsal ellenőrizze, hogy az Azure CLI telepített vagy újabb verziója van-e
2.14.0
telepítve.az --version
Ha az Azure CLI verziója alacsonyabb, akkor
2.14.0
telepítsen egy későbbi verziót. További információ: Az Azure CLI telepítése.
Csatlakozás a fiókhoz
Ha helyileg használja az Azure CLI-t, futtassa a bejelentkezési parancsot.
az login
Ha a parancssori felület meg tudja nyitni az alapértelmezett böngészőt, az meg fogja tenni, és betölt egy Azure-bejelentkezési lapot.
Ellenkező esetben nyisson meg egy böngészőlapot, https://aka.ms/devicelogin és adja meg a terminálban megjelenő engedélyezési kódot. Ezután jelentkezzen be a fiók hitelesítő adataival a böngészőben.
A különböző hitelesítési módszerekkel kapcsolatos további információkért lásd : Blob- vagy üzenetsoradatokhoz való hozzáférés engedélyezése az Azure CLI-vel.
Ha identitása egynél több előfizetéshez van társítva, akkor állítsa be az aktív előfizetést annak a tárfióknak az előfizetésére, amely a statikus webhelyet fogja üzemeltetni.
az account set --subscription <subscription-id>
Cserélje le a
<subscription-id>
helyőrző értékét az előfizetés azonosítójára.
Feljegyzés
A cikkben bemutatott példa a Microsoft Entra engedélyezését mutatja be. Az engedélyezési módszerekkel kapcsolatos további információkért lásd : Blob- vagy üzenetsoradatokhoz való hozzáférés engedélyezése az Azure CLI-vel.
ACL-ek lekérése
A címtár ACL-jének lekérése az az storage fs access show paranccsal.
Ez a példa lekéri egy könyvtár ACL-ét, majd kinyomtatja az ACL-t a konzolon.
az storage fs access show -p my-directory -f my-file-system --account-name mystorageaccount --auth-mode login
Kérje le egy fájl hozzáférési engedélyeit az az storage fs access show paranccsal.
Ez a példa lekéri egy fájl ACL-ét, majd kinyomtatja az ACL-t a konzolon.
az storage fs access show -p my-directory/upload.txt -f my-file-system --account-name mystorageaccount --auth-mode login
Az alábbi képen egy könyvtár ACL-jének lekérése után látható a kimenet.
Ebben a példában a tulajdonos felhasználó olvasási, írási és végrehajtási engedélyekkel rendelkezik. A tulajdonoscsoport csak olvasási és végrehajtási engedélyekkel rendelkezik. További információ a hozzáférés-vezérlési listákról: Hozzáférés-vezérlés az Azure Data Lake Storage-ban.
ACL-ek beállítása
Az ACL beállításakor a teljes ACL-t lecseréli, beleértve az összes bejegyzést is. Ha módosítani szeretné egy biztonsági tag engedélyszintét, vagy új biztonsági tagot szeretne hozzáadni az ACL-hez anélkül, hogy más meglévő bejegyzéseket érinteni kellene, akkor ehelyett frissítenie kell az ACL-t. Az ACL lecserélése helyett az ACL frissítéséről a cikk ACL-ek frissítése című szakaszában olvashat.
Ha úgy dönt, hogy beállítja az ACL-t , hozzá kell adnia egy bejegyzést a tulajdonos felhasználóhoz, egy bejegyzést a tulajdonoscsoporthoz és egy bejegyzést az összes többi felhasználóhoz. A tulajdonos felhasználóról, a tulajdonosi csoportról és az összes többi felhasználóról további információt a Felhasználók és identitások című témakörben talál.
Ez a szakasz a következő lépéseket mutatja be:
- ACL beállítása
- ACL-ek rekurzív beállítása
ACL beállítása
A címtár ACL-jének beállításához használja az az storage fs access set parancsot.
Ez a példa beállítja az ACL-t egy címtárban a tulajdonos felhasználó, a tulajdonoscsoport vagy más felhasználók számára, majd kinyomtatja az ACL-t a konzolra.
az storage fs access set --acl "user::rw-,group::rw-,other::-wx" -p my-directory -f my-file-system --account-name mystorageaccount --auth-mode login
Ez a példa beállítja az alapértelmezett ACL-t egy címtárban a tulajdonos, a tulajdonoscsoport vagy más felhasználók számára, majd kinyomtatja az ACL-t a konzolra.
az storage fs access set --acl "default:user::rw-,group::rw-,other::-wx" -p my-directory -f my-file-system --account-name mystorageaccount --auth-mode login
Egy fájl acl-jének beállításához használja az az storage fs access set parancsot.
Ez a példa beállítja az ACL-t egy fájlon a tulajdonos felhasználó, a tulajdonoscsoport vagy más felhasználók számára, majd kinyomtatja az ACL-t a konzolon.
az storage fs access set --acl "user::rw-,group::rw-,other::-wx" -p my-directory/upload.txt -f my-file-system --account-name mystorageaccount --auth-mode login
Feljegyzés
Egy adott csoport vagy felhasználó ACL-jének beállításához használja a megfelelő objektumazonosítókat. Például egy csoport ACL-jének beállításához használja a következőtgroup:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
: . A felhasználó ACL-jének beállításához használja user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
a következőt: .
Az alábbi képen egy fájl ACL-jének beállítása után látható a kimenet.
Ebben a példában a tulajdonos felhasználó és a tulajdonoscsoport csak olvasási és írási engedélyekkel rendelkezik. Minden más felhasználó rendelkezik írási és végrehajtási engedélyekkel. További információ a hozzáférés-vezérlési listákról: Hozzáférés-vezérlés az Azure Data Lake Storage-ban.
ACL-ek rekurzív beállítása
Az ACL-ek rekurzív beállítása az az storage fs access set-rekurzív paranccsal.
Ez a példa egy névvel ellátott könyvtár ACL-jének my-parent-directory
beállítását állítja be. Ezek a bejegyzések olvasási, írási és végrehajtási engedélyeket adnak a tulajdonos felhasználónak, a tulajdonoscsoportnak csak olvasási és végrehajtási engedélyeket ad, és nem biztosít hozzáférést másoknak. A példában az utolsó ACL-bejegyzés egy adott felhasználónak ad engedélyt a következő objektumazonosítóval: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" olvasási és végrehajtási engedélyek.
az storage fs access set-recursive --acl "user::rwx,group::r-x,other::---,user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:r-x" -p my-parent-directory/ -f my-container --account-name mystorageaccount --auth-mode login
Feljegyzés
Ha alapértelmezett ACL-bejegyzést szeretne beállítani, adja hozzá az előtagot default:
minden bejegyzéshez. Például, default:user::rwx
vagy default:user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:r-x
.
ACL-ek frissítése
Az ACL frissítésekor az ACL-t módosítja ahelyett, hogy lecseréli az ACL-t. Hozzáadhat például egy új biztonsági tagot az ACL-hez anélkül, hogy az az ACL-ben felsorolt többi biztonsági tagot érintené. Ha frissíteni szeretné az ACL-t a frissítés helyett, olvassa el a cikk ACL-ek beállítása című szakaszát.
Az ACL frissítéséhez hozzon létre egy új ACL-objektumot a frissíteni kívánt ACL-bejegyzéssel, majd használja ezt az objektumot az ACL frissítési műveletében. Ne szerezze be a meglévő ACL-t, csak adja meg a frissíteni kívánt ACL-bejegyzéseket.
Ez a szakasz a következő lépéseket mutatja be:
- ACL frissítése
- ACL-ek rekurzív frissítése
ACL frissítése
Frissítse egy fájl ACL-jének frissítését az az storage fs access update-rekurzív paranccsal.
Ez a példa egy írási engedéllyel rendelkező ACL-bejegyzést frissít.
az storage fs access update-recursive --acl "user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:rwx" -p my-parent-directory/myfile.txt -f my-container --account-name mystorageaccount --auth-mode login
Egy adott csoport vagy felhasználó ACL-jének frissítéséhez használja a megfelelő objektumazonosítókat. Például, group:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
vagy user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
.
Feljegyzés
Az Azure CLI nem támogatja egyetlen könyvtár ACL-jének frissítését a gyermekelemek ACL-jének frissítése nélkül. Ha a címtár ACL-jét úgy szeretné frissíteni, hogy nem módosítaná a címtár összes gyermekelemének ACL-jét, használja a többi támogatott eszközt és SDK-t. Lásd : ACL-ek beállítása.
ACL-ek rekurzív frissítése
Az ACL-ek rekurzív frissítése az az storage fs access update-rekurzív paranccsal.
Ez a példa egy írási engedéllyel rendelkező ACL-bejegyzést frissít.
az storage fs access update-recursive --acl "user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:rwx" -p my-parent-directory/ -f my-container --account-name mystorageaccount --auth-mode login
Feljegyzés
Ha egy alapértelmezett ACL-bejegyzést szeretne frissíteni, adja hozzá az előtagot default:
minden bejegyzéshez. Például: default:user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:r-x
.
ACL-bejegyzések rekurzív eltávolítása
Egy vagy több ACL-bejegyzést rekurzív módon távolíthat el. ACL-bejegyzés eltávolításához hozzon létre egy új ACL-objektumot az ACL-bejegyzés eltávolításához, majd használja ezt az objektumot az ACL-művelet eltávolításához. Ne szerezze be a meglévő ACL-t, csak adja meg az eltávolítandó ACL-bejegyzéseket.
Távolítsa el az ACL-bejegyzéseket az az storage fs access remove-rekurzív paranccsal.
Ez a példa eltávolít egy ACL-bejegyzést a tároló gyökérkönyvtárából.
az storage fs access remove-recursive --acl "user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -p my-parent-directory/ -f my-container --account-name mystorageaccount --auth-mode login
Feljegyzés
Ha el szeretne távolítani egy alapértelmezett ACL-bejegyzést, adja hozzá az előtagot default:
minden bejegyzéshez. Például: default:user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
.
Helyreállítás hibákból
Futtatókörnyezeti vagy engedélyhibák fordulhatnak elő az ACL-ek rekurzív módosításakor. Futásidejű hibák esetén indítsa újra a folyamatot az elejétől kezdve. Engedélyhibák akkor fordulhatnak elő, ha a rendszerbiztonsági tag nem rendelkezik elegendő engedéllyel a módosított címtár vagy fájl ACL-jének módosításához. Oldja meg az engedélyproblémát, majd válassza a folyamat folytatását a meghibásodási pontról egy folytatási jogkivonat használatával, vagy indítsa újra a folyamatot az elejétől. Nem kell a folytatási jogkivonatot használnia, ha az elejétől kezdve szeretne újraindulni. Az ACL-bejegyzéseket negatív hatás nélkül újra alkalmazhatja.
Hiba esetén a paraméter beállításával --continue-on-failure
visszaadhat egy folytatási jogkivonatot false
. Miután elhárította a hibákat, a parancs ismételt futtatásával folytathatja a folyamatot, majd a --continuation
paramétert a folytatási jogkivonatra állíthatja.
az storage fs access set-recursive --acl "user::rw-,group::r-x,other::---" --continue-on-failure false --continuation xxxxxxx -p my-parent-directory/ -f my-container --account-name mystorageaccount --auth-mode login
Ha azt szeretné, hogy a folyamat megszakítás nélkül befejeződjön engedélyhibákkal, ezt megadhatja.
Annak érdekében, hogy a folyamat zavartalanul befejeződjön, állítsa a paramétert a --continue-on-failure
következőre true
: .
az storage fs access set-recursive --acl "user::rw-,group::r-x,other::---" --continue-on-failure true --continuation xxxxxxx -p my-parent-directory/ -f my-container --account-name mystorageaccount --auth-mode login
Ajánlott eljárások
Ez a szakasz az ACL-ek rekurzív beállítására vonatkozó ajánlott eljárásokat ismerteti.
Futtatókörnyezeti hibák kezelése
Futásidejű hiba több okból is előfordulhat (például kimaradás vagy ügyfélkapcsolati probléma). Ha futásidejű hibát tapasztal, indítsa újra a rekurzív ACL-folyamatot. Az ACL-ek újra alkalmazhatók az elemekre anélkül, hogy negatív hatással lenne.
Engedélyhibák kezelése (403)
Ha rekurzív ACL-folyamat futtatása közben hozzáférés-vezérlési kivételt tapasztal, előfordulhat, hogy az AD biztonsági tag nem rendelkezik elegendő engedéllyel ahhoz, hogy ACL-t alkalmazzon a címtárhierarchiában lévő gyermekelemek egy vagy több elemére. Engedélyhiba esetén a folyamat leáll, és egy folytatási jogkivonatot ad meg. Javítsa ki az engedélyproblémát, majd használja a folytatási jogkivonatot a fennmaradó adathalmaz feldolgozásához. A már sikeresen feldolgozott könyvtárakat és fájlokat nem kell újra feldolgozni. Dönthet úgy is, hogy újraindítja a rekurzív ACL-folyamatot. Az ACL-ek újra alkalmazhatók az elemekre anélkül, hogy negatív hatással lenne.
Igazolás
Javasoljuk, hogy kiépítsen egy Microsoft Entra biztonsági tagot, amely a Tárolóblob-adattulajdonos szerepkörhöz lett hozzárendelve a céltárfiók vagy tároló hatókörében.
Teljesítmény
A késés csökkentése érdekében javasoljuk, hogy futtassa a rekurzív ACL-folyamatot egy Olyan Azure-beli virtuális gépen (VM), amely a tárfiókja régiójában található.
ACL-korlátok
A címtárakra vagy fájlokra alkalmazható ACL-ek maximális száma 32 hozzáférési ACL és 32 alapértelmezett ACL. További információért lásd: Hozzáférés-vezérlés az Azure Data Lake Storage Gen2-ben.