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

A tárolókhoz, címtárakhoz vagy blobokhoz való hozzáféréshez biztosíthatja a közös hozzáférésű jogosultságkód (SAS) jogkivonatot Microsoft Entra hitelesítő adatok vagy fiókkulcs használatával. A Microsoft Entra hitelesítő adatokkal védett SAS-t felhasználódelegálási SAS-nek nevezzük. Ajánlott biztonsági gyakorlatként azt javasoljuk, hogy ha lehetséges, használja Microsoft Entra hitelesítő adatokat a fiókkulcs helyett, amely könnyebben feltörhető. Ha az alkalmazás kialakítása közös hozzáférésű jogosultságkódokat igényel, Microsoft Entra hitelesítő adatokkal hozzon létre egy felhasználódelegálási SAS-t a jobb biztonság érdekében.

Minden SAS egy kulccsal van aláírva. Felhasználódelegálási SAS létrehozásához először felhasználódelegálási kulcsot kell kérnie, amelyet aztán az SAS aláírásához használ. A felhasználódelegálási kulcs hasonló a szolgáltatás SAS-jének vagy egy fiók SAS-jének aláírásához használt fiókkulcshoz, azzal a kivétellel, hogy az a Microsoft Entra hitelesítő adataira támaszkodik. A felhasználódelegálási kulcs lekéréséhez hívja meg a Felhasználódelegálási kulcs lekérése műveletet. Ezután a felhasználódelegálási kulccsal létrehozhatja az SAS-t.

A felhasználói delegálási SAS-t Azure Blob Storage és Azure Data Lake Storage Gen2 támogatja. A tárolt hozzáférési szabályzatok nem támogatottak a felhasználódelegálási SAS-hez.

Figyelemfelhívás

A közös hozzáférésű jogosultságkódok olyan kulcsok, amelyek engedélyeket biztosítanak a tárolási erőforrások számára, és ugyanúgy kell védeni őket, mint egy fiókkulcsot. Fontos, hogy megvédje az SAS-t a rosszindulatú vagy nem szándékos használattól. Használja a diszkréciót az SAS terjesztésében, és hozzon létre egy tervet a feltört SAS visszavonására. A közös hozzáférésű jogosultságkódokat használó műveleteket csak HTTPS-kapcsolaton keresztül szabad végrehajtani, és a közös hozzáférésű jogosultságkód URI-jait csak biztonságos kapcsolaton, például HTTPS-en szabad terjeszteni.

A fiókkulcs SAS-védelemhez való használatával kapcsolatos információkért lásd: Szolgáltatás SAS létrehozása és fiók SAS létrehozása.

Felhasználódelegálási SAS-támogatás címtárhatókörű hozzáféréshez

A felhasználódelegálási SAS akkor támogatja a címtár hatókörét (sr=d), ha az engedélyezési verzió (sv) 2020-02-10 vagy újabb, és engedélyezve van egy hierarchikus névtér (HNS). A könyvtárhatókör (sr=d) szemantikája hasonló a tároló hatóköréhez (sr=c), azzal a kivételrel, hogy a hozzáférés egy könyvtárra, valamint a benne lévő fájlokra és alkönyvtárakra korlátozódik. Ha sr=d meg van adva, a sdd lekérdezési paraméterre is szükség van.

A 2020-02-10 engedélyezési verzió sztring–aláírás formátuma változatlan.

Felhasználódelegálási SAS-támogatás felhasználói objektumazonosítóhoz

A felhasználódelegálási SAS támogatja az opcionális felhasználói objektumazonosítót (OID), amely akkor van a vagy suoid paraméterbensaoid, ha az engedélyezési verzió (sv) 2020-02-10 vagy újabb. Ez az opcionális paraméter továbbfejlesztett engedélyezési modellt biztosít a többfelhasználós fürt számítási feladataihoz, például a Hadoophoz és a Sparkhoz.

Az SAS-jogkivonatok egy adott fájlrendszerműveletre és felhasználóra korlátozhatók, amely kevésbé sebezhető hozzáférési jogkivonatot biztosít, amely biztonságosabban terjeszthető többfelhasználós fürtök között. Ezeknek a funkcióknak az egyik felhasználási módja a Hadoop ABFS-illesztő és az Apache Ranger integrációja.

Felhasználódelegálási SAS engedélyezése

Amikor egy ügyfél felhasználódelegálási SAS-vel fér hozzá egy Blob Storage-erőforráshoz, az Azure Storage-ra irányuló kérés az SAS létrehozásához használt Microsoft Entra hitelesítő adatokkal lesz engedélyezve. Az adott Microsoft Entra fiókhoz megadott szerepköralapú hozzáférés-vezérlési (RBAC-) engedélyek, valamint az SAS-en explicit módon megadott engedélyek határozzák meg az ügyfél hozzáférését az erőforráshoz. Ez a megközelítés további biztonsági szintet biztosít, és segít elkerülni, hogy a fiók hozzáférési kulcsát az alkalmazás kódjával kell tárolnia. Ezen okokból az SAS Microsoft Entra hitelesítő adatokkal történő létrehozása biztonsági szempontból ajánlott eljárás.

Az SAS-t használó ügyfél számára megadott engedélyek a felhasználódelegálási kulcsot kérő rendszerbiztonsági tagnak és az erőforrásnak a () mező használatával az erőforrásnak a (sp) mező használatával signedPermissions megadott engedélyek metszetei. Ha az RBAC-n keresztül a rendszerbiztonsági tagnak adott engedély szintén nincs megadva az SAS-jogkivonaton, akkor ez az engedély nem lesz megadva annak az ügyfélnek, aki az SAS használatával próbál hozzáférni az erőforráshoz. Amikor felhasználódelegálási SAS-t hoz létre, győződjön meg arról, hogy az RBAC-vel megadott engedélyek és az SAS-jogkivonaton keresztül megadott engedélyek is igazodnak az ügyfél által megkövetelt hozzáférési szinthez.

