Szolgáltatási SAS létrehozása

Fontos

Az optimális biztonság érdekében a Microsoft azt javasolja, hogy a Microsoft Entra ID-t felügyelt identitásokkal használva engedélyezze a blob-, üzenetsor- és táblaadatokra vonatkozó kéréseket, amikor csak lehetséges. A Microsoft Entra-azonosítóval és felügyelt identitásokkal való engedélyezés kiváló biztonságot és egyszerű használatot biztosít a megosztott kulcsok engedélyezésével szemben. További információ: Engedélyezés a Microsoft Entra-azonosítóval. A felügyelt identitásokról további információt az Azure-erőforrások felügyelt identitásai című témakörben talál.

Az Azure-on kívül üzemeltetett erőforrások, például a helyszíni alkalmazások esetében felügyelt identitásokat használhat az Azure Arcon keresztül. Az Azure Arc-kompatibilis kiszolgálókon futó alkalmazások például felügyelt identitásokkal csatlakozhatnak az Azure-szolgáltatásokhoz. További információ: Hitelesítés Azure-erőforrásokon az Azure Arc-kompatibilis kiszolgálókon.

Olyan esetekben, amikor közös hozzáférésű jogosultságkódokat (SAS) használnak, a Microsoft egy felhasználói delegálási SAS használatát javasolja. A felhasználói delegálási SAS-t a fiókkulcs helyett a Microsoft Entra hitelesítő adatai védik. A megosztott hozzáférési aláírásokról szeretnél megtudni lásd: Felhasználói delegáció SAS létrehozása.

Egy szolgáltatásmegosztott hozzáférési aláírás (SAS) csak az egyik tárolószolgáltatásban delegál hozzáférést egy erőforráshoz: Blob Storage (beleértve a Data Lake Storage-t és dfs végállomásokat), Queue Storage, Table Storage vagy Azure Files. A szolgáltatási szintű SAS URI-je az URI-ből áll, amely arra az erőforrásra vonatkozik, amelyre a SAS hozzáférést delegálja, majd a SAS tokenből.

A SAS token az a lekérdezési láncsor, amely tartalmazza az összes szükséges információt egy kérés engedélyezéséhez. A token megadja az ügyfél által elérhető erőforrást, a megadott jogosultságokat, valamint az aláírás érvényes időszakát.

A SAS megadhatja azt is, hogy milyen támogatott IP-címet vagy címtartományt adhat, amelyből a kérések indulhatnak, melyik támogatott protokollra kérhet, vagy egy opcionális hozzáférési szabályzat azonosítót, amely a kéréshez kapcsolódik.

Végül minden SAS token tartalmaz aláírást.

Figyelmezteté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 védenie kell őket, mint egy fiókkulcsot. Fontos, hogy megvédje az SAS-t a rosszindulatú vagy nem szándékos használattól. Járjon el körültekintően, amikor SAS-t terjeszt, és legyen terve egy kompromittálódott SAS visszavonására. A közös hozzáférési aláírásokat használó műveleteket csak HTTPS kapcsolaton kell végrehajtani, a SAS URI-kat pedig csak biztonságos kapcsolaton, például HTTPS-en kell elosztani.

SAS szolgáltatás engedélyezése

Egy SAS fiókot tároló fiókkulcs használatával biztosíthatod. Amikor SAS fiókot hozol létre, az ügyfélalkalmazásnak rendelkeznie kell a fiókkulcstal.

A Microsoft Entra jogosultságok felhasználásához SAS biztonságossá vált konténer vagy blob számára, hozz létre egy felhasználói delegációs SAS-t.

Service SAS támogatás a könyvtár-hatótávolságú hozzáféréshez

Egy SAS szolgáltatás támogatja a könyvtár hatótávját (sr=d), ha az engedélyezési verzió (sv) 2020-02-10 vagy később van. A könyvtár scope-jának (sr=d) szemantikája hasonló a container scope (sr=c) szemantikájához, kivéve, hogy a hozzáférés korlátozott egy könyvtárra, valamint annak fájljaira, alkönyvtárára. Ha sr=d van megadva, 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.

SAS szolgáltatás építése

Az alábbi kép a megosztott hozzáférési aláírás URI-jának részeit mutatja. A szükséges részek narancssárga színben jelennek meg. A SAS tokent alkotó mezőket a következő szakaszokban írjuk le.

A megosztott hozzáférési aláírás URL-ének paraméterelemeinek ábra.

Az alábbi szakaszok leírják, hogyan lehet megadni a SAS szolgáltatást alkotó paramétereket.

Megadjuk a mezőt signedVersion

A signedVersion (sv) mező tartalmazza a megosztott hozzáférési aláírás szolgáltatási verzióját. Ez az érték megadja a megosztott kulcs hitelesítésének melyik verzióját használja ez a közös hozzáférési aláírás (a mezőben signature ). Az érték megadja a szolgáltatás verzióját is azoknak a kéréseknek, amelyeket ezzel a közös hozzáférési aláírással tesznek létre.

Arról, hogy melyik verziót használják a kérések végrehajtása során megosztott hozzáférési aláíráson keresztül, lásd: Verziókészítés Azure Storage szolgáltatásokhoz.

Arról, hogyan befolyásolja ez a paraméter a megosztott hozzáférési aláírással tett kérések engedélyezését, lásd: Hozzáférés delegálása megosztott hozzáférési aláírással.

