Zjišťování sdílených přístupových podpisů
Sdílený přístupový podpis (SAS) je podepsaný identifikátor URI, který odkazuje na jeden nebo více prostředků úložiště a obsahuje token, který obsahuje speciální sadu parametrů dotazu. Token označuje, jak může klient přistupovat k prostředkům. 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 prostředku úložiště.
Typy sdílených přístupových podpisů
Azure Storage podporuje tři typy sdílených přístupových podpisů:
SAS delegování uživatele: SAS delegování uživatele je zabezpečen pomocí přihlašovacích údajů Microsoft Entra a také oprávněními zadanými pro SAS. SAS delegování uživatele se vztahuje pouze na úložiště objektů blob.
SAS služby: SAS služby je zabezpečený pomocí klíče účtu úložiště. SAS služby deleguje přístup k prostředku v následujících službách Azure Storage: Blob Storage, Queue Storage, Table Storage nebo Azure Files.
SAS účtu: SAS účtu je zabezpečený pomocí klíče účtu úložiště. SAS účtu deleguje přístup k prostředkům v jedné nebo více službách úložiště. Všechny operace dostupné prostřednictvím SAS delegování služby nebo uživatele jsou dostupné také prostřednictvím sdíleného přístupového podpisu účtu.
Poznámka:
Microsoft doporučuje používat přihlašovací údaje Microsoft Entra, pokud je to možné jako osvědčený postup zabezpečení, a ne používat klíč účtu, který může být snadněji ohrožen. Když návrh aplikace vyžaduje sdílený přístupový podpis pro přístup k úložišti objektů blob, použijte přihlašovací údaje Microsoft Entra k vytvoření SAS delegování uživatele, pokud je to možné pro zajištění vyššího zabezpečení.
Jak sdílené přístupové podpisy fungují
Pokud pro přístup k datům uloženým v Azure Storage používáte sdílený přístupový podpis, potřebujete dvě komponenty. První je identifikátor URI na prostředek, ke kterému chcete získat přístup. Druhou je token SAS, který jste vytvořili pro autorizaci přístupu k tomuto prostředku.
V jednom identifikátoru URI, jako je https://medicalrecords.blob.core.windows.net/patient-images/patient-116139-nq8z7f.jpg?sp=r&st=2020-01-20T11:42:32Z&se=2020-01-20T19:42:32Z&spr=https&sv=2019-02-02&sr=b&sig=SrW1HZ5Nb6MbRzTbXCaPm%2BJiSEn15tC91Y4umMPwVZs%3D
, můžete identifikátor URI oddělit od tokenu SAS takto:
-
IDENTIFIKÁTOR URI:
https://medicalrecords.blob.core.windows.net/patient-images/patient-116139-nq8z7f.jpg?
-
Token SAS:
sp=r&st=2020-01-20T11:42:32Z&se=2020-01-20T19:42:32Z&spr=https&sv=2019-02-02&sr=b&sig=SrW1HZ5Nb6MbRzTbXCaPm%2BJiSEn15tC91Y4umMPwVZs%3D
Samotný token SAS se skládá z několika komponent.
Komponenta | Popis |
---|---|
sp=r |
Řídí přístupová práva. Hodnoty mohou být a pro přidání, c vytvoření, odstranění, d l seznam, r čtení nebo w zápis. Tento příklad je jen pro čtení.
sp=acdlrw Příklad uděluje všechna dostupná práva. |
st=2020-01-20T11:42:32Z |
Datum a čas začátku přístupu |
se=2020-01-20T19:42:32Z |
Datum a čas konce přístupu. V tomto příkladu je udělen přístup na dobu 8 hodin. |
sv=2019-02-02 |
Verze rozhraní API úložiště, která se má použít |
sr=b |
Druh úložiště, ke kterému se získává přístup. Položka b v tomto příkladu označuje objekt blob. |
sig=SrW1HZ5Nb6MbRzTbXCaPm%2BJiSEn15tC91Y4umMPwVZs%3D |
Kryptografický podpis |
Osvědčené postupy
Zde jsou postupy, které Microsoft doporučuje kvůli snížení potenciálního rizika při používání sdílených přístupových podpisů:
- Pokud chcete bezpečně distribuovat sdílený přístupový podpis a zabránit útokům typu man-in-the-middle, používejte vždy protokol HTTPS.
- Nejvíce zabezpečený je sdílený přístupový podpis pro delegování uživatele. Používejte ho všude, kde je to možné, protože eliminuje potřebu ukládat klíč účtu úložiště v kódu. Ke správě přihlašovacích údajů musíte použít ID Microsoft Entra. Tato volba nemusí být pro vaše řešení možná.
- Dobu vypršení platnosti se pokuste nastavit na nejkratší užitečnou hodnotu. Pokud dojde k vyzrazení sdíleného přístupového podpisu, bude ho možné zneužít jen po krátkou dobu.
- Použijte pravidlo minimálních požadovaných oprávnění. Udělte jen přístup, který je potřeba. Ve vaší aplikaci například stačí přístup jen pro čtení.
- Sdílený přístupový podpis není v některých situacích správným řešením. Pokud používání sdíleného přístupového podpisu znamená nepřijatelné riziko, vytvořte pro správu uživatelů a jejich přístupu k úložišti službu střední vrstvy.