Aspekty zabezpečení pro podmínky přiřazení rolí Azure ve službě Azure Blob Storage
Pokud chcete plně zabezpečit prostředky pomocí řízení přístupu na základě atributů Azure (Azure ABAC), musíte také chránit atributy používané v podmínkách přiřazení role Azure. Pokud je například podmínka založená na cestě k souboru, měli byste mít na paměti, že přístup může být ohrožen, pokud má objekt zabezpečení neomezené oprávnění k přejmenování cesty k souboru.
Tento článek popisuje aspekty zabezpečení, které byste měli zohlednit v podmínkách přiřazení rolí.
Důležité
Řízení přístupu na základě atributů Azure (Azure ABAC) je obecně dostupné (GA) pro řízení přístupu ke službě Azure Blob Storage, Azure Data Lake Storage Gen2 a Frontám Azure pomocí request
resource
environment
, a atributů v úrovních výkonu účtu služby Azure Storage úrovně Standard i principal
Premium Storage. Atribut prostředku metadat kontejneru a objekt blob seznamu obsahují atribut požadavku v náhledu. Úplné informace o stavu funkcí ABAC pro Azure Storage najdete v tématu Stav funkcí podmínky ve službě Azure Storage.
Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.
Použití jiných mechanismů autorizace
Podmínky přiřazení role se vyhodnocují pouze při použití Azure RBAC k autorizaci. Pokud povolíte přístup pomocí alternativních metod autorizace, můžete tyto podmínky obejít:
Podobně se podmínky nevyhodnocují, když je udělen přístup pomocí seznamů řízení přístupu (ACL) v účtech úložiště s hierarchickým oborem názvů (HNS).
Zakázáním autorizace sdíleného klíče, SAS na úrovni účtu a SAS na úrovni služby můžete zabránit zakázáním autorizace sdíleného klíče pro váš účet úložiště. Vzhledem k tomu, že SAS delegování uživatele závisí na Azure RBAC, vyhodnotí se při použití této metody autorizace podmínky přiřazení role.
Zabezpečení atributů úložiště používaných v podmínkách
Cesta k objektu blob
Při použití cesty k objektu blob jako atributu @Resource pro podmínku byste také měli uživatelům zabránit v přejmenování objektu blob, aby získali přístup k souboru při použití účtů s hierarchickým oborem názvů. Pokud například chcete vytvořit podmínku založenou na cestě k objektu blob, měli byste také omezit přístup uživatele k následujícím akcím:
Akce | Popis |
---|---|
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/action |
Tato akce umožňuje zákazníkům přejmenovat soubor pomocí rozhraní API pro vytvoření cesty. |
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action |
Tato akce umožňuje přístup k různým operacím systému souborů a cest. |
Značky indexu objektů blob
Značky indexu objektů blob se používají jako atributy volného tvaru pro podmínky v úložišti. Pokud vytvoříte jakékoli podmínky přístupu pomocí těchto značek, musíte také chránit samotné značky. Konkrétně DataAction Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
umožňuje uživatelům upravovat značky objektu úložiště. Tuto akci můžete omezit, abyste uživatelům zabránili v manipulaci s klíčem značky nebo hodnotou, aby získali přístup k neoprávněným objektům.
Kromě toho, pokud jsou značky indexu objektů blob použity v podmínkách, mohou být data ohrožena, pokud se data a přidružené indexové značky aktualizují v samostatných operacích. Podmínky operací zápisu objektů blob můžete použít @Request
k vyžadování nastavení značek indexu ve stejné operaci aktualizace. Tento přístup může pomoct zabezpečit data z okamžiku, kdy se zapisuje do úložiště.
Značky u zkopírovaných objektů blob
Ve výchozím nastavení se značky indexu objektů blob nekopírují ze zdrojového objektu blob do cíle, pokud používáte rozhraní API pro kopírování objektů blob nebo některou z jejích variant. Pokud chcete zachovat rozsah přístupu k objektu blob při kopírování, měli byste značky zkopírovat také.
Značky snímků
Značky snímků objektů blob nelze upravit. Proto je nutné aktualizovat značky objektu blob před pořízením snímku. Pokud značky v základním objektu blob upravíte, značky na snímku budou mít i nadále předchozí hodnotu.
Pokud se po pořízení snímku změní značka základního objektu blob, může se rozsah přístupu pro základní objekt blob a snímek lišit.
Značky ve verzích objektů blob
Značky indexu objektů blob se nekopírují při vytvoření verze objektu blob prostřednictvím rozhraní PUT Blob, Put Block List nebo Copy Blob API. Značky můžete zadat prostřednictvím hlavičky pro tato rozhraní API.
Značky je možné nastavit jednotlivě pro aktuální základní objekt blob a pro každou verzi objektu blob. Při úpravě značek v základním objektu blob se značky v předchozích verzích neaktualizují. Pokud chcete změnit rozsah přístupu pro objekt blob a všechny jeho verze pomocí značek, je nutné aktualizovat značky pro každou verzi.
Omezení dotazování a filtrování pro verze a snímky
Když použijete značky k dotazování a filtrování objektů blob v kontejneru, do odpovědi se zahrnou jenom základní objekty blob. Verze objektů blob nebo snímky s požadovanými klíči a hodnotami nejsou zahrnuty.
Role a oprávnění
Pokud používáte podmínky přiřazení rolí pro předdefinované role Azure, měli byste pečlivě zkontrolovat všechna oprávnění, která role uděluje objektu zabezpečení.
Zděděná přiřazení rolí
Přiřazení rolí je možné nakonfigurovat pro skupinu pro správu, předplatné, skupinu prostředků, účet úložiště nebo kontejner a dědí se na každé úrovni ve stavovém pořadí. Azure RBAC má doplňkový model, takže efektivní oprávnění představují součet přiřazení rolí na jednotlivých úrovních. Pokud má objekt zabezpečení stejné oprávnění přiřazené prostřednictvím více přiřazení rolí, pak se přístup k operaci pomocí daného oprávnění vyhodnocuje samostatně pro každé přiřazení na každé úrovni.
Vzhledem k tomu, že podmínky jsou implementovány jako podmínky pro přiřazení rolí, může jakékoli nepodmíněné přiřazení role uživatelům umožnit obejít podmínku. Řekněme, že uživateli přiřadíte roli Přispěvatel dat objektů blob služby Storage pro účet úložiště a předplatné, ale k přiřazení účtu úložiště přidáte podmínku. Výsledkem je, že uživatel má neomezený přístup k účtu úložiště prostřednictvím přiřazení role na úrovni předplatného.
Proto byste měli používat podmínky konzistentně pro všechna přiřazení rolí v hierarchii prostředků.
Ostatní úvahy
Operace podmínky, které zapisují objekty blob
Mnoho operací, které zapisují objekty blob, vyžadují buď Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
oprávnění, nebo oprávnění Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
. Předdefinované role, jako je vlastník dat objektu blob služby Storage a Přispěvatel dat objektů blob služby Storage, uděluje objektu zabezpečení obě oprávnění.
Když u těchto rolí definujete podmínku přiřazení role, měli byste pro obě tato oprávnění použít stejné podmínky, abyste zajistili konzistentní omezení přístupu pro operace zápisu.
Chování kopírování objektu blob a kopírování objektu blob z adresy URL
V případě operací @Request
kopírování objektu blob a kopírování objektu blob z adresy URL se podmínky využívající cestu k objektu blob jako atribut akce Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
a jeho dílčí operace vyhodnocují pouze pro cílový objekt blob.
Pro podmínky zdrojového objektu blob @Resource
se vyhodnocují podmínky Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read
akce.