Mezőnév Lekérdezési paraméter Leírás
signedVersion sv Kötelező. Támogatott a 2012-02-12 verzióban és későbbi verziókban. A tárolószolgáltatás verzió, amelyet a megosztott hozzáférési aláírással tett kérések hitelesítésére és kezelésére használsz. További információért lásd: Verziókészítés Azure Storage szolgáltatásokhoz.

Határozd meg a régi SAS kérés verzióját

Olyan régi esetekben, ahol signedVersion nem használják, a Blob Storage szabályokat alkalmaz a verzió meghatározására. További információért ezekről a szabályokról lásd: Verziókészítés Azure Storage szolgáltatásokhoz.

Fontos

Az ügyfélszoftver váratlan protokolli viselkedést tapasztalhat, amikor egy megosztott hozzáférésű aláírásos URI-t használsz, amely egy újabb tárolószolgáltatási verziót használ, mint a kliens szoftver. A kódnak, amely megosztott hozzáférésű aláírási URI-kat épít, olyan verziókra támaszkodjon, amelyeket az ügyfél szoftver ért, amely tárolási szolgáltatási kéréseket készít.

Megadjuk az aláírt erőforrást (csak Blob Storage)

A szükséges signedResource (sr) mező határozza meg, 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 lehet utalni egy blobra vagy konténer erőforrásra a SAS tokenben.

erőforrás Paraméter értéke Támogatott verziók Leírás
Nagy bináris objektum b Összes Hozzáférést biztosít a blob tartalmához és metaadataihoz.
Blobverzió Bv 2018-11-09 és újabb verziók Hozzáférést biztosít a blobverzió tartalmához és metaadataihoz, de az alapblobhoz nem.
Blob-pillanatkép bs 2018-11-09 és újabb verziók Hozzáférést biztosít a blob pillanatképének tartalmához és metaadataihoz, de az alapblobhoz nem.
Konténer c Összes Hozzáférést biztosít a tárolóban lévő blobok tartalmához és metaadataihoz, valamint a tárolóban lévő blobok listájához.
Címtár d 2020-02-10 és újabb verziók Hozzáférést biztosít a könyvtárban lévő bármely folb tartalmához és metaadataihoz, valamint a könyvtárban lévő foltok listájához. Ha egy könyvtár van megadva a signedResource mezőhöz, a signedDirectoryDepth (sdd) paraméterre is szükség van. A könyvtár mindig egy konténerben van beágyazva.

Megadd az aláírt erőforrást (Azure Files)

A SAS támogatott az Azure Files 2015-02-21 és újabb verzióihoz.

A signedResource mező meghatározza, mely erőforrások érhetők el a közös hozzáférési aláíráson keresztül. Az alábbi táblázat leírja, hogyan lehet hivatkozni egy fájlra vagy megosztási erőforrásra az URI-n.

Mezőnév Lekérdezési paraméter Leírás
signedResource sr Kötelező.

Határozd meg f , hogy a megosztott erőforrás fájl-e. Ez hozzáférést biztosít a fájl tartalmához és metaadataihoz.

Határozd meg s , hogy a megosztott erőforrás megosztás-e. Ez hozzáférést biztosít a megosztásban lévő bármely fájl tartalmához és metaadataihoz, valamint a megosztásban lévő könyvtárak és fájlok listájához.

Megadd a lekérdezési paramétereket a válaszfejlécek felülbírálásához (csak Blob Storage és Azure Files)

Ha meg szeretné határozni bizonyos válaszfejlécek értékeit, amelyeket a közös hozzáférésű jogosultságkód kérésben való használatakor ad vissza, megadhatja a válaszfejléceket a lekérdezési paraméterekben. Ez a funkció a 2013-08-15-től támogatott a Blob Storage verzióhoz és a 2015-02-21 verzióhoz az Azure Files esetében. A megosztott hozzáférési aláírásoknak, amelyek ezt a funkciót használják, tartalmazniuk kell a sv Blob Storage vagy későbbi paramétereket 2013-08-15 , vagy Azure Files esetén 2015-02-21 vagy később.

A válaszfejlécek és a hozzájuk tartozó lekérdezési paraméterek a következő táblázatban található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

Például, ha megadod a rsct=binary lekérdezési paramétert egy 2013-08-15 vagy újabb verzióval létrehozott közös hozzáférési aláíráson, a Content-Type válaszfejléc beállítása .binary Ez az érték felülírja a Content-Type fejlécértéket, amely a blob számára tárolt egy olyan kéréshez, amely csak ezt a közös hozzáférési aláírást használja.

Ha létrehozol egy közös hozzáférési aláírást, amely a válaszfejléceket lekérdezési paraméterként határozza meg, akkor ezeket be kell illesztened a string-to-sign (string-to-sign) be, amelyet az aláírási string felépítéséhez használnak. További információért lásd a cikk későbbi részének "Construct the signature string" című szakaszát. További példákért lásd Service SAS példákat.

Megadjuk a tábla nevét (csak Table Storage)

A tableName mező megadja a megosztandó tábla nevét.

Mezőnév Lekérdezési paraméter Leírás
tableName tn Kötelező. Az asztal neve, amit megoszthatunk.

Megadja a hozzáférési szabályzatot

