Felhasználódelegálási SAS létrehozása tárolóhoz vagy blobhoz a PowerShell használatával

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 PowerShell használatával.

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.

Figyelem

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.

Install the PowerShell module

Ha felhasználói delegálási SAS-t szeretne létrehozni a PowerShell-lel, telepítse az Az.Storage modul 1.10.0-s vagy újabb verzióját. A modul legújabb verziójának telepítéséhez kövesse az alábbi lépéseket:

  1. Távolítsa el az Azure PowerShell korábbi telepítéseit:

    • Távolítsa el az Azure PowerShell korábbi telepítését a Windowsból a Gépház alatti Alkalmazások > funkciók beállítással.
    • Távolítsa el az összes Azure-modult a helyről %Program Files%\WindowsPowerShell\Modules.
  2. Győződjön meg arról, hogy telepítve van a PowerShellGet legújabb verziója. Nyisson meg egy Windows PowerShell-ablakot, és futtassa a következő parancsot a legújabb verzió telepítéséhez:

    Install-Module PowerShellGet -Repository PSGallery -Force
    
  3. A PowerShellGet telepítése után zárja be és nyissa meg újra a PowerShell-ablakot.

  4. Telepítse az Azure PowerShell legújabb verzióját:

    Install-Module Az -Repository PSGallery -AllowClobber
    
  5. Győződjön meg arról, hogy telepítette az Azure PowerShell 3.2.0-s vagy újabb verzióját. Futtassa a következő parancsot az Azure Storage PowerShell-modul legújabb verziójának telepítéséhez:

    Install-Module -Name Az.Storage -Repository PSGallery -Force
    
  6. Zárja be és nyissa meg újra a PowerShell-ablakot.

Az Az.Storage modul telepített verziójának ellenőrzéséhez futtassa a következő parancsot:

Get-Module -ListAvailable -Name Az.Storage -Refresh

Az Azure PowerShell telepítéséről további információt az Azure PowerShell telepítése a PowerShellGet használatával című témakörben talál.

Bejelentkezés az Azure PowerShellbe a Microsoft Entra ID azonosítójával

A Microsoft Entra-fiókkal való bejelentkezéshez hívja meg az Csatlakozás-AzAccount parancsot:

Connect-AzAccount

További információ a PowerShell-lel való bejelentkezésről: Bejelentkezés az Azure PowerShell-lel.

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, a PowerShellbe 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. A felhasználói delegálási SAS létrehozásához szükséges Azure RBAC-engedélyekkel kapcsolatos további információkért tekintse meg az Engedélyek hozzárendelése az Azure RBAC-vel című szakaszt a felhasználói delegálási SAS létrehozása című szakaszban.

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:

New-AzRoleAssignment -SignInName <email> `
    -RoleDefinitionName "Storage Blob Data Contributor" `
    -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 felhasználói delegálási SAS-t hoz létre az Azure PowerShell-lel, a rendszer implicit módon hozza létre az SAS aláírásához használt felhasználói delegálási kulcsot. 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.

Ha egy tárolóhoz vagy blobhoz szeretne felhasználói delegálási SAS-t létrehozni az Azure PowerShell-lel, először hozzon létre egy új Azure Storage-környezetobjektumot a paraméter megadásával -UseConnectedAccount . A -UseConnectedAccount paraméter megadja, hogy a parancs létrehozza a környezetobjektumot azon Microsoft Entra-fiók alatt, amellyel bejelentkezett.

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

$ctx = New-AzStorageContext -StorageAccountName <storage-account> -UseConnectedAccount

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

Ha vissza szeretne adni egy felhasználódelegálási SAS-jogkivonatot egy tárolóhoz, hívja meg a New-AzStorageContainerSASToken parancsot, amely a korábban létrehozott Azure Storage környezeti objektumban van átadva.

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:

New-AzStorageContainerSASToken -Context $ctx `
    -Name <container> `
    -Permission racwdl `
    -ExpiryTime <date-time>

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

?sv=2018-11-09&sr=c&sig=<sig>&skoid=<skoid>&sktid=<sktid>&skt=2019-08-05T22%3A24%3A36Z&ske=2019-08-07T07%3A
00%3A00Z&sks=b&skv=2018-11-09&se=2019-08-07T07%3A00%3A00Z&sp=rwdl

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

Ha egy blobhoz szeretne visszaadni egy felhasználódelegálási SAS-jogkivonatot, hívja meg a New-AzStorageBlobSASToken parancsot, amely a korábban létrehozott Azure Storage környezeti objektumban van átadva.

Az alábbi szintaxis egy blob felhasználódelegálási SAS-ét adja vissza. A példa megadja a -FullUri 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:

New-AzStorageBlobSASToken -Context $ctx `
    -Container <container> `
    -Blob <blob> `
    -Permission racwd `
    -ExpiryTime <date-time>
    -FullUri

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?sv=2018-11-09&sr=b&sig=<sig>&skoid=<skoid>&sktid=<sktid>&skt=2019-08-06T21%3A16%3A54Z&ske=2019-08-07T07%3A00%3A00Z&sks=b&skv=2018-11-09&se=2019-08-07T07%3A00%3A00Z&sp=racwd

Megjegyzés:

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 PowerShellből, hívja meg a Revoke-AzStorageAccountUserDelegationKeys 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:

Revoke-AzStorageAccountUserDelegationKeys -ResourceGroupName <resource-group> `
    -StorageAccountName <storage-account>

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.

További lépések