Felhasználódelegálási SAS létrehozásához tegye a következőket:

  1. Az RBAC használatával adja meg a kívánt engedélyeket a felhasználódelegálási kulcsot kérő rendszerbiztonsági tagnak.
  2. OAuth 2.0-jogkivonat beszerzése Microsoft Entra ID.
  3. A jogkivonat használatával kérje le a felhasználódelegálási kulcsot a Felhasználódelegálási kulcs lekérése művelet meghívásával.
  4. A felhasználódelegálási kulccsal hozza létre az SAS-jogkivonatot a megfelelő mezőkkel.

Engedélyek hozzárendelése RBAC-vel

A felhasználódelegálási kulcsot kérő rendszerbiztonsági tagnak rendelkeznie kell a megfelelő engedélyekkel. A Microsoft Entra ID rendszerbiztonsági tag lehet felhasználó, csoport, szolgáltatásnév vagy felügyelt identitás.

A felhasználó delegálási kulcsának lekéréséhez ki kell osztania egy rendszerbiztonsági taghoz a Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey műveletet. A következő beépített RBAC-szerepkörök közé tartozik a Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey művelet, akár explicit módon, akár egy helyettesítő karakter definíciójának részeként:

Mivel a Felhasználódelegálási kulcs lekérése művelet a tárfiók szintjén működik, a Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey műveletet a tárfiók, az erőforráscsoport vagy az előfizetés szintjén kell hatókörre korlátozni. Ha a rendszerbiztonsági taghoz a korábban felsorolt beépített szerepkörök vagy a Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey műveletet tartalmazó egyéni szerepkör van hozzárendelve, a tárfiók, az erőforráscsoport vagy az előfizetés szintjén, a rendszerbiztonsági tag ezután kérheti a felhasználó delegálási kulcsát.

Ha a rendszerbiztonsági taghoz olyan szerepkör van hozzárendelve, amely engedélyezi az adathozzáférést, de hatóköre egy tároló szintjére terjed ki, a Storage Blob Delegator szerepkört a tárfiók, az erőforráscsoport vagy az előfizetés szintjén is hozzárendelheti a rendszerbiztonsági taghoz. A Storage Blob Delegator szerepkör engedélyezi a rendszerbiztonsági tagnak a felhasználó delegálási kulcsának lekérését.

További információ az Azure Storage RBAC-szerepköreiről: Engedélyezés az Azure Active Directoryval.

OAuth 2.0-jogkivonat beszerzése

A felhasználódelegálási kulcs lekéréséhez először kérjen egy OAuth 2.0-jogkivonatot Microsoft Entra ID. Adja meg a jogkivonatot a Tulajdonosi sémával a Felhasználódelegálási kulcs lekérése művelet meghívásának engedélyezéséhez. További információ az OAuth-jogkivonat Microsoft Entra ID-ból való lekéréséről: Hitelesítési folyamatok és alkalmazásforgatókönyvek.

Felhasználódelegálási kulcs kérése

A Felhasználódelegálási kulcs lekérése művelet hívása a kulcsot a felhasználódelegálási SAS-jogkivonat paramétereiként használt értékek halmazaként adja vissza. Ezeket a paramétereket a Felhasználódelegálási kulcs lekérése referenciában, a következő szakaszban pedig a "Felhasználódelegálási SAS létrehozása" című szakaszban ismertetjük.

Ha egy ügyfél egy OAuth 2.0-jogkivonattal kér felhasználódelegálási kulcsot, az Azure Storage a felhasználódelegálási kulcsot a rendszerbiztonsági tag nevében adja vissza. A felhasználódelegálási kulccsal létrehozott SAS megkapja a rendszerbiztonsági tagnak megadott engedélyeket.

Miután rendelkezik a felhasználódelegálási kulccsal, tetszőleges számú közös hozzáférésű felhasználódelegálási aláírást hozhat létre a kulcs élettartama során. A felhasználódelegálási kulcs független a beszerzéséhez használt OAuth 2.0-jogkivonattól, így a jogkivonatot nem kell megújítani, amíg a kulcs még érvényes. Megadhatja, hogy a kulcs legfeljebb hét napig érvényes legyen.

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

Az alábbi táblázat összefoglalja a felhasználódelegálási SAS-jogkivonatok által támogatott mezőket. A következő szakaszok további részleteket nyújtanak a paraméterek megadásáról.

SAS-mező neve SAS-jogkivonat paramétere Kötelező vagy választható Verziótámogatás Leírás
signedVersion sv Kötelező 2018.11.09-i és újabb verziók Az aláírásmező létrehozásához használt szolgáltatás verzióját jelzi. Meghatározza azt a szolgáltatásverziót is, amely az sassal végrehajtott kéréseket kezeli.
signedResource sr Kötelező Mind Meghatározza, hogy mely bloberőforrások érhetők el a közös hozzáférésű jogosultságkódon keresztül.
signedStart st Választható Mind Választható. A közös hozzáférésű jogosultságkód érvényességének időpontja az elfogadott ISO 8601 UTC formátumok egyikében kifejezve. Ha ezt az értéket nem adja meg, a rendszer az aktuális UTC-időt használja kezdő időpontként. Az elfogadott UTC-formátumokkal kapcsolatos további információkért lásd: DateTime-értékek formázása.
signedExpiry se Kötelező Mind A közös hozzáférésű jogosultságkód érvénytelenné válásának időpontja az elfogadott ISO 8601 UTC formátumok egyikében kifejezve. Az elfogadott UTC-formátumokkal kapcsolatos további információkért lásd: DateTime-értékek formázása.
signedPermissions sp Kötelező Mind Azt jelzi, hogy az SAS-t használó ügyfél mely műveleteket hajthatja végre az erőforráson. Az engedélyek kombinálhatók.
signedIp sip Választható 2015-04-05 és újabb Egy IP-címet vagy egy olyan IP-címtartományt ad meg, amelyből a kéréseket el kell fogadni. Ha tartományt ad meg, vegye figyelembe, hogy a tartomány befogadó. Csak az IPv4-címek támogatottak.