Az URI hozzáférési szabályzat része jelzi, hogy mennyi ideig érvényes a megosztott hozzáférési aláírás, és milyen jogosultságokat kell megadni a felhasználónak. Az URI azon részei, amelyek a hozzáférési szabályzatot alkotják, az alábbi táblázatban találhatók:

Mezőnév Lekérdezési paraméter Leírás
signedStart st Opcionális. 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 a paramétert kihagyjuk, akkor a jelenlegi UTC idő indulási időként jelenik meg.

A 2012-02-12 előtti verziókban a két signedExpiry és közötti időtartam signedStart nem haladhatja meg az egy órát, hacsak nem alkalmaznak konténerszabályzatot. További információért az elfogadott UTC formátumokról lásd: Formátum dátum/idő értékek.
signedExpiry se Kötelező. 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. Ezt a mezőt ki kell hagynod, ha egy kapcsolódó tárolt hozzáférési szabályzatban meg van jelölve. További információért az elfogadott UTC formátumokról lásd: Formátum dátum/idő értékek.
signedPermissions 1 sp Kötelező. A megosztott hozzáférési aláíráshoz kapcsolódó jogosultságok. A felhasználó csak olyan műveletekre korlátozódik, amelyeket a jogosultságok engedélyeznek. Ezt a mezőt ki kell hagynod, ha egy kapcsolódó tárolt hozzáférési szabályzatban meg van jelölve.
startPk 2

startRk 2
spk

srk
Csak asztali tárolás.

Opcionális, de startPk el kell kísérni startRk. A minimális partíció- és sorkulcsok, amelyek ezzel a közös hozzáférési aláírással elérhetők. A kulcsértékek befogadóak. Ha kihagyják őket, nincs elérhető alsó határ a táblázat entitásaiban.
endPk 2

endRk 2
epk

erk
Csak asztali tárolás.

Opcionális, de endPk el kell kísérni endRk. A maximális partíciós és sorkulcsok, amelyek ezzel a megosztott hozzáférési aláírással elérhetők. A kulcsértékek befogadóak. Ha kihagyják őket, nincs felső korlát a táblázat entitásaiban, amelyekhez hozzáférhetnének.

1 A signedPermissions mező kötelező az URI-n, hacsak nem van megadva egy tárolt hozzáférési szabályzat részeként.
2 Az startPk, startRk, endPk, és endRk mezők csak a Table Storage erőforrásokon határozhatók meg.

Engedélyek megadása

A signedPermissions SAS token (sp) mezőjéhez megadott jogosultságok jelzik, hogy a kliens milyen műveleteket hajthat végre az erőforráson.

Egyesítheted a jogosultságokat, hogy egy kliens több műveletet végezzen ugyanazzal a SAS-szel. Az SAS létrehozásakor az engedélyeket a következő sorrendben kell megadnia:

racwdxltmeop

A tároló érvényes engedélybeállításai közé tartoznak például a 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. Nem lehet többször is megadni az engedély kijelölését.

Egy SAS szolgáltatás nem engedélyezhet hozzáférést bizonyos műveletekhez:

  • Konténereket, sorokat és táblákat nem lehet létrehozni, törölni vagy felsorolni.
  • A tároló metaadatai és tulajdonságai nem olvashatók és nem írhatók.
  • A sorok nem törhetők le, és a metaadataik sem írhatók.
  • A tárolók nem adhatók bérbe.

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.

Fontos

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 védenie kell őket, mint egy fiókkulcsot. Olyan műveleteket végezzünk, amelyek csak HTTPS kapcsolaton keresztül használnak megosztott hozzáférési aláírásokat, és csak biztonságos kapcsolaton, például HTTPS-en osztják szét a közös hozzáférési aláírás URI-kat.

Az egyes erőforrástípusok által támogatott jogosultságokat az alábbi szakaszokban írjuk le.

