Felhasználói delegálási SAS létrehozása tárolóhoz vagy blobhoz az Azure CLI-vel

A közös hozzáférésű jogosultságkód (SAS) lehetővé teszi, hogy korlátozott hozzáférést biztosítson a tárfiókban lévő tárolókhoz és blobokhoz. Sas létrehozásakor meg kell adnia annak korlátait, beleértve az ügyfelek számára engedélyezett Azure Storage-erőforrásokat, az ezen erőforrásokra vonatkozó engedélyeiket és az SAS érvényességének érvényességét.

Minden SAS egy kulccsal van aláírva. SAS-t kétféleképpen írhat alá:

  • A Microsoft Entra hitelesítő adataival létrehozott kulccsal. A Microsoft Entra hitelesítő adataival aláírt SAS egy felhasználódelegálási SAS. A felhasználói delegálási SAS-t létrehozó ügyfélhez olyan Azure RBAC-szerepkört kell hozzárendelni, amely tartalmazza a Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey műveletet. További információ: Felhasználói delegálási SAS létrehozása.
  • A tárfiók kulccsal. A szolgáltatás SAS és a fiók SAS is a tárfiók kulccsal van aláírva. A szolgáltatás SAS-t létrehozó ügyfélnek közvetlen hozzáféréssel kell rendelkeznie a fiókkulcshoz, vagy hozzá kell rendelnie a Microsoft.Storage/storageAccounts/listkeys/action engedélyt. További információ: Szolgáltatás SAS létrehozása vagy fiók SAS létrehozása.

Megjegyzés:

A felhasználói delegálási SAS kiváló biztonságot nyújt a tárfiók kulccsal aláírt SAS-nek. A Microsoft javasolja, hogy lehetőség szerint használjon felhasználói delegálási SAS-t. További információ: Korlátozott hozzáférés biztosítása megosztott hozzáférésű jogosultságkódokkal (SAS) rendelkező adatokhoz.

Ez a cikk bemutatja, hogyan hozhat létre felhasználói delegálási SAS-t egy tárolóhoz vagy blobhoz a Microsoft Entra hitelesítő adataival az Azure CLI-vel.

Tudnivalók a felhasználói delegálási SAS-ről

A tárolóhoz vagy blobhoz való hozzáféréshez szükséges SAS-jogkivonatot a Microsoft Entra hitelesítő adataival vagy egy fiókkulcskal lehet védeni. A Microsoft Entra hitelesítő adataival védett SAS-t felhasználói delegálási SAS-nek nevezzük, mivel az SAS aláírásához használt OAuth 2.0 jogkivonatot a felhasználó nevében kéri a rendszer.

A Microsoft azt javasolja, hogy ha lehetséges, használja a Microsoft Entra hitelesítő adatait biztonsági ajánlott eljárásként a fiókkulcs használata helyett, amely könnyebben feltörhető. Ha az alkalmazás tervezése közös hozzáférésű jogosultságkódokat igényel, a Microsoft Entra hitelesítő adataival hozzon létre egy felhasználói delegálási SAS-t a magasabb szintű biztonság érdekében. További információ a felhasználói delegálási SAS-ről: Felhasználói delegálási SAS létrehozása.

Figyelmeztetés

Minden olyan ügyfél, amely rendelkezik érvényes SAS-szel, hozzáférhet a tárfiókban lévő adatokhoz az adott SAS által engedélyezett módon. Fontos, hogy megvédje az SAS-t a rosszindulatú vagy nem szándékos használattól. Használja a diszkréciót egy SAS terjesztéséhez, és rendelkezik egy tervvel a feltört SAS visszavonásához.

A megosztott hozzáférésű jogosultságkódokkal kapcsolatos további információkért lásd : Korlátozott hozzáférés biztosítása az Azure Storage-erőforrásokhoz közös hozzáférésű jogosultságkódok (SAS) használatával.

Telepítse az Azure CLI legújabb verzióját