Például sip=168.1.5.65 vagy sip=168.1.5.60-168.1.5.70.
signedProtocol spr Választható 2015-04-05 és újabb Meghatározza az SAS-vel küldött kérésekhez engedélyezett protokollt. Adja meg ezt a mezőt, hogy megkövetelje, hogy az SAS-jogkivonattal küldött kérések HTTPS-t használjanak.
signedObjectId skoid Kötelező 2018-11-09 és újabb Egy Microsoft Entra biztonsági tagot azonosít.
signedTenantId sktid Kötelező 2018-11-09 és újabb Meghatározza azt a Microsoft Entra bérlőt, amelyben a rendszerbiztonsági tag definiálva van.
signedKeyStartTime skt Választható. 2018-11-09 és újabb Az értéket a Felhasználódelegálási kulcs lekérése művelet adja vissza. A felhasználói delegálási kulcs élettartamának kezdetét jelzi az elfogadott ISO 8601 UTC formátumok egyikében kifejezve. Ha az érték nincs megadva, a rendszer az aktuális időpontot feltételezi. Az elfogadott UTC-formátumokról további információt a DateTime-értékek formázása című témakörben talál.
signedKeyExpiryTime ske Kötelező 2018-11-09 és újabb Az értéket a Felhasználódelegálási kulcs lekérése művelet adja vissza. A felhasználói delegálási kulcs élettartamának végét jelzi az elfogadott ISO 8601 UTC formátumok egyikében kifejezve. Az elfogadott UTC-formátumokról további információt a DateTime-értékek formázása című témakörben talál.
signedKeyVersion skv Kötelező 2018-11-09 és újabb Az értéket a Felhasználódelegálási kulcs lekérése művelet adja vissza. Megadja a felhasználói delegálási kulcs lekéréséhez használt tárolási szolgáltatás verzióját. A mezőnek a 2018-11-09-es vagy újabb verziót kell megadnia.
signedKeyService sks Kötelező 2018-11-09 és újabb Azt a szolgáltatást jelöli, amelyre érvényes a felhasználói delegálási kulcs. Jelenleg csak a Blob Storage támogatott.
signedAuthorizedObjectId saoid Választható 2020-02-10 és újabb Megadja egy Microsoft Entra biztonsági tag objektumazonosítóját, amelyet a felhasználói delegálási kulcs tulajdonosa jogosult az SAS-jogkivonat által megadott művelet végrehajtására. Nincs további engedélyellenőrzés a POSIX-alapú hozzáférés-vezérlési listákon (ACL-eken).
signedUnauthorizedObjectId suoid Választható 2020-02-10 és újabb Egy Microsoft Entra biztonsági tag objektumazonosítóját adja meg, ha engedélyezve van egy hierarchikus névtér. Az Azure Storage POSIX ACL-ellenőrzést végez az objektumazonosítón, mielőtt engedélyezi a műveletet.
signedCorrelationId scid Választható 2020-02-10 és újabb Korrelálja a tárnaplókat az SAS-t létrehozó és terjesztő rendszerbiztonsági tag által használt naplókkal.
signedDirectoryDepth sdd Kötelező, ha sr=d 2020-02-10 és újabb A sztring-jel mezőben megadott könyvtár gyökérmappájában canonicalizedResource lévő könyvtárak számát jelzi.
signedEncryptionScope ses Választható 2020-12-06 és újabb A kérelem tartalmának titkosításához használandó titkosítási hatókört jelöli.
signature sig Kötelező Mind Az aláírás egy kivonatalapú üzenethitelesítési kód (HMAC), amelyet az SHA256 algoritmussal a sztring-jel és a kulcs alapján számítunk ki, majd Base64 kódolással kódolunk.
Cache-Control válaszfejléc rscc Választható 2013-08-15 és újabb Az Azure Storage a Cache-Control válaszfejlécet az SAS-jogkivonaton megadott értékre állítja.
Content-Disposition válaszfejléc rscd Választható 2013-08-15 és újabb Az Azure Storage a Content-Disposition válaszfejlécet az SAS-jogkivonaton megadott értékre állítja.
Content-Encoding válaszfejléc rsce Választható 2013-08-15 és újabb Az Azure Storage a Content-Encoding válaszfejlécet az SAS-jogkivonaton megadott értékre állítja.
Content-Language válaszfejléc rscl Választható 2013-08-15 és újabb Az Azure Storage a Content-Language válaszfejlécet az SAS-jogkivonaton megadott értékre állítja.
Content-Type válaszfejléc rsct Választható 2013-08-15 és újabb Az Azure Storage a Content-Type válaszfejlécet az SAS-jogkivonaton megadott értékre állítja.

Az aláírt verzió mező megadása

A kötelező signedVersion (sv) mező a megosztott hozzáférésű jogosultságkód szolgáltatásverzióját határozza meg. Ez az érték a mező létrehozásához signature használt szolgáltatás verzióját jelzi, és meghatározza azt a szolgáltatásverziót, amely az ezzel a megosztott hozzáférési aláírással küldött kéréseket kezeli. A mező értékének a sv 2018-11-09-es vagy újabb verziónak kell lennie.

Az aláírt erőforrásmező megadása

A kötelező signedResource (sr) mező meghatározza, hogy mely erőforrások érhetők el a közös hozzáférésű jogosultságkódon keresztül. Az alábbi táblázat bemutatja, hogyan hivatkozhat egy blob-, tároló- vagy könyvtárerőforrásra az SAS-jogkivonatban:

Erőforrás Paraméter értéke Támogatott verziók Description
Blob b Mind Hozzáférést biztosít a blob tartalmához és metaadataihoz.
Blobverzió Bv 2018-11-09 és újabb Hozzáférést biztosít a blobverzió tartalmához és metaadataihoz, az alapblobhoz azonban nem.
Blob-pillanatkép Bs 2018-11-09 és újabb Hozzáférést biztosít a blob pillanatképének tartalmához és metaadataihoz, az alapblobhoz nem.
Tároló c Mind Hozzáférést biztosít a tárolóban található blobok tartalmához és metaadataihoz, valamint a tárolóban lévő blobok listájához.
Címtár n 2020-02-10 és újabb Hozzáférést biztosít a címtárban lévő blobok tartalmához és metaadataihoz, valamint a címtárban lévő blobok listájához egy hierarchikus névtérrel rendelkező tárfiókban. Ha a mezőhöz signedResource könyvtár van megadva, a signedDirectoryDepth (sdd) paraméterre is szükség van. A címtárak mindig tárolón belül találhatók.