Jogosultságok egy könyvtárhoz, konténerhez vagy blobohoz

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
Olvasd r Konténer
Címtár
Nagy bináris objektum
Összes Olvassa el a konténer vagy könyvtár bármely foltjának tartalmát, blokkollistáját, tulajdonságait és metaadatait. Másolási művelet forrásaként használjon blobot.
Hozzáad a Konténer
Címtár
Nagy bináris objektum
Összes Blokk hozzáadása hozzáfűző blobhoz.
Hozz létre c Konténer
Címtár
Nagy bináris objektum
Összes Írjon egy új blobot, pillanatképet készítsen egy blobról, vagy másolja a blobot egy új blobba.
Írj! w Konténer
Címtár
Nagy bináris objektum
Összes Tartalom, tulajdonságok, metaadatok vagy blokklisták létrehozása vagy írása. Pillanatkép vagy a blob bérlete. A blob átméretezése (csak lapblob). Másolási művelet céljaként használja a blobot.
Törlés d Konténer
Címtár
Nagy bináris objektum
Összes Blob törlése. A 2017-07-29-es és újabb verziók esetében a Törlés engedély lehetővé teszi a blobok bérletének megszakítását is. További információ: Bérletblob művelet.
Verzió törlése x Konténer
Nagy bináris objektum
2019-12-12 és újabb verziók Egy blobverzió törlése.
Végleges törlés y Nagy bináris objektum 2020-02-10 és újabb verziók Blob pillanatképének vagy verziójának végleges törlése.
Lista l Konténer
Címtár
Összes Nem rekurzív blobok listázása.
Címkék t Nagy bináris objektum 2019-12-12 és újabb verziók A címkék olvasása vagy írása egy blobon.
Keress f Konténer 2019-12-12 és újabb verziók Keress foltokat indexcímkékkel.
Áthelyezés m Konténer
Címtár
Nagy bináris objektum
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 gyermek blob, könyvtár vagy szülőkönyvtár tulajdonosára korlátozható, ha a saoid paraméter szerepel az SAS-jogkivonatban, és a ragacsos bit a szülőkönyvtárban van beállítva.
Kivégez e Konténer
Címtár
Nagy bináris objektum
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. nem engedi, hogy a hívó felhasználó által definiált metaadatokat olvasson.
Tulajdonjog o Konténer
Címtár
Nagy bináris objektum
2020-02-10 és újabb verziók Amikor a hierarchikus névtér be van kapcsolva, ez a jogosultság lehetővé teszi a hívó számára, hogy beállítsa a tulajdonost vagy a tulajdonos csoportot, vagy hogy tulajdonosként viselkedjen egy könyvtár vagy blob átnevezésekor vagy törlése egy olyan könyvtárban, amelyen a ragadós bit van beállítva.
Jogosultságok p Konténer
Címtár
Nagy bináris objektum
2020-02-10 és újabb verziók Ha a hierarchikus névtér engedélyezve van, ez az engedély lehetővé teszi a hívó számára, hogy engedélyeket és POSIX ACL-eket állítson be könyvtárakon és blobokon.
Nem módosíthatósági szabályzat beállítása én Konténer
Nagy bináris objektum
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 parancsát.

Fájl engedélyei

Engedély URI-szimbólum Engedélyezett műveletek
Olvasd r Olvasd el a tartalmat, tulajdonságokat, metaadatokat. Használd a fájlt a másolási művelet forrásaként.
Hozz létre c Hozz létre új fájlt vagy másolj egy fájlt egy új fájlba.
Írj! w Tartalom, tulajdonságok, metaadatok létrehozása vagy írása. Méretezd át az aktát. Használd a fájlt a másolási művelet célpontjaként.
Törlés d Törölje a fájlt.

Megosztási engedélyek

Engedély URI-szimbólum Engedélyezett műveletek
Olvasd r Olvassa el bármely fájl tartalmát, tulajdonságait vagy metaadatait a megosztásban. Használj bármely fájlt a megosztásban a másolási művelet forrásaként.
Hozz létre c Hozz létre egy új fájlt a megosztásban, vagy másolj egy fájlt egy új fájlba a megosztásban.
Írj! w Bármely fájl esetén a megosztásban létrehozz vagy írj tartalmat, tulajdonságokat vagy metaadatokat. Méretezd át az aktát. Használd a fájlt a másolási művelet célpontjaként. Megjegyzés: SAS szolgáltatás használatával nem lehet engedélyt adni megosztási tulajdonságok vagy metaadatok olvasására vagy írására. Használj inkább SAS fiókot.
Törlés d Töröld a megosztásból származó fájlokat. Megjegyzés: SAS szolgáltatás használatával nem lehet engedélyt adni egy megosztás törlésére. Használj inkább SAS fiókot.
Lista l Listázd fel a fájlokat és könyvtárakat a megosztásban.

Jogosultságok egy sorhoz

Engedély URI-szimbólum Engedélyezett műveletek
Olvasd r Olvassa el a metaadatokat és tulajdonságokat, beleértve az üzenetek számát is. Nézz az üzenetekre.
Hozzáad a Üzenetek hozzáadása a sorba.
Frissítés u Frissítsd az üzeneteket a sorban. Megjegyzés: Használd a Process engedélyt a Frissítéssel, hogy először megkapd az üzenetet, hogy frissíteni szeretnél.
Folyamat p Üzeneteket szerezz és törölj a sorból.

Táblázat engedélyei

Engedély URI-szimbólum Engedélyezett műveletek
Lekérdezés r Szerezz meg entitásokat és kérdezz entitásokat.
Hozzáad a Entitásokat adj hozzá. Megjegyzés: Hozzáadási és frissítési engedélyek szükségesek az upsert műveletekhez.
Frissítés u Frissítsd az entitásokat. Megjegyzés: Hozzáadási és frissítési engedélyek szükségesek az upsert műveletekhez.
Törlés d Töröld az entitásokat.

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

A 2015-04-05-ös verziótól az opcionális signedIp (sip) mező egy nyilvános IP-címet vagy egy nyilvános IP-cím tartományt jelöl, amelyből a kéréseket lehet fogadni. Ha a kérés forrásaként szolgáló IP-cím nem egyezik meg az SAS-jogkivonaton megadott IP-címmel vagy címtartománynal, a kérés nincs engedélyezve. Jelenleg csak IPv4-címek támogatottak.

Amikor IP-címek tartományát jelöled meg, vedd figyelembe, hogy a tartomány befogadó. Ha például sip=198.51.100.0 vagy sip=198.51.100.10-198.51.100.20 a SAS-en, az azokra az IP-címekre korlátozza a kérést.

