Megosztás a következőn keresztül:


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:

    • Egy 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.

Győződjön meg arról, hogy az Azure CLI megfelelő verziója van telepítve

  1. 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.

  2. Az alábbi paranccsal ellenőrizze, hogy az Azure CLI telepített vagy újabb verziója van-e 2.14.0 .

     az --version
    

    Ha az Azure CLI verziója alacsonyabb, akkor 2.14.0telepítsen egy későbbi verziót. További információ: Az Azure CLI telepítése.

Csatlakozás a fiókhoz

  1. 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.

  2. Ha identitása egynél több előfizetéshez van társítva, és a rendszer nem kéri az előfizetés kiválasztását, állítsa be az aktív előfizetést annak a tárfióknak az előfizetésére, amelyen működni szeretne. Ebben a példában cserélje le a <subscription-id> helyőrző értékét az előfizetés azonosítójára.

    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.

ACL-kimenet lekérése

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-xxxxxxxxxxxxa következőt: .

Az alábbi képen egy fájl ACL-jének beállítása után látható a kimenet.

2. ACL-kimenet lekérése

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-directorybeá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.

Lásd még