Az aláírás érvényességének időtartamának megadása

A signedStart (st) és signedExpiry (se) mezők az SAS kezdő és lejárati idejét jelzik. Az signedExpiry mező kötelező. A signedStart mező kitöltése nem kötelező. Ha nincs megadva, a rendszer az aktuális UTC-időpontot használja a kezdési időpontként.

Felhasználói delegálási SAS esetén az SAS kezdési és lejárati idejének a felhasználói delegálási kulcshoz megadott intervallumon belül kell lennie. Ha egy ügyfél a felhasználói delegálási kulcs lejárta után próbál SAS-t használni, az SAS engedélyezési hibával meghiúsul, függetlenül attól, hogy maga az SAS továbbra is érvényes-e.

Az elfogadott UTC-formátumokról további információt a DateTime-értékek formázása című témakörben talál.

Engedélyek megadása

Az SAS-jogkivonat (sp) mezőjéhez signedPermissions megadott engedélyek azt jelzik, hogy az SAS-t birtokló ügyfél mely műveleteket hajthatja végre az erőforráson.

Az engedélyek kombinálhatók, hogy az ügyfél több műveletet hajthat végre ugyanazzal az SAS-vel. Az SAS létrehozásakor az engedélyeket a következő sorrendben kell megadnia:

racwdxltmeop

A tárolók érvényes engedélybeállításai például a következők: rw, rd, rl, wd, , wlés rl. Érvénytelen beállítások például a következők: wr, dr, lrés dw. Az engedélymegjelölés többszöri megadása nem engedélyezett.

A felhasználói delegálási SAS nem tud hozzáférést biztosítani bizonyos műveletekhez:

  • A tárolók nem hozhatók létre, törölhetők és nem listázhatók.
  • A tároló metaadatai és tulajdonságai nem olvashatók és nem írhatók.
  • A tárolók nem bérelhetők.

Ha olyan SAS-t szeretne létrehozni, amely hozzáférést biztosít ezekhez a műveletekhez, használjon fiók SAS-t. További információ: Fiók SAS létrehozása.

Az egyes erőforrástípusokhoz támogatott engedélyeket az alábbi táblázat ismerteti:

Engedély URI-szimbólum Erőforrás Verziótámogatás Engedélyezett műveletek
Olvasás r Tároló
Címtár
Blob
Mind Olvassa el a tárolóban vagy könyvtárban található blobok tartalmát, tiltólistát, tulajdonságait és metaadatait. Másolási művelet forrásaként használjon blobot.
Hozzáadás a Tároló
Címtár
Blob
Mind Blokk hozzáadása hozzáfűző blobhoz.
Létrehozás c Tároló
Címtár
Blob
Mind Írjon egy új blobot, pillanatképet készítsen egy blobról, vagy másoljon egy blobot egy új blobba.
Írás w Tároló
Címtár
Blob
Mind Tartalom, tulajdonságok, metaadatok vagy tiltólista létrehozása vagy írása. A blob pillanatképe vagy bérlete. A blob átméretezése (csak lapblob). Másolási művelet céljaként használja a blobot.
Törlés n Tároló
Címtár
Blob
Mind Blob törlése. A 2017-07-29-es és újabb verziók esetében a Törlés engedély lehetővé teszi egy blob bérletének megszakítását is. További információ: Bérletblob művelet.
Verzió törlése x Tároló
Blob
2019-12-12 és újabb Blobverzió törlése.
Végleges törlés é Blob 2020-02-10 és újabb Blob-pillanatkép vagy -verzió végleges törlése.
Lista l Tároló
Címtár
Mind Nem rekurzív blobok listázása.
Címkék t Blob 2019-12-12 és újabb Olvassa el vagy írja meg a címkéket egy blobon.
Áthelyezés m Tároló
Címtár
Blob
2020-02-10 és újabb verziók Blob vagy könyvtár és tartalma áthelyezése új helyre. Ez a művelet opcionálisan a gyermekblob, könyvtár vagy szülőkönyvtár tulajdonosára korlátozható, ha a saoid paraméter szerepel az SAS-jogkivonatban, és a beragadó bit be van állítva a szülőkönyvtárban.
Végrehajtás e Tároló
Címtár
Blob
2020-02-10 és újabb verziók Kérje le a rendszertulajdonságokat, és ha a hierarchikus névtér engedélyezve van a tárfiókhoz, kérje le egy blob POSIX ACL-ét. Ha a hierarchikus névtér engedélyezve van, és a hívó egy blob tulajdonosa, ez az engedély lehetővé teszi a blob tulajdonoscsoportjának, POSIX-engedélyeinek és POSIX ACL-jének beállítását. Ez nem teszi lehetővé a hívó számára a felhasználó által definiált metaadatok olvasását.
Tulajdonjog o Tároló
Címtár
Blob
2020-02-10 és újabb verziók Ha a hierarchikus névtér engedélyezve van, ez az engedély lehetővé teszi, hogy a hívó beállítsa a tulajdonost vagy a tulajdonoscsoportot, vagy tulajdonosként viselkedjen, amikor a hívó átnevez vagy töröl egy könyvtárat vagy blobot egy olyan könyvtárban, amely rendelkezik a beragadó bitkészlettel.
Engedélyek P Tároló
Címtár
Blob
2020-02-10 és újabb verziók Ha a hierarchikus névtér engedélyezve van, ez az engedély lehetővé teszi, hogy a hívó engedélyeket és POSIX ACL-eket állítson be könyvtárakon és blobokon.
Módosíthatatlansági szabályzat beállítása i Tároló
Blob
2020-06-12 és újabb verziók Állítsa be vagy törölje a blobok módosíthatatlansági szabályzatát vagy jogi célú visszatartási funkcióját.

IP-cím vagy IP-címtartomány megadása

A nem kötelező signedIp (sip) mező egy nyilvános IP-címet vagy nyilvános IP-címtartományt határoz meg, amelyből a kéréseket fogadni szeretné. Ha az IP-cím, amelyről a kérés származik, nem egyezik meg az SAS-jogkivonatban megadott IP-címmel vagy címtartománysal, a kérés nincs engedélyezve. Csak az IPv4-címek támogatottak.