Az alábbi táblázat bemutatja, hogy a mezőt egy SAS tokenen egy meghatározott forgatókönyv esetén beillesztjük-e signedIp , az ügyfélkörnyezet és a tárolószámla 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 megadott SAS-nek nem szabad kimenő IP-címet tartalmaznia a signedIp mezőhöz. A megadott kimenő IP-címmel rendelkező SAS-t használó régión belülről érkező 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érelmek 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 Ebben a helyzetben az ügyfélnek biztosított SAS tartalmazhat nyilvános IP-címet vagy a mező címtartományát signedIp . A SAS-szel érkező kérelemnek a megadott IP-címről vagy IP-címtartományból kell származnia.
Helyszíni vagy más felhőkörnyezetben futó ügyfél Bármely Azure-régióban Ebben a helyzetben az ügyfélnek biztosított SAS tartalmazhat nyilvános IP-címet vagy a mező címtartományát signedIp . A SAS-szel érkező kérelemnek a megadott IP-címről vagy IP-címtartományból kell származnia.

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

A HTTP protokoll megadása

A 2015-04-05-ös verziótól az opcionális signedProtocol (spr) mező megadja azt a protokollt, amely engedélyezett egy SAS-nál tett kéréshez. A lehetséges értékek a HTTPS és a HTTP (https,http) vagy a HTTPS (https). Az alapértelmezett érték a https,http. Fontos megjegyezni, hogy csak a HTTP nem engedélyezett érték.

Megadni a táblahozzáférési tartományokat

Az startPk, startRk, endPkés endRk mezők olyan táblázatentitásokat határoznak meg, amelyek megosztott hozzáférési aláíráshoz kapcsolódnak. A táblázatlekérdezések csak a tartományon belüli eredményeket adják vissza, és a közös hozzáférési aláírás alkalmazására tett kísérletek ezen a tartományon kívüli entitások hozzáadására, frissítésére vagy törlésére kudarcot vallottak.

Ha startPk az endPkegyenlő , a megosztott hozzáférési aláírás engedélyezi a hozzáférést az entitások számára a táblázat egyetlen partíciójában.

Ha startPk egyenlő endPk és startRk egyenlő endRk, a megosztott hozzáférési aláírás csak egy entitáshoz férhet hozzá egy partícióban.

Annak megértéséhez, hogy ezek a mezők miként korlátozzák a táblázatban lévő entitások elérését, tekintse meg az alábbi táblázatot:

Jelenlévő mezők A korlátozás hatóköre
startPk partitionKey >= startPk
endPk partitionKey <= endPk
startPk, startRk (partitionKey >startPk) || (partitionKey == startPk && rowKey >= startRk)
endPk, endRk (partitionKey <endPk) || (partitionKey == endPk && rowKey <= endRk)

A címtár mélységének megadása

Amikor a signedResource mező megad egy könyvtárat (sr=d), akkor a signedDirectoryDepth (sdd) mezőt is meg kell adnod, hogy a gyökérkönyvtár alatt lévő alkönyvtárak számát jelölj. A sdd mező értékének nem negatív egész számnak kell lennie.

A https://{account}.blob.core.windows.net/{container}/ gyökérkönyvtár 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 https://{account}.blob.core.windows.net/{container}/d1/d2 könyvtár mélysége 2.

Ez a mező a 2020-02-10 vagy újabb verzióban támogatott.

Megadjuk az aláírt azonosítót

Amikor megadod a signedIdentifier mezőt az URI-n, a megadott megosztott hozzáférési aláírást egy megfelelő tárolt hozzáférési szabályzathoz kapcsolod. A tárolt hozzáférési szabályzat további ellenőrzést biztosít egy vagy több közös hozzáférési aláírás felett, beleértve az aláírás visszavonásának lehetőségét is, ha szükséges. Minden konténer, sor, tábla vagy megosztás legfeljebb öt tárolt hozzáférési szabályzatot tartalmazhat.

Az alábbi táblázat leírja, hogyan lehet hivatkozni egy aláírt azonosítóra az URI-n:

Mezőnév Lekérdezési paraméter Leírás
signedIdentifier si Opcionális. Egy egyedi érték, amely legfeljebb 64 karakterből áll, és amely egy hozzáférési szabályzathoz kapcsolódik, amelyet a konténer, sorban vagy tábla számára előírnak.

A tárolt hozzáférési szabályzat tartalmaz egy aláírt azonosítót, amely legfeljebb 64 karakterből áll, és egyedi az erőforráson belül. Megadhatod ennek az aláírt azonosítónak az értékét az signedidentifier URI-ben a megosztott hozzáférési aláírás mezőjében. Amikor az URI-n megjelöled az aláírt azonosítót, az aláírást a tárolt hozzáférési szabályzathoz társítod. A konténerszintű hozzáférési politika létrehozásához a REST API használatával lásd: Hozzáférés delegálása megosztott hozzáférési aláírással.

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

Az URI mező signedEncryptionScope használatával megadhatod a kliens alkalmazás által használt titkosítási hatótávolságot. A szerveroldali titkosítást a megadott titkosítási hatótávon érvényesíti, amikor a SAS tokenrel feltölt blobokat (PUT). A GET és HEAD nem lesznek korlátozva, és úgy végzik, mint korábban.

Az alábbi táblázat leírja, hogyan lehet hivatkozni az aláírt titkosítási scope-ra az URI-n:

Mezőnév Lekérdezési paraméter Leírás
signedEncryptionScope ses Opcionális. A kérelem tartalmának titkosításához használandó titkosítási hatókört jelzi.

Ez a mező a 2020-12-06 vagy újabb verzióban támogatott. Ha hozzáadod a ses támogatott verzió előtti verziót, a szolgáltatás a 403-as (tiltott) hibakódot adja vissza.

Ha beállítod az alapértelmezett titkosítási hatókört a konténer vagy fájlrendszer számára, a ses lekérdezési paraméter tiszteletben tartja a konténer titkosítási szabályzatot. Ha a ses lekérdezési paraméter és x-ms-default-encryption-scope fejléce nem egyezik, és a x-ms-deny-encryption-scope-override fejléc trueértékre van állítva, a szolgáltatás a 403-at (Tiltott) hibaválaszkódot adja vissza.

Ha megadod a x-ms-encryption-scope fejlécet és a ses lekérdezési paramétert a PUT kérésben, a szolgáltatás a 400-as hibaválasz kódot (Rossz kérés) adja vissza, ha nincs egyezés.

Az aláírás megadása

Az URI aláírásos részét használod a megosztott hozzáférési aláírással történő kérés hitelesítéséhez. Az Azure Storage egy megosztott kulcs hitelesítési sémát használ egy szolgáltatás SAS hitelesítésére.

Az alábbi táblázat leírja, hogyan lehet megadni az aláírást az URI-n:

Mezőnév Lekérdezési paraméter Leírás
signature sig A string-to-sign egy egyedi string, amely a mezőkből épül fel, és amelyet ellenőrizni kell a kérés engedélyezéséhez. Az aláírás egy hash-alapú üzenethitelesítési kód (HMAC), amelyet a string-to-sign és kulcs alapján a SHA256 algoritmussal számolnak ki, majd Base64 kódolással kódolják.

Építsd meg az aláírási láncsort

A közös hozzáférésű aláírás aláírási stringjének megépítéséhez először a string-to-sign sort a kérést alkotó mezőkből kell megalkotni, a sztúrt UTF-8-nak kódolni, majd az aláírást a HMAC-SHA256 algoritmus segítségével kiszámítani. A sztring-jel mezőinek URL-dekódolva kell lenniük.

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

A 2020-12-06-os verzió támogatja az aláírt titkosítási scope mezőt. A Blob Storage erőforrások string-to-sign megépítéséhez a következő formátumot használjuk:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               signedResource + "\n" +
               signedSnapshotTime + "\n" +
               signedEncryptionScope + "\n" +
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +
               rsct
2018-11-09 verzió és újabb

A 2018-11-09-es verzió támogatja az aláírt erőforrást és az aláírt blob snapshot időmezőket. Ezeket a mezőket be kell foglalni a string-to-sign-be. A Blob Storage erőforrások string-to-sign megépítéséhez a következő formátumot használjuk:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               signedResource + "\n"
               signedSnapshotTime + "\n" +
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
               rsct  
2015-04-05 verzió és újabbá

A 2015-04-05-ös verzió támogatja az aláírt IP és az aláírt protokoll mezőket. Ezeket a mezőket be kell foglalni a string-to-sign-be. A Blob Storage vagy Azure Files erőforrások string-to-sign megépítéséhez a következő formátumot használjuk:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
               rsct  

A Table Storage erőforrások string-to-sign elkészítéséhez a következő formátumot használjuk:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               startingPartitionKey + "\n"  
               startingRowKey + "\n"  
               endingPartitionKey + "\n"  
               endingRowKey  
  

A Queue Storage erőforrások string-to-sign létrehozásához a következő formátumot használjuk:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion  
  
2013-08-15-től 2015-02-21-ig terjedő verzió

A Blob Storage vagy Azure Files erőforrások string-to-sign létrehozásához a 2013-08-15 és 2015-02-21 verzió használatával a következő formátumot használjuk. Az Azure Files esetében a SAS a 2015-02-21-es verziótól támogatott.

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion + "\n" +  
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
               rsct  

A táblázat string-to-sign megépítéséhez a következő formátumot használjuk:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion + "\n" +  
               startPk + "\n" +  
               startRk + "\n" +  
               endPk + "\n" +  
               endRk  
  

A sorhoz tartozó string-to-sign megépítéséhez a következő formátumot használjuk:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion 
Verzió 2012-02-12

A Blob Storage erőforrások string-to-sign megalkotásához a 2012-02-12-es verzióhoz a következő formátumot használjuk:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion  
2012-02-12 előtti verziók

A Blob Storage erőforrások string-to-sign elkészítéséhez a 2012-02-12 előtti verziókhoz a következő formátumot használjuk:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier  
  

