Autorizace přístupu k objektům blob pomocí Microsoft Entra ID

Azure Storage podporuje použití Microsoft Entra ID k autorizaci požadavků na data objektů blob. S ID Microsoft Entra můžete pomocí řízení přístupu na základě role v Azure (Azure RBAC) udělit oprávnění k objektu zabezpečení, což může být uživatel, skupina nebo instanční objekt aplikace. Instanční objekt zabezpečení je ověřený pomocí ID Microsoft Entra pro vrácení tokenu OAuth 2.0. Token se pak dá použít k autorizaci požadavku ve službě Blob Service.

Autorizace s ID Microsoft Entra je dostupná pro všechny účty úložiště objektů blob pro obecné účely ve všech veřejných oblastech a národních cloudech. Autorizace Microsoft Entra podporují pouze účty úložiště vytvořené pomocí modelu nasazení Azure Resource Manager.

Důležité

Pro zajištění optimálního zabezpečení microsoft doporučuje Microsoft Entra ID se spravovanými identitami autorizovat požadavky na data objektů blob, fronty a tabulek, kdykoli je to možné. Autorizace s ID Microsoft Entra a spravovanými identitami poskytuje vynikající zabezpečení a snadné použití prostřednictvím autorizace sdíleného klíče. Další informace o spravovaných identitách najdete v tématu Co jsou spravované identity pro prostředky Azure. Příklad povolení a použití spravované identity pro aplikaci .NET najdete v tématu Ověřování aplikací hostovaných v Azure v prostředcích Azure pomocí .NET.

Pro prostředky hostované mimo Azure, jako jsou místní aplikace, můžete použít spravované identity prostřednictvím služby Azure Arc. Aplikace spuštěné na serverech s podporou Azure Arc můžou například používat spravované identity pro připojení ke službám Azure. Další informace najdete v tématu Ověřování prostředků Azure pomocí serverů s podporou Azure Arc.

Ve scénářích, ve kterých se používají sdílené přístupové podpisy (SAS), microsoft doporučuje používat SAS delegování uživatele. Sas delegování uživatele je zabezpečený pomocí přihlašovacích údajů Microsoft Entra místo klíče účtu. Informace o sdílených přístupových podpisech najdete v tématu Udělení omezeného přístupu k datům pomocí sdílených přístupových podpisů. Příklad vytvoření a použití SAS delegování uživatele s .NET najdete v tématu Vytvoření SAS delegování uživatele pro objekt blob pomocí .NET.

Přehled ID Microsoft Entra pro objekty blob

Když se objekt zabezpečení (uživatel, skupina nebo aplikace) pokusí získat přístup k prostředku objektu blob, musí být požadavek autorizovaný, pokud není objekt blob dostupný pro anonymní přístup. S ID Microsoft Entra je přístup k prostředku dvoustupňový proces:

  1. Nejprve se ověří identita objektu zabezpečení a vrátí se token OAuth 2.0.

    Krok ověřování vyžaduje, aby aplikace požadovala přístupový token OAuth 2.0 za běhu. Pokud aplikace běží z entity Azure, jako je virtuální počítač Azure, škálovací sada virtuálních počítačů nebo aplikace Azure Functions, může pro přístup k datům objektů blob použít spravovanou identitu .

  2. Dále se token předá jako součást požadavku službě Blob Service a služba ji používá k autorizaci přístupu k zadanému prostředku.

    Krok autorizace vyžaduje přiřazení jedné nebo více rolí Azure RBAC k objektu zabezpečení, který žádost provede. Další informace najdete v tématu Přiřazení rolí Azure pro přístupová práva.

Použití účtu Microsoft Entra s portálem, PowerShellem nebo Azure CLI

Další informace o přístupu k datům na webu Azure Portal pomocí účtu Microsoft Entra najdete v tématu Přístup k datům z webu Azure Portal. Informace o tom, jak volat příkazy Azure PowerShellu nebo Azure CLI pomocí účtu Microsoft Entra, najdete v tématu Přístup k datům z PowerShellu nebo Azure CLI.

Autorizace přístupu v kódu aplikace pomocí ID Microsoft Entra