Az IP-címek tartományának megadásakor a tartomány a teljes tartományt magában foglalja. Például a vagy sip=168.1.5.60-168.1.5.70 a SAS megadása sip=168.1.5.65 korlátozza a kérést ezekre az IP-címekre.

Az alábbi táblázat azt ismerteti, hogy egy signedIp adott forgatókönyv SAS-jogkivonatának mezőjét bele kell-e foglalni az ügyfélkörnyezet és a tárfiók helye alapján.

Ügyfélkörnyezet Tárfiók helye Ajánlás
Az Azure-ban futó ügyfél Ugyanabban a régióban, mint az ügyfél Az ügyfélnek ebben a forgatókönyvben biztosított SAS-nek nem szabad kimenő IP-címet tartalmaznia a signedIp mezőhöz. A megadott kimenő IP-címmel rendelkező SAS használatával ugyanazon a régión belülről küldött kérések sikertelenek lesznek.

Ehelyett használjon azure-beli virtuális hálózatot a hálózati biztonsági korlátozások kezeléséhez. Az egyazon régión belülről érkező Azure Storage-kérések mindig magánhálózati IP-címen keresztül történnek. További információ: Azure Storage-tűzfalak és virtuális hálózatok konfigurálása.
Az Azure-ban futó ügyfél Az ügyféltől eltérő régióban Az ügyfélnek ebben a forgatókönyvben biztosított SAS tartalmazhat egy nyilvános IP-címet vagy címtartományt a signedIp mezőhöz. Az SAS-lel küldött kéréseknek a megadott IP-címről vagy címtartományból kell származniuk.
A helyszínen vagy egy másik felhőkörnyezetben futó ügyfél Bármely Azure-régióban Az ügyfélnek ebben a forgatókönyvben biztosított SAS tartalmazhat egy nyilvános IP-címet vagy címtartományt a signedIp mezőhöz. Az SAS-lel küldött kéréseknek a megadott IP-címről vagy címtartományból kell származniuk.

Ha a kérés proxyn vagy átjárón halad át, adja meg a mezőhöz a proxy vagy átjáró signedIp nyilvános kimenő IP-címét.

A HTTP-protokoll megadása

A választható signedProtocol (spr) mező határozza meg az SAS-vel végrehajtott kérések esetében engedélyezett protokollt. A lehetséges értékek csak HTTPS és HTTP (https,http) vagy HTTPS (https). Az alapértelmezett érték https,http.

Megjegyzés

A mezőhöz spr nem lehet HTTP-t megadni.

Az aláírt objektum azonosítójának megadása

A signedObjectId (skoid) mező szükséges a felhasználódelegálási SAS-hez. A Felhasználódelegálási kulcs lekérése művelet ezt az értéket adja vissza a válasz részeként. Az aláírt objektumazonosító egy GUID-érték, amely a Microsoft Identitásplatform lévő rendszerbiztonsági tag nem módosítható azonosítóját szolgálja ki.

Az aláírt bérlőazonosító megadása

A signedTenantId (sktid) mező szükséges a felhasználódelegálási SAS-hez. A Felhasználódelegálási kulcs lekérése művelet ezt az értéket adja vissza a válasz részeként. Az aláírt bérlőazonosító egy GUID-érték, amely azt a Microsoft Entra bérlőt jelöli, amelyben a rendszerbiztonsági tag definiálva van.

Az aláírt kulcs kezdési idejének megadása

A nem kötelező signedKeyStartTime (skt) mező a felhasználódelegálási kulcs élettartamának kezdetét jelzi ISO-dátum formátumban. A Felhasználódelegálási kulcs lekérése művelet ezt az értéket adja vissza a válasz részeként. Ha a kezdési időpontot nem adja meg, az aláírt kulcs kezdési ideje az aktuális időpont lesz.

Az aláírt kulcs lejárati idejének megadása

A signedKeyExpiryTime (ske) mező kötelező a felhasználódelegálási SAS-hez ISO Date formátumban. A Felhasználódelegálási kulcs lekérése művelet ezt az értéket adja vissza a válasz részeként. Az aláírt kulcs lejárati ideje a felhasználói delegálási kulcs élettartamának végét jelzi. A lejárati idő értéke az SAS kezdő időpontjától számított legfeljebb hét nap lehet.

Az aláírt kulcsszolgáltatás megadása

A signedKeyService (sks) mező szükséges a felhasználódelegálási SAS-hez. A Felhasználódelegálási kulcs lekérése művelet ezt az értéket adja vissza a válasz részeként. Az aláírt kulcs szolgáltatásmezője azt a szolgáltatást jelzi, amelyhez a felhasználó delegálási kulcsa érvényes. A Blob Storage aláírt kulcs szolgáltatásmezőjének értéke .b

Az aláírt kulcs verziójának megadása

A signedkeyversion (skv) mező szükséges a felhasználódelegálási SAS-hez. A Felhasználódelegálási kulcs lekérése művelet ezt az értéket adja vissza a válasz részeként. A signedkeyversion mező a felhasználói delegálási kulcs lekéréséhez használt tárolási szolgáltatás verzióját adja meg. A mezőnek a 2018-11-09-es vagy újabb verziót kell megadnia.

Aláírt objektumazonosító megadása egy rendszerbiztonsági taghoz