Ha az Azure CLI-vel szeretné biztonságossá tenni az SAS-t a Microsoft Entra hitelesítő adataival, először győződjön meg arról, hogy az Azure CLI legújabb verzióját telepítette. Az Azure CLI telepítésével kapcsolatos további információkért lásd az Azure CLI telepítését ismertető témakört.

Ha felhasználói delegálási SAS-t szeretne létrehozni az Azure CLI használatával, győződjön meg arról, hogy telepítette a 2.0.78-es vagy újabb verziót. A telepített verzió ellenőrzéséhez használja a az --version parancsot.

Bejelentkezés a Microsoft Entra hitelesítő adataival

Jelentkezzen be az Azure CLI-be a Microsoft Entra hitelesítő adataival. További információkért lásd: Bejelentkezés az Azure CLI-vel.

Engedélyek hozzárendelése az Azure RBAC-vel

Ha felhasználói delegálási SAS-t szeretne létrehozni az Azure PowerShellből, az Azure CLI-be való bejelentkezéshez használt Microsoft Entra-fiókhoz olyan szerepkört kell hozzárendelni, amely tartalmazza a Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey műveletet. Ez az engedély lehetővé teszi, hogy a Microsoft Entra-fiók kérje a felhasználó delegálási kulcsát. A felhasználói delegálási kulcs a felhasználói delegálási SAS aláírására szolgál. A Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey műveletet biztosító szerepkört a tárfiók, az erőforráscsoport vagy az előfizetés szintjén kell hozzárendelni.

Ha nem rendelkezik megfelelő engedélyekkel ahhoz, hogy Azure-szerepköröket rendeljen egy Microsoft Entra biztonsági taghoz, előfordulhat, hogy meg kell kérnie a fiók tulajdonosát vagy rendszergazdáját, hogy rendelje hozzá a szükséges engedélyeket.

Az alábbi példa a Storage Blob Data Contributor szerepkört rendeli hozzá, amely magában foglalja a Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey műveletet. A szerepkör hatóköre a tárfiók szintjén van.

Ne felejtse el lecserélni a szögletes zárójelek helyőrző értékeit a saját értékeire:

az role assignment create \
    --role "Storage Blob Data Contributor" \
    --assignee <email> \
    --scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>"

A Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey műveletet tartalmazó beépített szerepkörökről további információt az Azure beépített szerepköreiben talál.

Sas biztonságossá tételéhez használja a Microsoft Entra hitelesítő adatait

Amikor létrehoz egy felhasználói delegálási SAS-t az Azure CLI-vel, a sas aláírásához használt felhasználói delegálási kulcs implicit módon jön létre. A rendszer az SAS-hez megadott kezdési és lejárati időt is használja a felhasználói delegálási kulcs kezdő és lejárati idejeként.

Mivel a felhasználói delegálási kulcs érvényességének maximális időtartama a kezdő dátumtól számított 7 nap, a kezdő időponttól számított 7 napon belül meg kell adnia az SAS lejárati idejét. Az SAS a felhasználói delegálási kulcs lejárta után érvénytelen, így a 7 napnál hosszabb lejárati idejű SAS továbbra is csak 7 napig érvényes.

Felhasználói delegálási SAS létrehozásakor a --auth-mode login szükséges és --as-user parameters szükséges. Adja meg a --auth-mode paraméter bejelentkezési adatait, hogy az Azure Storage-ra irányuló kérések a Microsoft Entra hitelesítő adataival legyenek engedélyezve. Adja meg azt a --as-user paramétert, amely jelzi, hogy a visszaadott SAS-nek felhasználói delegálási SAS-nek kell lennie.

Felhasználódelegálási SAS létrehozása tárolóhoz

Ha felhasználói delegálási SAS-t szeretne létrehozni egy tárolóhoz az Azure CLI-vel, hívja meg az az storage container generate-sas parancsot.

A tárolón lévő felhasználói delegálási SAS támogatott engedélyei közé tartozik a Hozzáadás, Létrehozás, Törlés, Lista, Olvasás és Írás. Az engedélyek külön-külön vagy kombinálva is megadhatók. További információ ezekről az engedélyekről: Felhasználói delegálási SAS létrehozása.