Pokud chcete autorizovat přístup ke službě Azure Storage pomocí ID Microsoft Entra, můžete k získání tokenu OAuth 2.0 použít jednu z následujících klientských knihoven:

  • Pro většinu vývojových scénářů se doporučuje klientská knihovna Azure Identity.
  • Knihovna MSAL (Microsoft Authentication Library) může být vhodná pro určité pokročilé scénáře.

Klientská knihovna Azure Identity

Klientská knihovna Azure Identity zjednodušuje proces získání přístupového tokenu OAuth 2.0 pro autorizaci pomocí Microsoft Entra ID prostřednictvím sady Azure SDK. Nejnovější verze klientských knihoven Azure Storage pro .NET, Java, Python, JavaScript a Go se integrují s knihovnami identit Azure pro každý z těchto jazyků, které poskytují jednoduché a bezpečné prostředky pro získání přístupového tokenu pro autorizaci požadavků azure Storage.

Výhodou klientské knihovny Azure Identity je, že umožňuje použít stejný kód k získání přístupového tokenu bez ohledu na to, jestli je vaše aplikace spuštěná ve vývojovém prostředí nebo v Azure. Klientská knihovna Azure Identity vrátí přístupový token pro objekt zabezpečení. Když je váš kód spuštěný v Azure, může být instanční objekt spravovanou identitou pro prostředky Azure, instanční objekt nebo uživatele nebo skupinu. Ve vývojovém prostředí poskytuje klientská knihovna přístupový token pro uživatele nebo instanční objekt pro účely testování.

Přístupový token vrácený klientskou knihovnou služby Azure Identity je zapouzdřen v přihlašovacích údajích tokenu. Přihlašovací údaje tokenu pak můžete použít k získání objektu klienta služby, který se použije při provádění autorizovaných operací se službou Azure Storage. Jednoduchý způsob, jak získat přístupový token a přihlašovací údaje tokenu, je použít DefaultAzureCredential třídy, která je poskytována klientskou knihovnou Azure Identity. DefaultAzureCredential se pokusí získat přihlašovací údaje tokenu postupným pokusem o několik různých typů přihlašovacích údajů. DefaultAzureCredential funguje ve vývojovém prostředí i v Azure.

Následující tabulka odkazuje na další informace pro autorizaci přístupu k datům v různých scénářích:

Jazyk .NET Java JavaScript Python Go
Přehled ověřování pomocí Microsoft Entra ID Ověřování aplikací .NET pomocí služeb Azure Ověřování Azure s využitím Javy a identity Azure Ověřování javascriptových aplikací v Azure pomocí sady Azure SDK Ověřování aplikací v Pythonu do Azure pomocí sady Azure SDK
Ověřování pomocí instančních objektů pro vývojáře Ověřování aplikací .NET ve službách Azure během místního vývoje pomocí instančních objektů Ověřování Azure pomocí instančního objektu Ověřování aplikací JS do služeb Azure pomocí instančního objektu Ověřování aplikací Pythonu ve službách Azure během místního vývoje pomocí instančních objektů Ověřování pomocí sady Azure SDK for Go pomocí instančního objektu
Ověřování pomocí vývojářských nebo uživatelských účtů Ověřování aplikací .NET ve službách Azure během místního vývoje pomocí vývojářských účtů Ověřování Azure pomocí přihlašovacích údajů uživatele Ověřování aplikací JS do služeb Azure s využitím vývojových účtů Ověřování aplikací Pythonu ve službách Azure během místního vývoje pomocí vývojářských účtů Ověřování Azure pomocí sady Azure SDK for Go
Ověřování z aplikací hostovaných v Azure Ověřování aplikací hostovaných v Azure v prostředcích Azure pomocí sady Azure SDK pro .NET Ověřování aplikací Java hostovaných v Azure Ověřování javascriptových aplikací hostovaných v Azure v prostředcích Azure pomocí sady Azure SDK pro JavaScript Ověřování aplikací hostovaných v Azure v prostředcích Azure pomocí sady Azure SDK pro Python Ověřování pomocí sady Azure SDK for Go s využitím spravované identity
Ověřování z místních aplikací Ověřování prostředků Azure z aplikací .NET hostovaných místně Ověřování místních javascriptových aplikací pro prostředky Azure Ověřování prostředků Azure z aplikací Pythonu hostovaných místně
Přehled klientské knihovny identit Klientská knihovna Azure Identity pro .NET Klientská knihovna Azure Identity pro Javu Klientská knihovna Azure Identity pro JavaScript Klientská knihovna Azure Identity pro Python Klientská knihovna Azure Identity pro Go