A választható signedAuthorizedObjectId (saoid) és signedUnauthorizedObjectId (suoid) mezők lehetővé teszik az Apache Hadoop és az Apache Ranger integrációját Azure Data Lake Storage Gen2 számítási feladatokhoz. Az SAS-jogkivonat ezen mezőinek egyikével adja meg a rendszerbiztonsági tag objektumazonosítóját:

  • A saoid mező egy Microsoft Entra biztonsági tag objektumazonosítóját adja meg, amelyet a felhasználódelegálási kulcs tulajdonosa jogosult az SAS-jogkivonat által megadott művelet végrehajtására. Az Azure Storage ellenőrzi az SAS-jogkivonatot, és biztosítja, hogy a felhasználói delegálási kulcs tulajdonosa rendelkezik a szükséges engedélyekkel, mielőtt az Azure Storage hozzáférést ad. Nincs további engedélyellenőrzés a POSIX ACL-eken.
  • A suoid mező egy Microsoft Entra biztonsági tag objektumazonosítóját adja meg, ha egy tárfiókhoz engedélyezve van egy hierarchikus névtér. A suoid mező csak hierarchikus névtérrel rendelkező fiókokra érvényes. Ha a suoid mező szerepel az SAS-jogkivonatban, az Azure Storage POSIX ACL-ellenőrzést végez az objektumazonosítón, mielőtt engedélyezi a műveletet. Ha ez az ACL-ellenőrzés nem sikerül, a művelet meghiúsul. A tárfiókhoz engedélyezni kell egy hierarchikus névteret, ha a suoid mező szerepel az SAS-jogkivonatban. Ellenkező esetben az engedély-ellenőrzés engedélyezési hibával hiúsul meg.

A felhasználódelegálási kulcsot kérő biztonsági tag objektumazonosítóját a rendszer a szükséges skoid mezőben rögzíti. Ha az SAS-jogkivonaton egy objektumazonosítót szeretne megadni a saoid vagy a mezővel, a mezőben azonosított skoid biztonsági taghoz hozzá kell rendelni egy RBAC-szerepkört, amely tartalmazza a Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action vagy a Microsoft.Storage/storageAccounts/blobServices/containers/blobs/manageOwnership/action szerepkörtsuoid. További információ ezekről a műveletekről: Azure-erőforrás-szolgáltató műveletei.

A vagy suoid mező saoid objektumazonosítójának megadásával a következő módokon korlátozhatja a címtár- vagy blobtulajdonlással kapcsolatos műveleteket is:

  • Ha egy művelet létrehoz egy könyvtárat vagy blobot, az Azure Storage a könyvtár vagy blob tulajdonosát az objektumazonosító által megadott értékre állítja. Ha az objektumazonosító nincs megadva, az Azure Storage a könyvtár vagy blob tulajdonosát a paraméter által skoid megadott értékre állítja.
  • Ha a ragadós bit be van állítva a szülőkönyvtárban, és a művelet töröl vagy átnevez egy könyvtárat vagy blobot, a szülőkönyvtár tulajdonosának vagy az erőforrás tulajdonosának objektumazonosítójának meg kell egyeznie az objektumazonosító által megadott értékkel.
  • Ha egy művelet beállítja a tulajdonost egy könyvtárhoz vagy blobhoz, és a x-ms-owner fejléc meg van adva, az objektumazonosító által megadott értéknek meg kell egyeznie a x-ms-owner fejléc által megadott értékkel.
  • Ha egy művelet beállítja a csoportot egy könyvtárhoz vagy blobhoz, és a x-ms-group fejléc meg van adva, az objektumazonosító által megadott értéknek a fejléc által x-ms-group megadott csoport tagjának kell lennie.
  • Ha egy művelet beállítja egy könyvtár vagy blob engedélyeit vagy ACL-ét, az alábbi két feltétel egyikének is teljesülnie kell:
    • Az objektumazonosítóhoz megadott értéknek a könyvtár vagy blob tulajdonosának kell lennie.
    • A (sp) mező értékének tartalmaznia signedPermissions kell a Ownership (o) engedélyt a Permissions (p) engedély mellett.

A vagy suoid mezőben megadott objektumazonosító szerepel a saoid diagnosztikai naplókban, amikor az SAS-jogkivonat használatával küld kéréseket.

A saoid vagy suoid mező csak akkor támogatott, ha a signedVersion (sv) mező a 2020-02-10-es vagy újabb verzióra van állítva. Ezek közül a mezők közül csak egy szerepelhet az SAS-jogkivonatban.

Korrelációs azonosító megadása

A signedCorrelationId (scid) mező olyan korrelációs azonosítót ad meg, amely a tárolónaplók és az SAS-t létrehozó és terjesztő rendszerbiztonsági tag által használt naplókkal való korrelációhoz használható. Például egy megbízható engedélyezési szolgáltatás általában egy felügyelt identitással rendelkezik, amely hitelesíti és engedélyezi a felhasználókat, létrehoz egy SAS-t, hozzáad egy bejegyzést a helyi auditnaplóhoz, és visszaadja az SAS-t egy felhasználónak, aki ezután az SAS használatával hozzáférhet az Azure Storage-erőforrásokhoz. Ha egy korrelációs azonosítót is felvesz a helyi naplóba és a tárnaplóba, lehetővé teszi, hogy ezek az események később korreláljanak. Az érték egy kapcsos zárójelek nélküli GUID, kisbetűs karakterekkel.

Ez a mező a 2020-02-10-es és újabb verzióval támogatott.

A könyvtármélység megadása

Ha a signedResource mező egy könyvtárat (sr=d) határoz meg, akkor a signedDirectoryDepth (sdd) mezőt is meg kell adnia a gyökérkönyvtár alatti alkönyvtárak számának jelzéséhez. A mező értékének sdd nem negatív egész számnak kell lennie.

A gyökérkönyvtár https://{account}.blob.core.windows.net/{container}/ például 0 mélységű. A gyökérkönyvtár minden alkönyvtára 1-gyel növeli a mélységet. A könyvtár https://{account}.blob.core.windows.net/{container}/d1/d2 mélysége 2.

Ez a mező a 2020-02-10-es és újabb verzióval támogatott.

Lekérdezési paraméterek megadása a válaszfejlécek felülbírálásához

Ha meg szeretné határozni bizonyos válaszfejlécek értékeit, amelyeket akkor kell visszaadni, ha a közös hozzáférésű jogosultságkódot használják egy kérelemben, megadhatja a válaszfejléceket a lekérdezési paraméterekben. A válaszfejlécek és a kapcsolódó lekérdezési paraméterek a következők:

Válaszfejléc neve Megfelelő SAS-lekérdezési paraméter
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

Ha például egy SAS-jogkivonaton adja meg a rsct=binary lekérdezési paramétert, a válasz fejléce Content-Type a következőre binaryvan állítva: . Ez az érték felülbírálja a Content-Type blobhoz tárolt fejlécértéket egy olyan kéréshez, amely csak ezt a közös hozzáférésű jogosultságkódot használja.