Amikor az aláírandó láncot készíted, tartsd szem előtt a következőket:

  • Ha egy mező opcionális, és nem a kérés részeként szolgál, akkor adott mezőhöz egy üres stringet adj meg. Ügyeljen arra, hogy az üres sztring után az új vonal karaktert (\n) is tartalmazza.

  • A táblázat string-to-sign-jának tartalmaznia kell a további paramétereket, még akkor is, ha ezek üres stringek.

  • A signedpermission lánc részének tartalmaznia kell az engedélyjelöléseket rögzített sorrendben, amely minden erőforrástípusra jellemző. Ezeknek az engedélyeknek bármilyen kombinációja elfogadható, de az engedélylevelek sorrendjének egyeznie kell a következő táblázatban szereplő sorrenddel.

    Erőforrás típusa Engedélyek sorrendje
    Nagy bináris objektum racwd
    Konténer racwdl
    Várólista Raup
    fájl RCWD
    Megosztás rcwdl
    Táblázat Raud

    Például egy konténer érvényes jogosultsági beállításainak példái , rwrd, rl, wdwl, , , é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.

  • Adjon meg egy értéket a láncsornak a signedIdentifier részéhez, ha a kérést egy tárolt hozzáférési szabályzathoz kötöd.

  • Egy megosztott hozzáférési aláírás, amely egy korábbi tárolószolgáltatási verziót jelöl meg a 2012-02-12 előtt, csak egy blobot vagy konténert oszthat meg, és ki kell hagynia signedVersion az újvonal karaktert előtte.

  • A sztring canonicalizedResource része az aláírt erőforrás vesszővel ellátott elérési útja. Tartalmaznia kell a szolgáltatás nevét (Blob Storage, Table Storage, Queue Storage vagy Azure Files) a 2015-02-21 vagy újabb verzióhoz, a tárolófiók nevét és az erőforrás nevét, valamint URL-dekódolni kell. A foltok nevéhez tartalmaznia kell a folt tartályát. A táblaneveknek kisbetűkkel kell írniuk.

A konténer, sor, tábla vagy fájlmegosztás kanonizált erőforrás-láncának el kell hagynia a SAS mögötti slash-jelet (/), amely hozzáférést biztosít az adott objektumhoz.

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

Containers

A 2015-02-21 verzióhoz és újabbra:

URL = https://myaccount.blob.core.windows.net/music  
canonicalizedResource = "/blob/myaccount/music"  

A 2015-02-21 előtti verziók:

URL = https://myaccount.blob.core.windows.net/music
canonicalizedResource = "/myaccount/music"  

Blobs

A 2015-02-21 verzióhoz és újabbra:

URL = https://myaccount.blob.core.windows.net/music/intro.mp3  
canonicalizedResource = "/blob/myaccount/music/intro.mp3"  

A 2015-02-21 előtti verziók:

URL = https://myaccount.blob.core.windows.net/music/intro.mp3
canonicalizedResource = "/myaccount/music/intro.mp3"  

Fájlmegosztások

URL = https://myaccount.file.core.windows.net/music
canonicalizedResource = "/file/myaccount/music"  

Files

URL = https://myaccount.file.core.windows.net/music/intro.mp3
canonicalizedResource = "/file/myaccount/music/intro.mp3"  

Queues

A 2015-02-21 verzióhoz és újabbra:

URL = https://myaccount.queue.core.windows.net/thumbnails  
canonicalizedResource = "/queue/myaccount/thumbnails"  

A 2015-02-21 előtti verziók:

URL = https://myaccount.queue.core.windows.net/thumbnails  
canonicalizedResource = "/myaccount/thumbnails"  

Táblázatok

Ha az aláírt erőforrás tábla, győződjön meg róla, hogy a tábla neve kisbetűs legyen a kanonizált formátumban.

A 2015-02-21 verzióhoz és újabbra:

URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price')  
canonicalizedResource = "/table/myaccount/employees"  

A 2015-02-21 előtti verziók:

URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price')  
canonicalizedResource = "/myaccount/employees"  

A közös hozzáférési aláírás élettartama és visszavonása

A megosztott hozzáférési aláírások hozzáférési jogokat biztosítanak a felhasználóknak a tárolófiók erőforrásokhoz. Amikor SAS használatát tervezi, gondoljon át a SAS élettartamára, és arra, hogy bizonyos körülmények között a kérelemnek vissza kell vonnia a hozzáférési jogait.

Ad hoc SAS kontra tárolt hozzáférési politika

A SAS szolgáltatás két formában is megfelelhet:

  • Ad hoc SAS: Amikor ad hoc SAS-t hozol létre, a SAS kezdő ideje, lejárati ideje és jogosultságai mind meg vannak jelölve a SAS URI-ben (vagy feltételezhetően, ha a kezdési időt kihagyják). Bármilyen típusú SAS lehet alkalmi SAS.

    Az ad hoc SAS élettartamát a mező használatával signedExpiry kezelheted. Ha a lejárat után is szeretnéd biztosítani az ügyfélnek hozzáférést az erőforráshoz, új aláírást kell kiadnod. Javasoljuk, hogy tartsa röviden a közös hozzáférésű aláírás élettartamát. A 2012-02-12 verzió előtt egy megosztott hozzáférési aláírás, amely nem kapcsolódik egy tárolt hozzáférési szabályzathoz, nem rendelkezhetett egy óránál több aktív időszaktal.

  • SAS tárolt hozzáférési szabályzattal: Egy tárolt hozzáférési szabályzatot egy erőforrás-konténeren definiálnak, amely lehet blob konténer, tábla, sor vagy fájlmegosztás. A tárolt hozzáférési szabályzatot használhatod egy vagy több közös hozzáférési aláírás korlátozásainak kezelésére. Amikor egy SAS-t egy tárolt hozzáférési szabályzathoz kötünk, a SAS örökli azokat a korlátozásokat (azaz a kezdő időt, lejárati időt és jogosultságokat), amelyek a tárolt hozzáférési politika számára definiáltak.

    A tárolt hozzáférési szabályzatot az URI mezője signedIdentifier képviseli. A tárolt hozzáférési szabályzat további ellenőrzést biztosít egy vagy több közös hozzáférési aláírás felett, beleértve az aláírás visszavonásának lehetőségét is, ha szükséges.