Microsoft Authentication Library (MSAL)

I když Microsoft doporučuje používat klientskou knihovnu Azure Identity, pokud je to možné, může být knihovna MSAL vhodná pro použití v určitých pokročilých scénářích. Další informace naleznete v tématu Informace o msAL.

Když k získání tokenu OAuth pro přístup ke službě Azure Storage použijete MSAL, musíte zadat ID prostředku Microsoft Entra. ID prostředku Microsoft Entra označuje cílovou skupinu, pro kterou je možné použít token vystavený k poskytnutí přístupu k prostředku Azure. V případě služby Azure Storage může být ID prostředku specifické pro jeden účet úložiště nebo se může vztahovat na jakýkoli účet úložiště.

Pokud zadáte ID prostředku, které je specifické pro jeden účet úložiště a službu, ID prostředku se použije k získání tokenu pro autorizaci požadavků pouze na zadaný účet a službu. Následující tabulka uvádí hodnotu, která se má použít pro ID prostředku na základě cloudu, se kterým pracujete. Nahraďte <account-name> názvem vašeho účtu úložiště.

Cloud ID zdroje
Globální Azure https://<account-name>.blob.core.windows.net
Azure Government https://<account-name>.blob.core.usgovcloudapi.net
Azure (Čína) 21Vianet https://<account-name>.blob.core.chinacloudapi.cn

Můžete také zadat ID prostředku, které platí pro jakýkoli účet úložiště, jak je znázorněno v následující tabulce. Toto ID prostředku je stejné pro všechny veřejné a suverénní cloudy a slouží k získání tokenu pro autorizaci požadavků na jakýkoli účet úložiště.

Cloud ID zdroje
Globální Azure
Azure Government
Azure (Čína) 21Vianet
https://storage.azure.com/

Přiřazení rolí Azure pro přístupová práva

Microsoft Entra autorizuje přístupová práva k zabezpečeným prostředkům prostřednictvím Azure RBAC. Azure Storage definuje sadu předdefinovaných rolí RBAC, které zahrnují běžné sady oprávnění používaných pro přístup k datům objektů blob. Můžete také definovat vlastní role pro přístup k datům objektů blob. Další informace o přiřazování rolí Azure pro přístup k objektům blob najdete v tématu Přiřazení role Azure pro přístup k datům objektů blob.

Objekt zabezpečení Microsoft Entra může být uživatel, skupina, instanční objekt aplikace nebo spravovaná identita pro prostředky Azure. Role RBAC přiřazené k objektu zabezpečení určují oprávnění, která má objekt zabezpečení pro zadaný prostředek. Další informace o přiřazování rolí Azure pro přístup k objektům blob najdete v tématu Přiřazení role Azure pro přístup k datům objektů blob.

V některých případech možná budete muset povolit jemně odstupňovaný přístup k prostředkům objektů blob nebo zjednodušit oprávnění, pokud máte velký počet přiřazení rolí pro prostředek úložiště. Ke konfiguraci podmínek přiřazení rolí můžete použít řízení přístupu na základě atributů Azure (Azure ABAC). Podmínky můžete použít s vlastní rolí nebo vybrat předdefinované role. Další informace o konfiguraci podmínek pro prostředky úložiště Azure pomocí ABAC najdete v tématu Autorizace přístupu k objektům blob pomocí podmínek přiřazení role Azure (Preview). Podrobnosti o podporovaných podmínkách pro operace s daty objektů blob najdete v tématu Akce a atributy podmínek přiřazení rolí Azure ve službě Azure Storage (Preview).

Poznámka:

Při vytváření účtu Azure Storage nemáte automaticky přiřazená oprávnění pro přístup k datům přes Microsoft Entra ID. Pro přístup ke službě Blob Storage musíte explicitně přiřadit roli Azure. Můžete ho přiřadit na úrovni předplatného, skupiny prostředků, účtu úložiště nebo kontejneru.

Obor prostředku

Před přiřazením role Azure RBAC k objektu zabezpečení určete rozsah přístupu, který má mít objekt zabezpečení. Osvědčené postupy určují, že je vždy nejlepší udělit pouze nejužší možný rozsah. Role Azure RBAC definované v širším rozsahu jsou zděděné prostředky pod nimi.

Přístup k prostředkům objektů blob Azure můžete nastavit na následujících úrovních, počínaje nejužším oborem:

  • Jednotlivý kontejner. V tomto oboru se přiřazení role vztahuje na všechny objekty blob v kontejneru a na vlastnosti a metadata kontejneru.
  • Účet úložiště. V tomto oboru se přiřazení role vztahuje na všechny kontejnery a jejich objekty blob.
  • Požadovaná skupina prostředků. V tomto oboru se přiřazení role vztahuje na všechny kontejnery ve všech účtech úložiště ve skupině prostředků.
  • Předplatné. V tomto oboru se přiřazení role vztahuje na všechny kontejnery ve všech účtech úložiště ve všech skupinách prostředků v předplatném.
  • Skupina pro správu. V tomto oboru se přiřazení role vztahuje na všechny kontejnery ve všech účtech úložiště ve všech skupinách prostředků ve všech předplatných ve skupině pro správu.

Další informace o rozsahu přiřazení rolí Azure RBAC najdete v tématu Vysvětlení oboru pro Azure RBAC.

Předdefinované role Azure pro objekty blob

Azure RBAC poskytuje několik předdefinovaných rolí pro autorizaci přístupu k datům objektů blob pomocí Microsoft Entra ID a OAuth. Mezi příklady rolí, které poskytují oprávnění k datovým prostředkům ve službě Azure Storage, patří:

Informace o přiřazení předdefinované role Azure k objektu zabezpečení najdete v tématu Přiřazení role Azure pro přístup k datům objektů blob. Informace o tom, jak vypsat role Azure RBAC a jejich oprávnění, najdete v tématu Výpis definic rolí Azure.

Další informace o tom, jak jsou definované předdefinované role pro Azure Storage, najdete v tématu Vysvětlení definic rolí. Informace o vytváření vlastních rolí Azure najdete v tématu Vlastní role Azure.

Přístup k datům umožňuje přístup k datům objektů blob pouze role explicitně definované pro přístup k objektu zabezpečení. Předdefinované role, jako je vlastník, Přispěvatel a Přispěvatel účtu úložiště, umožňují objekt zabezpečení spravovat účet úložiště, ale neposkytují přístup k datům objektů blob v rámci tohoto účtu prostřednictvím ID Microsoft Entra. Pokud ale role zahrnuje Microsoft.Storage/storageAccounts/listKeys/action, může uživatel, kterému je tato role přiřazena, přistupovat k datům v účtu úložiště prostřednictvím autorizace sdíleného klíče pomocí přístupových klíčů účtu. Další informace najdete v tématu Volba způsobu autorizace přístupu k datům objektů blob na webu Azure Portal.

Podrobné informace o předdefinovaných rolích Azure pro Azure Storage pro datové služby i službu pro správu najdete v části Úložiště v předdefinovaných rolích Azure pro Azure RBAC. Další informace o různých typech rolí, které poskytují oprávnění v Azure, najdete v tématech Role Azure, Role Microsoft Entra a klasické role správce předplatného.

Důležité

Rozšíření přiřazení rolí Azure může trvat až 30 minut.

Přístupová oprávnění pro operace s daty

Podrobnosti o oprávněních potřebných k volání konkrétních operací služby Blob Service najdete v tématu Oprávnění pro volání datových operací.

Přístup k datům pomocí účtu Microsoft Entra

