Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Sdílený přístupový podpis (SAS) poskytuje bezpečný delegovaný přístup k prostředkům ve vašem úložišti. Pomocí sdíleného přístupového podpisu máte podrobnou kontrolu nad tím, jak může klient přistupovat k vašim datům. Příklad:
- Jaké zdroje může klient mít přístup.
- Jaká oprávnění k těmto prostředkům mají.
- Jak dlouho je SAS platný.
Typy sdílených přístupových podpisů
Azure Storage podporuje tři typy sdílených přístupových podpisů.
Důležité
Ve scénářích, ve kterých se používají sdílené přístupové podpisy, Microsoft doporučuje používat uživatelskou SAS delegaci. Delegování uživatele prostřednictvím SAS je zabezpečeno pomocí přihlašovacích údajů Microsoft Entra místo klíče účtu, což poskytuje vyšší úroveň zabezpečení. Další informace o autorizaci pro access dat najdete v tématu Authorize access k datům v Azure Storage.
Delegování uživatele SAS
Delegování uživatele SAS je zabezpečeno pomocí přihlašovacích údajů Microsoft Entra a také oprávněními zadanými pro SAS. SAS delegování uživatele je podporováno pro Blob Storage (včetně koncových bodů Data Lake Storage a dfs), Fronty Storage, Tabulky Storage nebo Azure Files.
Další informace o SAS delegování uživatele najdete v tématu Vytvoření SAS delegování uživatele (REST API).
Služby SAS
SAS služby je zabezpečen pomocí klíče účtu úložiště. SAS služby deleguje přístup na prostředek pouze jedné ze služeb Azure Storage: Blob Storage (včetně koncových bodů Data Lake Storage a dfs), front Storage, tabulky Storage nebo Azure Files.
Další informace o SAS služby najdete v tématu Vytvoření SAS služby (REST API).
SAS účtu
SAS účtu je zabezpečen pomocí klíče účtu úložiště. SAS účtu deleguje přístup na prostředky v jedné nebo více službách úložiště. Všechny operace dostupné prostřednictvím delegovaného přístupového podpisu služby nebo uživatele (SAS) jsou dostupné také prostřednictvím přístupového podpisu účtu (Account SAS).
Můžete také delegovat access na následující položky:
- Operace na úrovni služby (například operace Get/Set Service Properties a Get Service Stats ).
- Operace čtení, zápisu a odstranění, které nejsou povoleny sdíleným přístupovým podpisem služby
Další informace o SAS účtu najdete v části Vytvoření SAS účtu (REST API).
Sdílený podpis přístupu může mít jednu ze dvou forem:
- Ad hoc SAS. Při vytváření jednorázového sdíleného přístupového podpisu se v identifikátoru URI SAS zadává počáteční čas, doba vypršení platnosti a oprávnění. Libovolný typ SAS může být ad hoc SAS.
- Služba SAS s uloženými zásadami přístupu. Uložená přístupová zásada je definována v kontejneru prostředků, což může být kontejner objektů blob, tabulka, fronta nebo sdílení souborů. Uložená zásady přístupu lze použít ke správě omezení podpisů sdíleného přístupu jedné nebo více služeb. Když přidružíte SAS služby k uložené zásadě přístupu, SAS dědí omezení – počáteční čas, čas vypršení platnosti a oprávnění – definovaná pro uloženou zásadu přístupu.
Poznámka:
SAS delegování uživatele nebo SAS účtu musí být sdílený přístupový podpis ad hoc. Uložené zásady access nejsou podporované pro SAS delegování uživatele nebo SAS účtu.
Jak funguje sdílený přístupový podpis
Sdílený podpis přístupu je token, který je připojen k identifikátoru URI pro prostředek Azure Storage. Token, který obsahuje speciální sadu parametrů dotazu, které označují, jak mohou být prostředky přístupné klientem. Jeden z parametrů dotazu, podpis, je vytvořen z parametrů SAS a podepsán pomocí klíče, který byl použit k vytvoření SAS. Tento podpis používá Azure Storage k autorizaci přístupu k úložišti.
Poznámka:
Není možné auditovat generování tokenů SAS. Každý uživatel, který má oprávnění k vygenerování tokenu SAS, buď pomocí klíče účtu, nebo prostřednictvím přiřazení Azure role, to může udělat bez znalosti vlastníka účtu storage. Dávejte pozor, abyste omezili oprávnění, která uživatelům umožňují generovat tokeny SAS. Pokud chcete uživatelům zabránit v generování sdíleného přístupového podpisu podepsaného klíčem účtu pro úlohy objektů blob a front, můžete zakázat přístup pomocí sdíleného klíče k účtu úložiště. Další informace naleznete v tématu Zabránění autorizaci pomocí sdíleného klíče.
Digitální podpis a autorizace SAS
Token SAS můžete podepsat pomocí klíče delegování uživatele nebo pomocí klíče účtu storage (sdílený klíč).
Podepsání tokenu SAS pomocí klíče delegování uživatele
Token SAS můžete podepsat pomocí klíče delegování uživatele, který byl vytvořen pomocí přihlašovacích údajů Microsoft Entra. Sas delegování uživatele je podepsaný klíčem delegování uživatele.
Pokud chcete získat klíč a pak vytvořit SAS, musí být objekt zabezpečení Microsoft Entra přiřazen Azure roli, která zahrnuje akci Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. Další informace naleznete v tématu Vytvoření uživatelského delegačního SAS (REST API).
Podepsání tokenu SAS pomocí klíče účtu
SAS služby i SAS účtu jsou podepsané klíčem účtu úložiště. Pokud chcete vytvořit SAS, který je podepsaný pomocí klíče účtu, musí mít aplikace k klíči účtu access.
Pokud požadavek obsahuje token SAS, je tento požadavek autorizovaný na základě způsobu podepsání tokenu SAS. Klíč access nebo přihlašovací údaje, které používáte k vytvoření tokenu SAS, používají také Azure Storage k udělení access klientovi, který má SAS.
Následující tabulka shrnuje, jak je každý typ tokenu SAS autorizovaný.
| Druh SAS | Typu autorizace |
|---|---|
| Delegování uživatele SAS | Microsoft Entra ID |
| Služby SAS | Sdílený klíč |
| SAS účtu | Sdílený klíč |
Microsoft doporučuje používat SAS delegování uživatele, pokud je to možné pro zajištění vyššího zabezpečení.
token SAS
Token SAS je řetězec, který vygenerujete na straně klienta, například pomocí jedné z Azure Storage klientských knihoven. Token SAS není sledován Azure Storage žádným způsobem. Na straně klienta můžete vytvořit neomezený počet tokenů SAS. Po vytvoření sdíleného přístupového podpisu ho můžete distribuovat do klientských aplikací, které vyžadují přístup k prostředkům v úložišti vašeho účtu.
Klientské aplikace poskytují identifikátor URI SAS pro Azure Storage jako součást požadavku. Pak služba zkontroluje parametry SAS a podpis, aby ověřila, že je platná. Pokud služba ověří, že podpis je platný, je žádost autorizována. V opačném případě se požadavek odmítne s kódem chyby 403 (Zakázáno).
Tady je příklad identifikátoru URI SAS služby, který zobrazuje identifikátor URI prostředku, znak oddělovače (?) a token SAS.
Poznámka:
Znak oddělovače (?) řetězce dotazu není součástí tokenu SAS. Pokud vygenerujete token SAS z portálu, PowerShellu, Azure CLI nebo některé ze sad SDK Azure Storage, budete možná muset k adrese URL prostředku připojit znak oddělovače.
Kdy použít sdílený přístupový podpis
Pomocí SAS udělte zabezpečený přístup k prostředkům ve vašem účtu úložiště všem klientům, kteří jinak nemají oprávnění k těmto prostředkům.
Běžným scénářem, kdy je sdílený přístupový podpis užitečný, je služba, ve které uživatelé do vašeho storage účtu čtou a zapisují svá vlastní data. Ve scénáři, kdy účet storage ukládá uživatelská data, existují dva typické vzory návrhu:
Klienti nahrávají a stahují data přes front-endovou proxy službu, která provádí ověřování. Tato front-endová služba proxy umožňuje ověřování obchodních pravidel. U velkých objemů dat nebo transakcí s velkým objemem však může být vytvoření služby, která se může škálovat tak, aby odpovídala poptávce, nákladná nebo obtížná.
Lehká služba klienta ověřuje podle potřeby a poté vygeneruje SAS (sdílený přístupový podpis). Jakmile klientská aplikace obdrží SAS, může přímo přistupovat k prostředkům úložiště účtu. Oprávnění k přístupu jsou definována SAS a pro interval povolený SAS. Systém řízení přístupu snižuje potřebu směrování všech dat přes front-end proxy.
Mnoho reálných služeb může používat hybridní z těchto dvou přístupů. Některá data se například můžou zpracovávat a ověřovat prostřednictvím front-endového proxy serveru. Jiná data se ukládají nebo čtou přímo pomocí SAS.
Kromě toho je v určitých scénářích pro autorizaci přístupu ke zdrojovému objektu v operaci kopírování vyžadován SAS.
- Když zkopírujete BLOB do jiného BLOBu, který se nachází v jiném účtu úložiště. Volitelně můžete pomocí sdíleného přístupového podpisu autorizovat access také k cílovému objektu blob.
- Když zkopírujete soubor do jiného souboru, který se nachází v jiném storage účtu. Volitelně můžete použít SAS k autorizaci přístupu do cílového souboru.
- Při kopírování objektu blob do souboru nebo souboru do objektu blob. Sas musíte použít i v případě, že se zdrojové a cílové objekty nacházejí ve stejném storage účtu.
Osvědčené postupy při používání SAS
Když ve svých aplikacích používáte sdílené access podpisy, musíte mít na paměti dvě potenciální rizika:
- Pokud dojde k úniku sdíleného přístupového podpisu, může ho použít kdokoli, kdo ho získá, což může potenciálně ohrozit váš účet úložiště.
- Pokud vyprší platnost sdíleného přístupového podpisu poskytnutého klientské aplikaci a aplikace nemůže z vaší služby načíst nový SAS, může to omezit funkčnost aplikace.
Následující doporučení pro používání sdílených přístupových podpisů vám mohou pomoci zmírnit tato rizika:
Vždy používejte HTTPS pro vytvoření nebo distribuci SAS (sdíleného přístupového podpisu). Pokud je SAS předáván přes protokol HTTP a zachytí se, útočník provádějící útok typu man-in-the-middle je schopen SAS přečíst. Pak můžou tento SAS použít stejně jako zamýšlený uživatel. To může potenciálně ohrozit citlivá data nebo umožnit poškození dat uživatelem se zlými úmysly.
Pokud je to možné, použijte SAS delegování uživatele. SAS delegování uživatele poskytuje vynikající zabezpečení sas služby nebo sdíleného přístupového podpisu účtu. Delegování uživatelského SAS je zabezpečeno pomocí přihlašovacích údajů Microsoft Entra, takže klíč ke svému účtu nemusíte ukládat s kódem.
Mějte zavedený plán odvolání pro sdílený přístupový podpis. Ujistěte se, že jste připraveni reagovat, pokud bude SAS (sdílený přístupový podpis) ohrožen.
Nakonfigurujte zásadu vypršení platnosti SAS pro účet storage. Zásada vypršení platnosti SAS určuje doporučený interval, ve kterém je SAS platný. Zásady vypršení platnosti SAS se vztahují na SAS služby nebo SAS účtu. Když uživatel vygeneruje SAS služby nebo SAS účtu s intervalem platnosti, který je větší než doporučený interval, zobrazí se mu upozornění. Pokud Azure Storage protokolování pomocí Azure Monitoru je povolené, zapíše se položka do Azure Storage protokolů. Další informace najdete v tématu Vytvoření zásad vypršení platnosti pro sdílené přístupové podpisy.
Vytvořte uložené zásady přístupu pro službu SAS. Uložené zásady přístupu umožňují odvolat oprávnění sdíleného přístupového podpisu služby (SAS), aniž byste museli znovu vygenerovat klíče účtu úložiště. Nastavte vypršení platnosti těchto položek velmi daleko do budoucnosti (nebo nekonečné) a ujistěte se, že jsou pravidelně aktualizovány, aby se přesunuly dál do budoucnosti. Pro každý kontejner platí limit pěti uložených přístupových zásad.
U improvizované sdílené služby SAS nebo sdíleného přístupového podpisu účtu používejte časy vypršení platnosti v blízké době. Tímto způsobem, i když je sdílený přístupový podpis (SAS) kompromitován, zůstává platný pouze na krátkou dobu. Tento postup je zvlášť důležitý, pokud nemůžete odkazovat na uložené přístupové zásady. Doby blízkého vypršení platnosti také omezují množství dat, která mohou být zapsána do objektu blob, tím, že omezují dobu dostupnou pro nahrání.
Umožněte automatické obnovení SAS klientům, pokud je to potřeba. Klienti by měli SAS prodloužit před vypršením platnosti, aby měli dost času na opakování pokusů, pokud služba zajišťující SAS nebude dostupná. V některých případech to může být zbytečné. Například můžete chtít, aby se SAS (sdílený přístupový podpis) používal pro malý počet okamžitých, krátkodobých operací. Očekává se, že se tyto operace dokončí během období vypršení platnosti. V důsledku toho neočekáváte obnovení sdíleného přístupového podpisu (SAS). Pokud ale máte klienta, který pravidelně provádí požadavky prostřednictvím SAS, je třeba zvážit možnost vypršení platnosti.
Buďte opatrní s počátečním časem SAS. Pokud nastavíte čas spuštění sas na aktuální čas, může k selháním dojít přerušovaně po dobu prvních několika minut. Důvodem je to, že různé počítače mají mírně odlišné aktuální časy (označované jako nerovnoměrná distribuce hodin). Obecně platí, že počáteční čas bude v minulosti alespoň 15 minut. Nebo ho vůbec nenastavujte, aby byl platný okamžitě ve všech případech. Obecně totéž platí i pro čas vypršení platnosti – pamatujte, že u jakékoli žádosti můžete zaznamenat až 15 minut odchylky hodin oběma směry. Pro klienty používající verzi REST starší než 2012-02-12 je maximální doba trvání SAS, která neodkazuje na uloženou zásadu přístupu, 1 hodinu. Všechny zásady, které určují delší dobu než 1 hodinu, selžou.
Buďte opatrní s formátem data a času SAS. U některých nástrojů (například AzCopy) musí být hodnoty data a času formátované jako +%Y-%m-%dT%H:%M:%SZ. Tento formát obsahuje konkrétně sekundy.
Udělte nejmenší nezbytná oprávnění pomocí služby SAS. Osvědčeným postupem zabezpečení je poskytnout uživateli minimální požadovaná oprávnění k nejmenším možným prostředkům. Pokud je to možné, použijte SAS jen pro čtení. Pokud uživatel potřebuje pouze přístup ke čtení k jednomu objektu, udělte mu přístup ke čtení k danému objektu, a ne přístup ke čtení/zápisu/odstranění ke všem objektům. To také pomáhá zmenšit poškození v případě ohrožení SAS, protože v rukou útočníka má SAS méně výkonu.
Neexistuje žádný přímý způsob, jak identifikovat, kteří klienti přistupovali k prostředku. Ke sledování přístupu ale můžete použít jedinečná pole v SAS, podepsanou IP adresu (
sip), podepsané zahájení (st) a podepsané vypršení platnosti (se). Můžete například vygenerovat token SAS s jedinečnou dobou vypršení platnosti, kterou pak můžete korelovat s klientem, kterému byl vydán.Uvědomte si, že váš účet se bude účtovat za jakékoli využití, včetně prostřednictvím sdíleného přístupového podpisu( SAS). Pokud poskytnete práva pro zápis do datového objektu blob, uživatel se může rozhodnout nahrát 200 GB datový objekt (blob). Pokud jste jim také dali přístup k čtení, mohou se rozhodnout stáhnout jej 10krát, což by znamenalo vznik nákladů na odchozí přenos dat ve výši 2 TB pro vás. Opět poskytněte omezená oprávnění, která vám pomůžou zmírnit potenciální akce uživatelů se zlými úmysly. Pomocí krátkodobého SAS můžete tuto hrozbu snížit (ale mějte na paměti posun času u konečného času).
Ověřte data zapsaná pomocí SAS. Když klientská aplikace zapisuje data do vašeho účtu storage, mějte na paměti, že s daty můžou být problémy. Pokud plánujete ověřit data, proveďte ověření po zápisu dat a před tím, než je vaše aplikace použije. Tento postup také chrání před zápisem poškozených nebo škodlivých dat do vašeho účtu, a to buď uživatelem, který SAS řádně získal, nebo uživatelem, který zneužil uniklý SAS.
Zjistěte, kdy nepoužíváte SAS. V některých případech rizika spojená s konkrétní operací vůči vašemu storage účtu převáží výhody použití SAS (sdíleného přístupového podpisu). U takových operací vytvořte vrstvu střední úrovně, která po ověření obchodních pravidel, autentizaci a auditu zapisuje do vašeho účtu úložiště. Někdy je také jednodušší spravovat access jinými způsoby. Pokud například chcete, aby všechny objekty blob v kontejneru byly veřejně čitelné, můžete kontejner nastavit jako veřejný, a nikoli poskytnout SAS každému klientovi pro access.
K monitorování vaší aplikace použijte protokoly Azure Monitor a Azure Storage. K selhání autorizace může dojít kvůli výpadku ve vaší službě poskytovatele SAS. K nim může dojít také v důsledku neúmyslného odebrání uložené zásady přístupu. Ke sledování případných špiček v těchto typech selhání autorizace můžete použít Azure Monitor a protokolování analytiky úložiště. Další informace najdete v tématu Metriky Azure Storage v Azure Monitor a Protokolování Azure Storage Analytics.
Nakonfigurujte zásadu vypršení platnosti SAS pro účet storage. Osvědčené postupy doporučují omezit interval sdíleného přístupového podpisu v případě ohrožení zabezpečení. Nastavením zásad vypršení platnosti SAS pro úložiště účty můžete stanovit doporučený maximální čas vypršení, když uživatel vytvoří službu SAS nebo účet SAS. Další informace najdete v tématu Vytvoření zásad vypršení platnosti pro sdílené přístupové podpisy.
Poznámka:
Storage nesleduje počet sdílených access podpisů generovaných pro účet storage a žádné rozhraní API nemůže tyto podrobnosti poskytnout. Pokud potřebujete znát počet sdílených access podpisů generovaných pro účet storage, musíte číslo sledovat ručně.
Začněte se SAS
Pokud chcete začít používat sdílené přístupové podpisy, přečtěte si následující články pro každý typ SAS.
Delegování uživatele SAS
- Vytvoření uživatelského delegovaného SAS pro kontejner nebo blob pomocí PowerShellu
- Vytvoření uživatelského delegování SAS pro kontejner nebo blobu s využitím Azure CLI
- Vytvořte uživatelsky delegovaný SAS pro kontejner nebo blob pomocí .NET
- Vytvořte uživatelský delegovaný SAS pro kontejner nebo blob (objekt) pomocí Pythonu
- Vytvoření uživatelsky delegovaného SAS pro kontejner nebo objekt blob s využitím JavaScriptu
- Vytvoření uživatelsky delegovaného SAS pro kontejner nebo blob pomocí Java
Služby SAS
- Vytvoření SAS služby pro kontejner nebo objekt blob pomocí .NET
- Vytvoření SAS služby pro kontejner nebo objekt blob pomocí Pythonu
- Vytvoření SAS služby pro kontejner nebo objekt blob pomocí JavaScriptu
- Vytvoření SAS služby pro kontejner nebo objekt blob pomocí Javy
SAS účtu
- Vytvořit SAS účtu pomocí .NET
- Vytvořte účet SAS pomocí Pythonu
- Vytvořte účet SAS pomocí JavaScriptu
- Vytvořte SAS účtu pomocí Javy