Az Azure CLI használata az ACL-ek kezeléséhez az Azure Data Lake Storage Gen2-ben

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őkönyvtárban létrehozott új gyermekelemekhez. 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

  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 telepítve.

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

Megjegyzé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.

Get ACL output

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 Gen2-ben.

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

Megjegyzé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.

Get ACL output 2

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 Gen2-ben.

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

Megjegyzé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.

Megjegyzé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

Megjegyzés:

Ha egy alapértelmezett ACL-bejegyzést szeretne frissíteni, adja hozzá az előtagot default: minden bejegyzéshez. For example, 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

Megjegyzés:

Ha el szeretne távolítani egy alapértelmezett ACL-bejegyzést, adja hozzá az előtagot default: minden bejegyzéshez. For example, 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  

Best practices

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.

Hitelesítő adatok

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.

Kapcsolódó információk