Az alábbi példa egy tároló felhasználódelegálási SAS-jogkivonatát adja vissza. Ne felejtse el lecserélni a zárójelek helyőrző értékeit a saját értékeire:

az storage container generate-sas \
    --account-name <storage-account> \
    --name <container> \
    --permissions acdlrw \
    --expiry <date-time> \
    --auth-mode login \
    --as-user

A visszaadott felhasználói delegálási SAS-jogkivonat a következőhöz hasonló lesz:

se=2019-07-27&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sktid=<sktid>&skt=2019-07-26T18%3A01%3A22Z&ske=2019-07-27T00%3A00%3A00Z&sks=b&skv=2018-11-09&sig=<signature>

Megjegyzés:

A Blob Storage által visszaadott SAS-jogkivonat nem tartalmazza az URL-lekérdezési sztring elválasztó karakterét ('?'). Ha az SAS-jogkivonatot egy erőforrás URL-címéhez fűzi, ne felejtse el hozzáfűzni az elválasztó karaktert is.

Felhasználói delegálási SAS létrehozása blobhoz

Ha felhasználói delegálási SAS-t szeretne létrehozni egy blobhoz az Azure CLI-vel, hívja meg az az storage blob generate-sas parancsot.

A blobok felhasználói delegálási SAS-jának támogatott engedélyei közé tartozik a Hozzáadás, a Létrehozás, a Törlés, az Olvasás és az Írás. Az engedélyek külön-külön vagy kombinálva is megadhatók. További információ ezekről az engedélyekről: Felhasználói delegálási SAS létrehozása.

Az alábbi szintaxis egy blob felhasználódelegálási SAS-ét adja vissza. A példa megadja a --full-uri paramétert, amely a blob URI-t adja vissza a hozzáfűzött SAS-jogkivonattal. Ne felejtse el lecserélni a zárójelek helyőrző értékeit a saját értékeire:

az storage blob generate-sas \
    --account-name <storage-account> \
    --container-name <container> \
    --name <blob> \
    --permissions acdrw \
    --expiry <date-time> \
    --auth-mode login \
    --as-user \
    --full-uri

A visszaadott felhasználói delegálási SAS URI a következőhöz hasonló lesz:

https://storagesamples.blob.core.windows.net/sample-container/blob1.txt?se=2019-08-03&sp=rw&sv=2018-11-09&sr=b&skoid=<skoid>&sktid=<sktid>&skt=2019-08-02T2
2%3A32%3A01Z&ske=2019-08-03T00%3A00%3A00Z&sks=b&skv=2018-11-09&sig=<signature>

Megjegyzés:

Az Azure CLI által visszaadott SAS-jogkivonat nem tartalmazza az URL-lekérdezési sztring elválasztó karakterét ('?'). Ha az SAS-jogkivonatot egy erőforrás URL-címéhez fűzi, az SAS-jogkivonat hozzáfűzése előtt ne felejtse el hozzáfűzni az elválasztó karaktert az erőforrás URL-címéhez.

A felhasználói delegálási SAS nem támogatja a tárolt hozzáférési szabályzatok engedélyeinek meghatározását.

Felhasználói delegálási SAS visszavonása

Ha vissza szeretne vonni egy felhasználói delegálási SAS-t az Azure CLI-ből, hívja meg az az storage account revoke-delegation-keys parancsot. Ez a parancs visszavonja a megadott tárfiókhoz társított összes felhasználói delegálási kulcsot. A kulcsokhoz társított közös hozzáférésű jogosultságkódok érvénytelenek.

Ne felejtse el lecserélni a szögletes zárójelek helyőrző értékeit a saját értékeire:

az storage account revoke-delegation-keys \
    --name <storage-account> \
    --resource-group <resource-group>

Fontos

A felhasználói delegálási kulcsot és az Azure-szerepkör-hozzárendeléseket az Azure Storage gyorsítótárazza, így a visszavonási folyamat kezdeményezése és a meglévő felhasználói delegálási SAS érvénytelenné válása között késés léphet fel.

Következő lépések