Zjišťování sdílených přístupových podpisů

Dokončeno

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í, dl 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.