Szolgáltatási SAS létrehozása
Fontos
Az optimális biztonság érdekében a Microsoft a Microsoft Entra ID felügyelt identitásokkal való használatát javasolja a blob-, üzenetsor- és táblaadatokra irányuló kérések engedélyezéséhez, amikor csak lehetséges. A Microsoft Entra ID és felügyelt identitásokkal való engedélyezés kiemelkedő biztonságot és egyszerű használatot biztosít a megosztott kulcsos hitelesítéssel szemben. További információ: Engedélyezés Microsoft Entra ID. A felügyelt identitásokkal kapcsolatos további információkért lásd: Mik azok az Azure-erőforrások felügyelt identitásai.
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 Azure Arc-kompatibilis kiszolgálókkal.
Olyan forgatókönyvek esetén, ahol közös hozzáférésű jogosultságkódokat (SAS) használnak, a Microsoft felhasználódelegálási SAS használatát javasolja. A felhasználói delegálási SAS-t a fiókkulcs helyett Microsoft Entra hitelesítő adatok védik. A közös hozzáférésű jogosultságkódokkal kapcsolatos további információkért lásd: Létrehozás a felhasználódelegálási SAS-t.
A szolgáltatások közös hozzáférésű jogosultságkódja (SAS) csak az egyik tárolási szolgáltatásban delegálja a hozzáférést egy erőforráshoz: Azure Blob Storage, Azure Queue Storage, Azure Table Storage vagy Azure Files. A szolgáltatási szintű SAS URI-ja az erőforráshoz tartozó URI-ból áll, amelyhez az SAS hozzáférést delegál, majd az SAS-jogkivonat.
Az SAS-jogkivonat az a lekérdezési sztring, amely tartalmazza a kérés engedélyezéséhez szükséges összes információt. A jogkivonat határozza meg az ügyfél által elérhető erőforrást, a megadott engedélyeket és az aláírás érvényességének időtartamát.
Az SAS azt a támogatott IP-címet vagy címtartományt is megadhatja, amelyből a kérések származhatnak, azt a támogatott protokollt, amellyel kérést lehet küldeni, vagy egy opcionális hozzáférési szabályzatazonosítót, amely a kéréshez van társítva.
Végül minden SAS-jogkivonat tartalmaz egy aláírást.
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, az SAS URI-kat pedig csak biztonságos kapcsolaton, például HTTPS-en szabad terjeszteni.
Szolgáltatás SAS-ének engedélyezése
A fiók SAS-ének védelmét tárfiókkulcs használatával teheti meg. Fiók SAS létrehozásakor az ügyfélalkalmazásnak rendelkeznie kell a fiókkulcsmal.
Ha Microsoft Entra hitelesítő adatokkal szeretné biztonságossá tenni az SAS-t egy tárolóhoz vagy blobhoz, hozzon létre egy felhasználódelegálási SAS-t.
Szolgáltatás SAS-támogatása címtárhatókörű hozzáféréshez
A szolgáltatá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. 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.
Szolgáltatás SAS-jének létrehozása
Az alábbi kép a közös hozzáférésű jogosultságkód URI-jának részeit ábrázolja. A szükséges részek narancssárga színnel jelennek meg. Az SAS-jogkivonatot alkotó mezőket a következő szakaszok ismertetik.
A következő szakaszok ismertetik, hogyan adhatja meg a szolgáltatás SAS-jogkivonatát alkotó paramétereket.
signedVersion
A mező megadása
A signedVersion
(sv
) mező a közös hozzáférésű jogosultságkód szolgáltatásverzióját tartalmazza. Ez az érték határozza meg a közös hozzáférésű jogosultságkód által használt megosztott kulcsos hitelesítés verzióját (a signature
mezőben). Az érték az ezzel a közös hozzáférésű jogosultságkóddal küldött kérések szolgáltatásverzióját is meghatározza.
Ha tudni szeretné, hogy a rendszer melyik verziót használja a kérések közös hozzáférésű jogosultságkódon keresztüli végrehajtásakor, tekintse meg az Azure Storage-szolgáltatások verziószámozását ismertető cikket.
További információ arról, hogy ez a paraméter hogyan befolyásolja a közös hozzáférésű jogosultságkóddal küldött kérések engedélyezését: Hozzáférés delegálása közös hozzáférésű jogosultságkóddal.
Mező neve | Lekérdezési paraméter | Leírás |
---|---|---|
signedVersion |
sv |
Kötelező. A 2012-02-12-es és újabb verziókban támogatott. A társzolgáltatás ezen közös hozzáférésű jogosultságkóddal kapcsolatos kéréseinek engedélyezésére és kezelésére használható verziója. További információ: Verziószámozás az Azure Storage-szolgáltatásokhoz. |
Örökölt SAS-kérelem verziójának meghatározása
Örökölt esetekben, ahol signedVersion
nincs használatban, a Blob Storage szabályokat alkalmaz a verzió meghatározására. További információ ezekről a szabályokról: Verziószámozás az Azure Storage-szolgáltatásokhoz.
Fontos
Az ügyfélszoftver váratlan protokollviselkedést tapasztalhat, ha olyan közös hozzáférésű jogosultságkód URI-t használ, amely az ügyfélszoftvernél újabb tárolószolgáltatás-verziót használ. A közös hozzáférésű jogosultságkód URI-jait összeállító kódnak olyan verziókra kell támaszkodnia, amelyeket a tárolási szolgáltatáskéréseket intéző ügyfélszoftver megért.
Az aláírt erőforrás megadása (csak Blob Storage esetén)
A kötelező 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 azt ismerteti, hogyan hivatkozhat egy blobra vagy tárolóerő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-i és újabb verziók | Hozzáférést biztosít a blobverzió tartalmához és metaadataihoz, az alapblobhoz nem. |
Blobpillanatkép | Bs | 2018.11.09-i és újabb verziók | Hozzáférést biztosít a blobpillanatkép tartalmához és metaadataihoz, az alapblobhoz azonban nem. |
Tároló | c | Mind | 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 | n | 2020-02-10 és újabb verziók | 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 olyan tárfiókban, amelyen engedélyezve van a hierarchikus névtér. 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 egy tárolóba ágyazva lesznek. |
Az aláírt erőforrás (Azure Files) megadása
Az SAS a Azure Files 2015-02-21-es és újabb verzióiban támogatott.
A signedResource
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 azt ismerteti, hogyan hivatkozhat fájlra vagy erőforrás megosztására az URI-n.
Mező neve | Lekérdezési paraméter | Leírás |
---|---|---|
signedResource |
sr |
Kötelező. Adja meg f , hogy a megosztott erőforrás fájl-e. Ezzel hozzáférést biztosít a fájl tartalmához és metaadataihoz.Adja meg s , hogy a megosztott erőforrás megosztás-e. Ezzel 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. |
Lekérdezési paraméterek megadása 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 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. Ez a funkció a Blob Storage 2013-08-15-es, a Azure Files 2015-02-21-es verziójától támogatott. Az ezt a funkciót használó közös hozzáférésű jogosultságkódoknak tartalmazniuk kell a sv
Blob Storage vagy újabb, illetve 2015-02-21
a Azure Files vagy újabb paraméterét2013-08-15
.
A válaszfejlécek és a kapcsolódó lekérdezési paraméterek az alábbi 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 |
Ha például a lekérdezési paramétert rsct=binary
a 2013-08-15-ös vagy újabb verzióval létrehozott közös hozzáférésű jogosultságkódon adja meg, a Content-Type
válaszfejléc a következőre binary
van á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 őket. További információt a jelen cikk "Az aláírási sztring létrehozása" című szakaszában talál. További példákért lásd: Service SAS-példák.
Adja meg a tábla nevét (csak Table Storage)
A tableName
mező megadja a megosztani kívánt tábla nevét.
Mező neve | Lekérdezési paraméter | Leírás |
---|---|---|
tableName |
tn |
Kötelező. A megosztani kívánt tábla neve. |
A hozzáférési szabályzat megadása
Az URI hozzáférési szabályzat része azt az időtartamot jelzi, amely alatt a közös hozzáférésű jogosultságkód érvényes, valamint a felhasználónak adható engedélyeket. Az URI hozzáférési szabályzatot alkotó részeit az alábbi táblázat ismerteti:
Mező neve | Lekérdezési paraméter | Leírás |
---|---|---|
signedStart |
st |
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 ez a paraméter nincs megadva, a rendszer az aktuális UTC-időpontot használja a kezdési időpontként. A 2012-02-12-nél korábbi verziókban az időtartam signedStart signedExpiry nem haladhatja meg az egy órát, kivéve, ha tárolóházirendet használ. Az elfogadott UTC-formátumokról további információt a Dátum/idő értékek formázása című témakörben talál. |
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 hagynia, ha az egy társított tárolt hozzáférési szabályzatban van megadva. Az elfogadott UTC-formátumokról további információt a Dátum/idő értékek formázása című témakörben talál. |
signedPermissions
1 |
sp |
Kötelező. A közös hozzáférésű jogosultságkódhoz társított engedélyek. A felhasználó az engedélyek által engedélyezett műveletekre korlátozódik. Ezt a mezőt ki kell hagynia, ha az egy társított tárolt hozzáférési szabályzatban van megadva. |
startPk
2startRk
2 |
spk srk |
Csak Table Storage. Nem kötelező, de startPk a következőket kell követnie startRk : . Az ezzel a közös hozzáférésű jogosultságkóddal elérhető minimális partíció- és sorkulcsok. A kulcsértékek befogadóak. Ha nincsenek megadva, a táblaentitásokon nincs alacsonyabb kötés, amely elérhető. |
endPk
2endRk
2 |
epk erk |
Csak Table Storage. Nem kötelező, de endPk a következőket kell követnie endRk : . A megosztott hozzáférésű jogosultságkóddal elérhető partíció- és sorkulcsok maximális száma. A kulcsértékek befogadóak. Ha nincsenek megadva, nincs felső korlát a táblaentitásokon, amelyek elérhetők. |
1 A signedPermissions
mező megadása kötelező az URI-n, kivéve, ha egy tárolt hozzáférési szabályzat részeként van megadva.
2 A startPk
, startRk
, endPk
és endRk
mező csak a Table Storage-erőforrásokon adható meg.
Engedélyek megadása
Az SAS-jogkivonat (sp
) mezőjéhez signedPermissions
megadott engedélyek azt jelzik, hogy az ügyfél mely műveleteket hajthatja végre az erőforráson.
Egyesítheti az engedélyeket, hogy egy ü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ést nem adhatja meg többször.
A szolgáltatás SAS nem tud hozzáférést biztosítani bizonyos műveletekhez:
- A tárolók, üzenetsorok és táblák nem hozhatók létre, törölhetők vagy listázhatók.
- A tároló metaadatai és tulajdonságai nem olvashatók és nem írhatók.
- Az üzenetsorok nem törölhetők, és a metaadataik 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ót a fiók SAS-Létrehozás című témakörben talál.
Fontos
A közös hozzáférésű jogosultságkódok olyan kulcsok, amelyek engedélyeket adnak a tárolási erőforrásoknak, és ugyanúgy védenie kell őket, mint egy fiókkulcsot. Olyan műveleteket hajt végre, amelyek csak HTTPS-kapcsolaton keresztül használják a közös hozzáférésű jogosultságkódokat, és csak biztonságos kapcsolaton, például HTTPS-en terjesztik a közös hozzáférésű jogosultságkód URI-jait.
Az egyes erőforrástípusokhoz támogatott engedélyeket az alábbi szakaszok ismertetik.
Címtárra, tárolóra vagy blobra vonatkozó engedélyek
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ásolja a blobot egy új blobba. |
Írás | w | Tároló Címtár Blob |
Mind | tartalom, tulajdonságok, metaadatok vagy tiltólista Létrehozás vagy írása. A blob pillanatképe vagy bérlete. A blob átméretezése (csak lapblobok). 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 a blobok bérletének megszakítását is. További információt a Blobbérlet műveletben talál. |
Verzió törlése | x | Tároló Blob |
2019-12-12 és újabb verziók | Blobverzió törlése. |
Végleges törlés | é | Blob | 2020-02-10 és újabb verziók | Blobpillanatké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 verziók | Olvassa el vagy írja meg a címkéket egy blobon. |
Keresés | f | Tároló | 2019-12-12 és újabb verziók | Keresse meg az indexcímkéket tartalmazó blobokat. |
Á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. nem engedélyezi 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 egy olyan könyvtár vagy blob átnevezésekor vagy törlésekor, amely a beragadó bitkészlettel rendelkezik. |
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. |
Fájlokra vonatkozó engedélyek
Engedély | URI szimbólum | Engedélyezett műveletek |
---|---|---|
Olvasás | r | Olvassa el a tartalmat, a tulajdonságokat és a metaadatokat. Használja a fájlt másolási művelet forrásaként. |
Létrehozás | c | Létrehozás egy új fájlt, vagy másolja a fájlt egy új fájlba. |
Írás | w | tartalom, tulajdonságok, metaadatok Létrehozás vagy írása. Méretezze át a fájlt. Használja a fájlt a másolási művelet céljaként. |
Törlés | n | Törölje a fájlt. |
Megosztásra vonatkozó engedélyek
Engedély | URI-szimbólum | Engedélyezett műveletek |
---|---|---|
Olvasás | r | Olvassa el a megosztásban lévő fájlok tartalmát, tulajdonságait vagy metaadatait. Másolási művelet forrásaként használja a megosztás bármely fájlját. |
Létrehozás | c | Létrehozás egy új fájlt a megosztásban, vagy másolja a fájlt egy új fájlba a megosztásban. |
Írás | w | A megosztásban lévő bármely fájlhoz hozzon létre vagy írjon tartalmat, tulajdonságokat vagy metaadatokat. Méretezze át a fájlt. Másolási művelet céljaként használja a fájlt. Megjegyzés: Nem adhat engedélyeket a megosztási tulajdonságok vagy metaadatok olvasásához vagy írásához szolgáltatás SAS használatával. Ehelyett használjon fiók SAS-t. |
Törlés | n | Törölje a megosztásban lévő fájlokat. Megjegyzés: Nem adhat engedélyeket a megosztások törléséhez szolgáltatás SAS használatával. Ehelyett használjon fiók SAS-t. |
Lista | l | Fájlok és könyvtárak listázása a megosztásban. |
Egy üzenetsor engedélyei
Engedély | URI-szimbólum | Engedélyezett műveletek |
---|---|---|
Olvasás | r | Metaadatok és tulajdonságok olvasása, beleértve az üzenetek számát is. Betekintés üzenetekben. |
Hozzáadás | a | Üzenetek hozzáadása az üzenetsorhoz. |
Frissítés | U | Üzenetek frissítése az üzenetsorban. Megjegyzés: Használja a Folyamat engedélyt a Frissítéssel, hogy először megkapja a frissíteni kívánt üzenetet. |
Folyamat | P | Üzenetek lekérése és törlése az üzenetsorból. |
Tábla engedélyei
Engedély | URI-szimbólum | Engedélyezett műveletek |
---|---|---|
Lekérdezés | r | Entitások és lekérdezési entitások lekérése. |
Hozzáadás | a | Entitások hozzáadása. Megjegyzés: A frissítési műveletekhez hozzáadási és frissítési engedélyek szükségesek. |
Frissítés | U | Entitások frissítése. Megjegyzés: A frissítési műveletekhez hozzáadási és frissítési engedélyek szükségesek. |
Törlés | n | Entitások törlése. |
IP-cím vagy IP-címtartomány megadása
A 2015-04-05-ös verziótól kezdve a választható signedIp
(sip
) mező egy nyilvános IP-címet vagy egy olyan nyilvános IP-címtartományt határoz meg, amelyből a kéréseket el kell fogadni. Ha az IP-cím, amelyről a kérés származik, nem egyezik meg az SAS-jogkivonaton megadott IP-címmel vagy címtartománynal, a kérés nincs engedélyezve. Csak az IPv4-címek támogatottak.
Ha IP-címtartományt ad meg, vegye figyelembe, hogy a tartomány befogadó. Például a sas megadása sip=168.1.5.65
vagy sip=168.1.5.60-168.1.5.70
az SAS-ben a kérést az adott IP-címekre korlátozza.
Az alábbi táblázat azt ismerteti, hogy a signedIp
mezőt egy SAS-jogkivonatba kell-e felvenni egy adott forgatókönyvhöz 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 a mező kimenő IP-címét signedIp tartalmaznia. A megadott kimenő IP-címmel rendelkező SAS-t használó régióbó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 Azure Storage-nak ugyanazon a régión belülről érkező 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-vel küldött kérésnek a megadott IP-címről vagy címtartományból kell származnia. |
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-vel küldött kérésnek a megadott IP-címről vagy címtartományból kell származnia.Ha a kérelem proxyn vagy átjárón halad át, adja meg az adott 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 a választható signedProtocol
(spr
) mező határozza meg az SAS-vel küldött 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
. Vegye figyelembe, hogy a HTTP csak nem engedélyezett érték.
Táblaelérési tartományok megadása
A startPk
, startRk
, endPk
és endRk
mező a táblaentitások egy tartományát határozza meg, amelyek közös hozzáférésű jogosultságkódhoz vannak társítva. A tábla típusú lekérdezések csak a tartományon belüli eredményeket adnak vissza, és a tartományon kívüli entitások hozzáadására, frissítésére vagy törlésére tett közös hozzáférésű jogosultságkód használatával tett kísérletek sikertelenek lesznek.
Ha startPk
egyenlő endPk
, a közös hozzáférésű jogosultságkód csak a tábla egyetlen partíciójában engedélyezi az entitások elérését.
Ha startPk
egyenlő endPk
és startRk
egyenlő endRk
, a közös hozzáférésű jogosultságkód csak egy entitáshoz férhet hozzá egy partíción belül.
Ha meg szeretné tudni, hogy ezek a mezők hogyan korlátozzák a hozzáférést egy tábla entitásaihoz, tekintse meg az alábbi táblázatot:
A jelen lévő mezők | A kényszer 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 könyvtár mélységének megadása
Ha engedélyezve van egy hierarchikus névtér, és a signedResource
mező megad egy könyvtárat (sr=d
), a (sdd
) mezőt is meg kell adnia signedDirectoryDepth
a gyökérkönyvtárban lévő alkönyvtárak számának jelzéséhez. A mező értékének sdd
nem negatív egész számnak kell lennie.
Például a gyökérkönyvtár https://{account}.blob.core.windows.net/{container}/
mélysége 0. 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.
Ezt a mezőt a 2020-02-10-es vagy újabb verzió támogatja.
Az aláírt azonosító megadása
Amikor megadja az signedIdentifier
URI mezőjét, a megadott közös hozzáférésű jogosultságkód egy megfelelő tárolt hozzáférési szabályzattal lesz összekapcsolva. A tárolt hozzáférési szabályzatok további mértékeket biztosítanak egy vagy több közös hozzáférésű jogosultságkód vezérlésére, beleértve az aláírás szükség esetén történő visszavonásának lehetőségét. Minden tárolóhoz, üzenetsorhoz, táblához vagy megosztáshoz legfeljebb öt tárolt hozzáférési szabályzat tartozhat.
Az alábbi táblázat azt ismerteti, hogyan hivatkozhat egy aláírt azonosítóra az URI-n:
Mező neve | Lekérdezési paraméter | Leírás |
---|---|---|
signedIdentifier |
si |
Választható. Legfeljebb 64 karakteres egyedi érték, amely egy tárolóhoz, üzenetsorhoz vagy táblához megadott hozzáférési szabályzattal korrelál. |
A tárolt hozzáférési szabályzat tartalmaz egy aláírt azonosítót, amely legfeljebb 64 karakterből áll, amely egyedi az erőforráson belül. Az aláírt azonosító értékét megadhatja a signedidentifier
közös hozzáférésű jogosultságkód URI-jának mezőjéhez. Amikor aláírt azonosítót ad meg az URI-n, társítja az aláírást a tárolt hozzáférési szabályzattal. Ha tárolószintű hozzáférési szabályzatot szeretne létrehozni a REST API használatával, tekintse meg a Hozzáférés delegálása közös hozzáférésű jogosultságkóddal című témakört.
A titkosítási hatókör megadása
Az URI mezőjének használatával signedEncryptionScope
megadhatja az ügyfélalkalmazás által használható titkosítási hatókört. Kényszeríti a kiszolgálóoldali titkosítást a megadott titkosítási hatókörrel, amikor a blobokat (PUT) az SAS-jogkivonattal tölti fel. A GET és a HEAD nem lesz korlátozva, és a korábbiakhoz hasonlóan lesz végrehajtva.
Az alábbi táblázat bemutatja, hogyan hivatkozhat aláírt titkosítási hatókörre az URI-n:
Mező neve | Lekérdezési paraméter | Leírás |
---|---|---|
signedEncryptionScope |
ses |
Választható. A kérelem tartalmának titkosításához használandó titkosítási hatókört jelzi. |
Ezt a mezőt a 2020-12-06-os vagy újabb verzió támogatja. Ha hozzáadja a ses
támogatott verzió előtti verziót, a szolgáltatás a 403-es (Tiltott) hibakódot adja vissza.
Ha beállítja a tároló vagy a fájlrendszer alapértelmezett titkosítási hatókörét, a ses
lekérdezési paraméter 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) hibakódot adja vissza.
Ha megadja a x-ms-encryption-scope
fejlécet és a ses
lekérdezési paramétert a PUT kérelemben, a szolgáltatás a 400-ra (hibás kérelem) küldött hibakódot adja vissza, ha nem egyezik.
Az aláírás megadása
Az URI aláírási részének használatával engedélyezheti a közös hozzáférésű jogosultságkóddal küldött kérést. Az Azure Storage megosztott kulcs engedélyezési sémát használ a szolgáltatás SAS-ének engedélyezéséhez.
Az alábbi táblázat bemutatja, hogyan adhatja meg az aláírást az URI-n:
Mező neve | Lekérdezési paraméter | Leírás |
---|---|---|
signature |
sig |
A sztring-előjel egy egyedi sztring, amely a mezőkből van létrehozva, és amelyet ellenőrizni kell a kérelem engedélyezéséhez. Az aláírás egy kivonatalapú üzenethitelesítési kód (HMAC), amelyet az SHA256 algoritmussal a sztring-aláírás és a kulcs alapján számít ki, majd Base64 kódolással kódol. |
Az aláírási sztring létrehozása
Egy közös hozzáférésű jogosultságkód aláírási sztringjének létrehozásához először hozza létre a kérést alkotó mezőkből a sztring-előjelet, kódolja a sztringet UTF-8-ként, majd számítsa ki az aláírást a HMAC-SHA256 algoritmussal. A sztring-előjelben szereplő mezőknek URL-dekódoltnak kell lenniük.
2020-12-06-os és újabb verzió
A 2020-12-06-os verzió támogatja az aláírt titkosítási hatókörmezőt. A Blob Storage-erőforrások sztring-előjelének létrehozásához használja a következő formátumot:
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" +
2018-11-09-es és újabb verziók
A 2018-11-09-es verzió támogatja az aláírt erőforrást és az aláírt blobok pillanatképének időmezőit. Ezeknek a mezőknek szerepelniük kell a sztringek között. A Blob Storage-erőforrások sztring-előjelének létrehozásához használja a következő formátumot:
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-ös és újabb verziók
A 2015-04-05-ös verzió támogatja az aláírt IP-címet és az aláírt protokollmezőket. Ezeknek a mezőknek szerepelniük kell a sztringek között. A Blob Storage- vagy Azure Files-erőforrások sztring-előjelének létrehozásához használja a következő formátumot:
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 sztring-előjelének létrehozásához használja a következő formátumot:
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 sztring-előjelének létrehozásához használja a következő formátumot:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedIP + "\n" +
signedProtocol + "\n" +
signedVersion
2013-08-15-2015-02-21-es verzió
Ha a 2013-08-15-2015-02-21 verzióval szeretné létrehozni a Blob Storage-hoz vagy Azure Files erőforrásokhoz tartozó sztring-előjelet, használja az alábbi formátumot. A Azure Files esetében az 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
Egy tábla sztring-előjelének létrehozásához használja a következő formátumot:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedVersion + "\n" +
startPk + "\n" +
startRk + "\n" +
endPk + "\n" +
endRk
Az üzenetsor sztring-előjelének létrehozásához használja a következő formátumot:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedVersion
2012-02-12-es verzió
A Blob Storage-erőforrások 2012-02-12-es verziójához tartozó sztring-előjel létrehozásához használja a következő formátumot:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedVersion
2012-02-12-nél korábbi verziók
A Blob Storage-erőforrások 2012-02-12-nél korábbi verzióihoz tartozó sztring-előjel létrehozásához használja a következő formátumot:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier
Amikor aláírandó sztringet hoz létre, tartsa szem előtt a következőket:
Ha egy mező nem kötelező, és nem szerepel a kérelemben, adjon meg egy üres sztringet a mezőhöz. Ügyeljen arra, hogy az üres sztring után adja meg az új sor karaktert (\n).
Egy tábla sztring-előjelének tartalmaznia kell a további paramétereket, még akkor is, ha azok üres sztringek.
A
signedpermission
sztring részének tartalmaznia kell az engedélymegjelöléseket az egyes erőforrástípusokra jellemző rögzített sorrendben. Az engedélyek bármilyen kombinációja elfogadható, de az engedélylevelek sorrendjének meg kell egyeznie az alábbi táblázatban szereplő sorrenddel.Erőforrás típusa Engedélyek sorrendje Blob racwd Tároló racwdl Üzenetsor raup Fájl rcwd Megosztás rcwdl Tábla raud Például egy tároló érvényes engedélybeállításai közé tartoznak a következők:
rw
,rd
,rl
,wd
, éswl
rl
. Érvénytelen beállítások például a következők:wr
,dr
,lr
ésdw
. Az engedélymegjelölés többszöri megadása nem engedélyezett.Adjon meg egy értéket a
signedIdentifier
sztring részének, ha a kérést egy tárolt hozzáférési szabályzattal társítja.A 2012-02-12-nél korábbi társzolgáltatás-verziót megadó közös hozzáférésű jogosultságkód csak egy blobot vagy tárolót oszthat meg, és el kell hagynia
signedVersion
az új vonal karakterét.A
canonicalizedResource
sztring része az aláírt erőforráshoz vezető canonical elérési út. Tartalmaznia kell a szolgáltatásnevet (Blob Storage, Table Storage, Queue Storage vagy Azure Files) a 2015-02-21-es vagy újabb verzióhoz, a tárfiók nevét és az erőforrás nevét, és URL-dekódolva kell lennie. A blobok nevének tartalmaznia kell a blob tárolóját. A táblaneveknek kisbetűsnek kell lenniük.
A tárolók, üzenetsorok, táblázatok vagy fájlmegosztások canonicalizált erőforrás-sztringjének el kell hagynia a záró perjelet (/) egy sas esetében, amely hozzáférést biztosít az objektumhoz.
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.
Containers
A 2015-02-21-es és újabb verzió esetén:
URL = https://myaccount.blob.core.windows.net/music
canonicalizedResource = "/blob/myaccount/music"
A 2015-02-21-nél korábbi verziók esetén:
URL = https://myaccount.blob.core.windows.net/music
canonicalizedResource = "/myaccount/music"
Blobok
A 2015-02-21-es és újabb verzió esetén:
URL = https://myaccount.blob.core.windows.net/music/intro.mp3
canonicalizedResource = "/blob/myaccount/music/intro.mp3"
A 2015-02-21-nél korábbi verziók esetén:
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"
Fájlok
URL = https://myaccount.file.core.windows.net/music/intro.mp3
canonicalizedResource = "/file/myaccount/music/intro.mp3"
Üzenetsorok
A 2015-02-21-es és újabb verzió esetén:
URL = https://myaccount.queue.core.windows.net/thumbnails
canonicalizedResource = "/queue/myaccount/thumbnails"
A 2015-02-21-nél korábbi verziók esetén:
URL = https://myaccount.queue.core.windows.net/thumbnails
canonicalizedResource = "/myaccount/thumbnails"
Táblák
Ha az aláírt erőforrás egy tábla, győződjön meg arról, hogy a tábla neve kisbetűs a canonicalizált formátumban.
A 2015-02-21-es és újabb verzió esetén:
URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price')
canonicalizedResource = "/table/myaccount/employees"
A 2015-02-21-nél korábbi verziók esetén:
URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price')
canonicalizedResource = "/myaccount/employees"
Közös hozzáférésű jogosultságkód élettartama és visszavonása
A közös hozzáférésű jogosultságkódok hozzáférési jogosultságokat biztosítanak a felhasználóknak a tárfiók erőforrásaihoz. Amikor SAS-t szeretne használni, gondolja át az SAS élettartamát, és hogy az alkalmazásnak bizonyos körülmények között vissza kell-e vonnia a hozzáférési jogosultságokat.
Alkalmi SAS és tárolt hozzáférési szabályzat
A szolgáltatás SAS-jének két formája lehet:
Alkalmi SAS: Eseti SAS létrehozásakor az SAS kezdési időpontja, lejárati ideje és engedélyei mind meg vannak adva az SAS URI-ban (vagy ha a kezdési időpont nincs megadva). Bármilyen típusú SAS lehet alkalmi SAS.
Az alkalmi SAS élettartamát a
signedExpiry
mező használatával kezelheti. Ha a lejárati idő után is szeretne ügyfélhozzáférést biztosítani az erőforráshoz, új aláírást kell kiállítania. Javasoljuk, hogy tartsa rövidre a közös hozzáférésű jogosultságkódok élettartamát. A 2012-02-12-es verzió előtt egy tárolt hozzáférési szabályzathoz nem társított közös hozzáférésű jogosultságkód nem rendelkezhetett egy órát meghaladó aktív időszakkal.SAS tárolt hozzáférési szabályzattal: Egy tárolt hozzáférési szabályzat definiálva van egy erőforrástárolón, amely lehet blobtároló, tábla, üzenetsor vagy fájlmegosztás. A tárolt hozzáférési szabályzattal kezelheti az egy vagy több megosztott hozzáférési aláírásra vonatkozó korlátozásokat. Ha egy SAS-t egy tárolt hozzáférési szabályzathoz társít, az SAS örökli a tárolt hozzáférési szabályzathoz definiált korlátozásokat (azaz a kezdési időpontot, a lejárati időt és az engedélyeket).
A tárolt hozzáférési szabályzatot az
signedIdentifier
URI mezője jelöli. A tárolt hozzáférési szabályzatok további ellenőrzési mértékeket biztosítanak egy vagy több közös hozzáférésű jogosultságkód felett, beleértve az aláírás szükség esetén történő visszavonásának lehetőségét is.
SAS visszavonása
Mivel az SAS URI url-cím, bárki, aki beszerezi az SAS-t, használhatja, függetlenül attól, hogy eredetileg ki hozta létre. Ha egy SAS nyilvánosan van közzétéve, a világon bárki használhatja. A SAS hozzáférést biztosít az erőforrásokhoz bárkinek, aki rendelkezik vele, amíg a négy dolog egyike meg nem történik:
Az ad hoc SAS-ben megadott lejárati idő elévülési idő.
A rendszer eléri az SAS által hivatkozott tárolt hozzáférési szabályzatban megadott lejárati időt, ha egy tárolt hozzáférési szabályzatra hivatkozik, és a hozzáférési szabályzat a lejárati időt határozza meg.
A lejárati idő azért érhető el, mert az időköz lejár, vagy azért, mert a tárolt hozzáférési szabályzatot úgy módosította, hogy a lejárati idő a múltban legyen, ami az SAS visszavonásának egyik módja.
Az SAS által hivatkozott tárolt hozzáférési szabályzat törlődik, amely visszavonja az SAS-t. Ha az Azure Storage nem találja a megosztott hozzáférési aláírásban megadott tárolt hozzáférési szabályzatot, az ügyfél nem tud hozzáférni az URI által jelzett erőforráshoz.
Ha újra létrehozza a tárolt hozzáférési szabályzatot pontosan ugyanazzal a névvel, mint a törölt szabályzat, az összes meglévő SAS-jogkivonat ismét érvényes lesz a tárolt hozzáférési szabályzathoz társított engedélyeknek megfelelően. Ez azt feltételezi, hogy az SAS lejárati ideje nem telt el. Ha vissza szeretné vonni az SAS-t, mindenképpen használjon másik nevet, amikor a jövőben újra létrehozza a hozzáférési szabályzatot lejárati idővel.
Az SAS létrehozásához használt fiókkulcs újra létrejön. A fiókkulcs újragenerálása miatt az adott kulcsot használó összes alkalmazásösszetevőnek nem sikerül engedélyeznie az engedélyezést mindaddig, amíg a másik érvényes fiókkulcs vagy az újonnan létrehozott fiókkulcs használatára nem frissülnek. A fiókkulcs újragenerálása az egyetlen módja az alkalmi SAS azonnali visszavonásának.
Fontos
A megosztott hozzáférésű jogosultságkód URI-ja az aláírás létrehozásához használt fiókkulcshoz és a társított tárolt hozzáférési szabályzathoz van társítva, ha van ilyen. Ha nincs megadva tárolt hozzáférési szabályzat, a megosztott hozzáférésű jogosultságkódok visszavonásának egyetlen módja a fiókkulcs módosítása.
Ajánlott eljárásként azt javasoljuk, hogy egy tárolt hozzáférési szabályzatot használjon egy szolgáltatás SAS-jével. Ha úgy dönt, hogy nem használ tárolt hozzáférési szabályzatot, tartsa meg azt az időszakot, amely alatt az alkalmi SAS érvényes. A szolgáltatás SAS-jének tárolt hozzáférési szabályzattal való társításáról további információt a Tárolt hozzáférési szabályzat definiálása című témakörben talál.
Példa szolgáltatás SAS-szolgáltatásra
Az alábbi példában egy blob URI-ja látható, amelyhez hozzá van fűzve egy szolgáltatás SAS-jogkivonata. A szolgáltatás SAS-jogkivonata 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&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. |
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. |
Azure Storage-verzió | 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. |
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. |