Přístup k datům objektů blob prostřednictvím webu Azure Portal, PowerShellu nebo Azure CLI je možné autorizovat buď pomocí účtu Microsoft Entra uživatele, nebo pomocí přístupových klíčů účtu (autorizace sdíleného klíče).

Upozornění

Autorizace pomocí sdíleného klíče se nedoporučuje, protože může být méně zabezpečená. Pokud chcete zajistit optimální zabezpečení, zakažte autorizaci prostřednictvím sdíleného klíče pro váš účet úložiště, jak je popsáno v části Zabránění autorizaci sdíleného klíče pro účet služby Azure Storage.

Použití přístupových klíčů a připojovací řetězec by mělo být omezené na počáteční testování konceptů aplikací nebo prototypů vývoje, které nepřistupují k produkčním nebo citlivým datům. Jinak by se při ověřování prostředků Azure měly vždy upřednostňovat třídy ověřování založené na tokenech, které jsou dostupné v sadě Azure SDK.

Microsoft doporučuje, aby klienti k autorizaci přístupu k datům ve službě Azure Storage používali buď ID Microsoft Entra, nebo sdílený přístupový podpis (SAS). Další informace najdete v tématu Autorizace operací pro přístup k datům.

Přístup k datům z webu Azure Portal

Azure Portal může použít váš účet Microsoft Entra nebo přístupové klíče účtu pro přístup k datům objektů blob v účtu úložiště Azure. Jaké schéma autorizace používá Azure Portal, závisí na rolích Azure, které jsou vám přiřazeny.

Když se pokusíte získat přístup k datům objektů blob, Azure Portal nejprve zkontroluje, jestli máte přiřazenou roli Azure s Microsoft.Storage/storageAccounts/listkeys/action. Pokud jste k této akci přiřadili roli, použije Azure Portal klíč účtu pro přístup k datům objektů blob prostřednictvím autorizace sdíleného klíče. Pokud jste k této akci nepřiřadili roli, azure Portal se pokusí o přístup k datům pomocí účtu Microsoft Entra.

Pokud chcete získat přístup k datům objektů blob z webu Azure Portal pomocí účtu Microsoft Entra, potřebujete oprávnění pro přístup k datům objektů blob a potřebujete také oprávnění k procházení prostředků účtu úložiště na webu Azure Portal. Předdefinované role od služby Azure Storage udělují přístup k prostředkům objektů blob, ale neudělují oprávnění k prostředkům účtu úložiště. Z tohoto důvodu se pro přístup k portálu vyžaduje také přiřazení role Azure Resource Manageru, jako je role Čtenář, s rozsahem vymezeným na úroveň účtu úložiště nebo vyšší. Role Čtenář uděluje nejomezenější oprávnění, ale je možné použít také jinou roli Azure Resource Manageru, která uděluje přístup k prostředkům pro správu účtu úložiště. Další informace o tom, jak uživatelům přidělovat oprávnění pro přístup k datům na webu Azure Portal s využitím účtu Microsoft Entra, najdete v části Přiřazení role Azure pro přístup k datům objektů blob.

Azure Portal určuje, které schéma autorizace se používá při přechodu do kontejneru. Další informace o přístupu k datům na tomto portálu najdete v části věnované volbě způsobu autorizace pro přístup k datům objektů blob na webu Azure Portal.

Přístup k datům z PowerShellu nebo Azure CLI

Azure CLI a PowerShell podporují přihlášení pomocí přihlašovacích údajů Microsoft Entra. Po přihlášení se vaše relace spustí pod těmito přihlašovacími údaji. Další informace najdete v jednom z následujících článků:

Podpora funkcí

Podpora této funkce může mít vliv na povolení protokolu Data Lake Storage Gen2, systému souborů NFS (Network File System) 3.0 nebo protokolu SSH File Transfer Protocol (SFTP). Pokud jste některou z těchto funkcí povolili, podívejte se na podporu funkcí služby Blob Storage v účtech Azure Storage a vyhodnoťte podporu této funkce.

Autorizace operací s daty objektů blob pomocí Microsoft Entra ID je podporovaná jenom pro rozhraní REST API verze 2017–11-09 a novější. Další informace najdete v tématu Správa verzí pro služby Azure Storage.

Další kroky