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:
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
.
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
A PowerShellGet telepítése után zárja be és nyissa meg újra a PowerShell-ablakot.
Telepítse az Azure PowerShell legújabb verzióját:
Install-Module Az -Repository PSGallery -AllowClobber
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
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.