Ha olyan közös hozzáférésű jogosultságkódot hoz létre, amely lekérdezési paraméterekként adja meg a válaszfejléceket, az aláírási sztring létrehozásához használt sztringbe kell foglalnia ezeket a válaszfejléceket. További információt az "Aláírás megadása" című szakaszban talál.

A titkosítási hatókör megadása

A signed encryption scope (ses) mező egy titkosítási hatókört határoz meg, amelyet az ügyfélalkalmazás a blobok feltöltésekor használ az SAS-jogkivonat használatával a Blob put művelettel. A signed encryption scope mező akkor támogatott, ha az SAS-jogkivonat aláírt verziója (sv) mezője a 2020-12-06-os vagy újabb verzió. Ha az aláírt verzió mező a támogatott verziónál korábbi verziót ad meg, a szolgáltatás a 403-es (Tiltott) hibaválaszkódot adja vissza.

Ha az alapértelmezett titkosítási hatókör be van állítva a tárolóhoz vagy a fájlrendszerhez, a ses mező tiszteletben tartja a tárolótitkosítási szabályzatot. Ha a lekérdezési paraméter és x-ms-default-encryption-scope a ses fejléc nem egyezik, és a x-ms-deny-encryption-scope-override fejléc trueértéke , a szolgáltatás a 403-at (Tiltott) hibaválaszkódot adja vissza.

Ha a x-ms-encryption-scope fejléc és a ses lekérdezési paraméter is meg van adva a PUT kérelemben, és eltérés van, a szolgáltatás a 400-ás hibaválaszkódot adja vissza (hibás kérés).

Az aláírás megadása

A signature (sig) mező egy ügyfél közös hozzáférésű jogosultságkóddal rendelkező kérésének engedélyezésére szolgál. A sztring-előjel egy egyedi sztring, amely a kérelem engedélyezéséhez ellenőrizendő mezőkből lett létrehozva. Az aláírás egy HMAC, amely az SHA256 algoritmussal kiszámított sztring-jel és kulcs alapján van kiszámítva, majd Base64 kódolással kódolva.

A felhasználói delegálási SAS aláírási sztringjének létrehozásához hozza létre a sztringet a kérést alkotó mezőkből, kódolja a sztringet UTF-8 formátumban, majd számítsa ki az aláírást a HMAC-SHA256 algoritmussal. A sztring-előjel mezőinek URL-dekódoltnak kell lenniük.

A sztring-aláírás mezői az engedélyezéshez használt szolgáltatásverziótól (sv mezőtől) függnek. Az alábbi szakaszok a felhasználói delegálási SAS-t támogató verziók sztring–aláírás konfigurációját ismertetik.

2020-12-06-os és újabb verzió

A 2020-12-06-os és újabb engedélyezési verzióhoz tartozó sztring–aláírás formátuma a következő:

StringToSign =  signedPermissions + "\n" +
                signedStart + "\n" +
                signedExpiry + "\n" +
                canonicalizedResource + "\n" +
                signedKeyObjectId + "\n" +
                signedKeyTenantId + "\n" +
                signedKeyStart + "\n" +
                signedKeyExpiry  + "\n" +
                signedKeyService + "\n" +
                signedKeyVersion + "\n" +
                signedAuthorizedUserObjectId + "\n" +
                signedUnauthorizedUserObjectId + "\n" +
                signedCorrelationId + "\n" +
                signedIP + "\n" +
                signedProtocol + "\n" +
                signedVersion + "\n" +
                signedResource + "\n" +
                signedSnapshotTime + "\n" +
                signedEncryptionScope + "\n" +
                rscc + "\n" +
                rscd + "\n" +
                rsce + "\n" +
                rscl + "\n" +
                rsct

2020-02-10-es verzió

A 2020-02-10-es engedélyezési verzió sztring–aláírás formátuma a következő:

StringToSign =  signedPermissions + "\n" +
                signedStart + "\n" +
                signedExpiry + "\n" +
                canonicalizedResource + "\n" +
                signedKeyObjectId + "\n" +
                signedKeyTenantId + "\n" +
                signedKeyStart + "\n" +
                signedKeyExpiry  + "\n" +
                signedKeyService + "\n" +
                signedKeyVersion + "\n" +
                signedAuthorizedUserObjectId + "\n" +
                signedUnauthorizedUserObjectId + "\n" +
                signedCorrelationId + "\n" +
                signedIP + "\n" +
                signedProtocol + "\n" +
                signedVersion + "\n" +
                signedResource + "\n" +
                signedSnapshotTime + "\n" +
                rscc + "\n" +
                rscd + "\n" +
                rsce + "\n" +
                rscl + "\n" +
                rsct

2020-02-10-nél korábbi verziók

A 2020-02-10-nél korábbi engedélyezési verziók sztring–aláírás formátuma a következő:

StringToSign =  signedPermissions + "\n" +  
                signedStart + "\n" +  
                signedExpiry + "\n" +  
                canonicalizedResource + "\n" +  
                signedKeyObjectId + "\n" +
                signedKeyTenantId + "\n" +
                signedKeyStart + "\n" +
                signedKeyExpiry  + "\n" +
                signedKeyService + "\n" +
                signedKeyVersion + "\n" +
                signedAuthorizedUserObjectId + "\n" +
                signedUnauthorizedUserObjectId + "\n" +
                signedCorrelationId + "\n" +
                signedIP + "\n" +  
                signedProtocol + "\n" +  
                signedVersion + "\n" +  
                signedResource + "\n" +
                rscc + "\n" +
                rscd + "\n" +  
                rsce + "\n" +  
                rscl + "\n" +  
                rsct

Canonicalized resource

A canonicalizedResource sztring része az aláírt erőforráshoz vezető canonical elérési út. Tartalmaznia kell a Blob Storage-végpontot és az erőforrás nevét, és URL-címmel kell dekódolni. A blobelérési útvonalnak tartalmaznia kell a tárolóját. A címtár elérési útjának tartalmaznia kell a paraméternek megfelelő sdd alkönyvtárak számát.