Visszavonja a SAS

Mivel a SAS URI URL, bárki, aki megszerzi a SAS-t, használhatja, függetlenül attól, ki készítette eredetileg. Ha egy SAS nyilvánosan megjelenik, bárki felhasználhatja a világon. Az SAS hozzáférést biztosít az erőforrásokhoz bárkinek, aki birtokolja őket, amíg négy dolog egyike nem történik:

  • Elérjük az ad hoc SAS-ban meghatározott lejárati időt.

  • A SAS által hivatkozott tárolt hozzáférési szabályzatban meghatározott lejárati idő akkor ér el, ha egy tárolt hozzáférési szabályzatot jelölnek meg, és a hozzáférési politika lejárati időt határoz meg.

    A lejárati idő elérhető vagy azért, mert az intervallum lejár, akár azért, mert korábban módosítottad a tárolt hozzáférési szabályzatot, hogy lejárati idő legyen, ami az egyik módja a SAS visszavonásának módja.

  • A SAS által hivatkozott tárolt hozzáférési szabályzat törlésre kerül, ami visszavonja a SAS-t. Ha az Azure Storage nem találja meg a közös hozzáférési aláírásban megadott tárolt hozzáférési szabályzatot, akkor az ügyfél nem fér hozzá az URI által jelölt erőforráshoz.

    Ha újrahozod a tárolt hozzáférési szabályzatot pontosan ugyanazzal a névvel, mint a törölt politika, az összes meglévő SAS token ismét érvényes lesz, az adott hozzáférési szabályzathoz tartozó jogosultságok szerint. Ez feltételezi, hogy a SAS lejárati ideje még nem telt le. Ha vissza akarod vonni a SAS-t, mindenképp használj más nevet a hozzáférési szabályzat újralétrehozásakor, amelynek lejárati ideje a jövőben.

  • A fiókkulcs, amelyet a SAS létrehozásához használtak, újragenerálódik. Egy fiókkulcs újragenerálása miatt minden alkalmazáskomponens, amely ezt a kulcsot használja, nem tudja az engedélyezést, amíg frissítik őket, hogy vagy a másik érvényes fiókkulcsot, vagy az újonnan regenerált fiókkulcsot használják. A fiókkulcs újragenerálása az egyetlen módja annak, hogy azonnal visszavonjuk az ad hoc SAS-t.

Fontos

A megosztott hozzáférési aláírás URI-je kapcsolódik ahhoz a fiókkulcshoz, amellyel az aláírást és a hozzá tartozó tárolt hozzáférési szabályzatot használják, ha van ilyen. Ha nincs rögzített hozzáférési szabályzat, az egyetlen módja a közös hozzáférési aláírás visszavonásának a fiókkulcs megváltoztatása.

Legjobb gyakorlatként javasoljuk, hogy használj tárolt hozzáférési szabályzatot egy SAS szolgáltatással. Ha úgy döntesz, hogy nem használsz tárolt hozzáférési szabályzatot, ügyelj arra, hogy rövid ideig tartsd az ad hoc SAS érvényességi időszakát. További információért a SAS szolgáltatás tárolási hozzáférési szabályzathoz való társításáról lásd: Definiálni egy tárolt hozzáférési szabályzat.

SAS szolgáltatás példa

A következő példa egy blob URI-t mutat, amelyhez egy szolgáltatás SAS tokent csatolnak. A SAS token szolgáltatás olvasási és írási jogokat biztosít a blobnak.

https://myaccount.blob.core.windows.net/sascontainer/blob1.txt?sp=rw&st=2023-05-24T01:13:55Z&se=2023-05-24T09:13:55Z&sip=198.51.100.10-198.51.100.20&spr=https&sv=2022-11-02&sr=b&sig=<signature>

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

Név SAS-rész Leírás
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.
Határoló ? A lekérdezési sztringet megelőző elválasztó. A határoló nem része az SAS-jogkivonatnak.
Jogosultságok sp=rw Az SAS által megadott engedélyek közé tartozik az Olvasás (r) és az Írás (w).
Kezdési időpont st=2023-05-24T01:13:55Z Utc idő szerint megadva. Ha azt szeretné, hogy az SAS azonnal érvényes legyen, hagyja ki a kezdési időpontot.
Lejárati idő se=2023-05-24T09:13:55Z Utc idő szerint megadva.
IP-címtartomány sip=198.51.100.10-198.51.100.20 Az IP-címek tartománya, amelyből a kérést elfogadják.
Protokoll spr=https Csak a HTTPS-t használó kérések engedélyezettek.
Azure Storage version sv=2023-05-24 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.
Signature sig=<signature> A blobhoz való hozzáférés engedélyezésére szolgál. Az aláírás egy HMAC, amelyet az SHA256 algoritmussal egy sztring-jel és kulcs alapján számítunk ki, majd Base64 kódolással kódolunk.

Lásd még