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ů:
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 se vztahuje pouze na službu Blob Storage a Data Lake Storage.
Služba SAS: Služba SAS je zabezpečena pomocí klíče účtu úložiště. SAS služby deleguje přístup k prostředku v těchto službách úložiště Azure: Blob Storage, Queue Storage, Table Storage nebo Azure Files.
Account SAS: SAS účtu je zabezpečený pomocí klíče úložiště účtu. 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 s delegováním služby nebo uživatele jsou dostupné také prostřednictvím SAS úč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 (SAS) pro signatury pro přístup ke službě Blob Storage, použijte přihlašovací údaje Microsoft Entra k vytvoření uživatelského SAS delegování, pokud je to možné, pro zajištění vyššího zabezpečení.
Jak sdílené přístupové podpisy fungují
Pokud používáte SAS k přístupu k datům uloženým v Azure Storage, potřebujete dvě komponenty. První je URI na prostředek, ke kterému chcete 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 pro vytvoření, d pro odstranění, l pro seznam, r pro čtení nebo w pro 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 je několik pokynů, které Microsoft poskytuje ke snížení potenciálních rizik při používání SAS (sdílených přístupových podpisů):
- Pokud chcete bezpečně distribuovat SAS a zabránit útokům typu man-in-the-middle, používejte vždy 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í SAS klíče, 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 nutný. Ve vaší aplikaci například stačí přístup jen pro čtení.
- SAS (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 představuje nepřijatelné riziko, vytvořte službu střední úrovně pro správu uživatelů a jejich přístupu k úložišti.