A tároló canonicalizált erőforrás-sztringjének ki kell hagynia a tárolóhoz hozzáférést biztosító SAS záró perjelét (/).

Az alábbi példák bemutatják, hogyan hozhatja létre a canonicalizedResource sztring részét az erőforrás típusától függően.

Példa tárolóra (Azure Blob Storage)
URL = https://myaccount.blob.core.windows.net/music  
canonicalizedResource = "/blob/myaccount/music"  
Példa blobra (Azure Blob Storage)
URL = https://myaccount.blob.core.windows.net/music/intro.mp3  
canonicalizedResource = "/blob/myaccount/music/intro.mp3"  
Példa tárolóra (Azure Data Lake Storage Gen2)
URL = https://myaccount.dfs.core.windows.net/music  
canonicalizedResource = "/blob/myaccount/music"  
Példa könyvtárra (Azure Data Lake Storage Gen2)
URL = https://myaccount.dfs.core.windows.net/music/instruments/guitar/  
canonicalizedResource = "/blob/myaccount/music/instruments/guitar/"  
Példa blobra (Azure Data Lake Storage Gen2)
URL = https://myaccount.dfs.core.windows.net/music/intro.mp3  
canonicalizedResource = "/blob/myaccount/music/intro.mp3"  

Választható mezők

Ha egy mező nem kötelező, és nem szerepel az SAS-jogkivonatban, adjon meg egy üres sztringet a mezőhöz. Ügyeljen arra, hogy az üres sztring után adja meg az új vonal karakterét (\n).

Példa a felhasználódelegálási SAS-ra

Az alábbi példában egy blob URI-ja látható, amelyhez hozzá van fűzve egy felhasználódelegálási SAS-jogkivonat. A felhasználódelegálási SAS-jogkivonat olvasási és írási engedélyeket biztosít a blobhoz.

https://myaccount.blob.core.windows.net/sascontainer/blob1.txt?sp=rw&st=2023-05-24T01:13:55Z&se=2023-05-24T09:13:55Z&skoid=<object-id>&sktid=<tenant-id>&skt=2023-05-24T01:13:55Z&ske=2023-05-24T09:13:55Z&sks=b&skv=2022-11-02&sip=168.1.5.60-168.1.5.70&spr=https&sv=2022-11-02&sr=b&sig=<signature>

Az URI egyes részeit a következő táblázat ismerteti:

Name SAS-rész Description
Erőforrás URI-ja https://myaccount.blob.core.windows.net/sascontainer/blob1.txt A blob címe. Erősen javasoljuk, hogy HTTPS-t használjon.
Elválasztó ? A lekérdezési sztringet megelőző elválasztó. A határoló nem része az SAS-jogkivonatnak.
Engedélyek sp=rw Az SAS által megadott engedélyek közé tartozik az Olvasás (r) és az Írás (w).
Kezdési idő st=2023-05-24T01:13:55Z Utc idő szerint megadva. Ha azt szeretné, hogy az SAS azonnal érvényes legyen, kihagyja a kezdési időpontot.
Lejárati idő se=2023-05-24T09:13:55Z Utc idő szerint megadva.
Objektumazonosító skoid=<object-id> Egy Microsoft Entra biztonsági tag.
Bérlőazonosító sktid=<tenant-id> Az a Microsoft Entra bérlő, ahol a rendszerbiztonsági tag regisztrálva van.
Kulcs kezdési időpontja skt=2023-05-24T01:13:55Z A felhasználói delegálási kulcs élettartamának kezdete.
Kulcs lejárati ideje ske=2023-05-24T09:13:55Z A felhasználói delegálási kulcs élettartamának vége.
Kulcsszolgáltatás sks=b A szolgáltatásérték csak a Blob szolgáltatást támogatja.
Kulcsverzió skv=2022-11-02 A felhasználói delegálási kulcs lekéréséhez használt tárolási szolgáltatás verziója.
IP-címtartomány sip=168.1.5.60-168.1.5.70 Azon IP-címek tartománya, amelyekből a kérést elfogadják.
Protokoll spr=https Csak a HTTPS-t használó kérések engedélyezettek.
Blobszolgáltatás verziója sv=2022-11-02 Az Azure Storage 2012-02-12-es és újabb verziói esetében ez a paraméter a használni kívánt verziót jelzi.
Erőforrás sr=b Az erőforrás egy blob.
Aláírás sig=<signature> A blobhoz való hozzáférés engedélyezésére szolgál. Az aláírás egy HMAC, amely az SHA256 algoritmussal egy sztring-jel és kulcs alapján van kiszámítva, majd Base64-kódolással kódolva.

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

Ha úgy véli, hogy egy SAS sérült, akkor vissza kell vonnia. A felhasználói delegálási SAS-t visszavonhatja a felhasználói delegálási kulcs visszavonásával, vagy az SAS létrehozásához használt rendszerbiztonsági tag RBAC-szerepkör-hozzárendeléseinek módosításával vagy eltávolításával.

Fontos

A felhasználódelegálási kulcsot és az RBAC-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 lehet.

A felhasználói delegálási kulcs visszavonása

A felhasználói delegálási kulcsot a Felhasználói delegálási kulcsok visszavonása művelet meghívásával vonhatja vissza. Ha visszavonja a felhasználódelegálási kulcsot, a kulcsra támaszkodó közös hozzáférésű jogosultságkódok érvénytelenek lesznek. Ezután ismét meghívhatja a Felhasználódelegálási kulcs lekérése műveletet, és a kulccsal új megosztott hozzáférésű jogosultságkódokat hozhat létre. Ez a leggyorsabb módja a felhasználói delegálási SAS visszavonásának.

Szerepkör-hozzárendelések módosítása vagy eltávolítása

Módosíthatja vagy eltávolíthatja az RBAC-szerepkör hozzárendelését az SAS létrehozásához használt rendszerbiztonsági taghoz. Amikor egy ügyfél az SAS-t használja egy erőforrás eléréséhez, az Azure Storage ellenőrzi, hogy az a rendszerbiztonsági tag, akinek a hitelesítő adatait az SAS védelméhez használták, rendelkezik-e az erőforráshoz szükséges engedélyekkel.

Lásd még