Konfigurace anonymního přístupu pro čtení pro kontejnery a objekty blob

Azure Storage podporuje volitelný anonymní přístup pro čtení pro kontejnery a objekty blob. Ve výchozím nastavení není anonymní přístup k vašim datům nikdy povolen. Pokud explicitně nepovolíte anonymní přístup, musí být všechny požadavky na kontejner a jeho objekty blob autorizované. Když nakonfigurujete nastavení úrovně přístupu kontejneru tak, aby umožňovalo anonymní přístup, můžou klienti číst data v daném kontejneru bez autorizace požadavku.

Upozorňující

Pokud je kontejner nakonfigurovaný pro anonymní přístup, může každý klient číst data v daném kontejneru. Anonymní přístup představuje potenciální bezpečnostní riziko, takže pokud to váš scénář nevyžaduje, doporučujeme opravit anonymní přístup pro účet úložiště.

Tento článek popisuje, jak nakonfigurovat anonymní přístup pro čtení pro kontejner a jeho objekty blob. Informace o nápravě anonymního přístupu pro optimální zabezpečení najdete v jednom z těchto článků:

Informace o anonymním přístupu pro čtení

Anonymní přístup k vašim datům je ve výchozím nastavení vždy zakázán. Existují dvě samostatná nastavení, která mají vliv na anonymní přístup:

  1. Nastavení anonymního přístupu pro účet úložiště. Účet úložiště Azure Resource Manageru nabízí nastavení pro povolení nebo zakázání anonymního přístupu k účtu. Microsoft doporučuje zakázat anonymní přístup k účtům úložiště, aby byl optimální zabezpečení.

    Pokud je anonymní přístup povolen na úrovni účtu, data objektů blob nejsou k dispozici pro anonymní přístup pro čtení, pokud uživatel nepřebere další krok k explicitní konfiguraci nastavení anonymního přístupu kontejneru.

  2. Nakonfigurujte nastavení anonymního přístupu kontejneru. Ve výchozím nastavení je nastavení anonymního přístupu kontejneru zakázané, což znamená, že se vyžaduje autorizace pro každý požadavek na kontejner nebo jeho data. Uživatel s příslušnými oprávněními může upravit nastavení anonymního přístupu kontejneru tak, aby povolil anonymní přístup pouze v případě, že je pro účet úložiště povolený anonymní přístup.

Následující tabulka shrnuje, jak tato dvě nastavení ovlivňují anonymní přístup pro kontejner.

Úroveň anonymního přístupu pro kontejner je nastavená na Privátní (výchozí nastavení) Úroveň anonymního přístupu pro kontejner je nastavená na Kontejner. Úroveň anonymního přístupu pro kontejner je nastavená na objekt blob.
Anonymní přístup je pro účet úložiště zakázaný. Žádný anonymní přístup k žádnému kontejneru v účtu úložiště. Žádný anonymní přístup k žádnému kontejneru v účtu úložiště. Nastavení účtu úložiště přepíše nastavení kontejneru. Žádný anonymní přístup k žádnému kontejneru v účtu úložiště. Nastavení účtu úložiště přepíše nastavení kontejneru.
Pro účet úložiště je povolený anonymní přístup. Žádný anonymní přístup k tomuto kontejneru (výchozí konfigurace). Anonymní přístup je povolený pro tento kontejner a jeho objekty blob. Anonymní přístup je povolený pro objekty blob v tomto kontejneru, ale ne pro samotný kontejner.

Pokud je pro účet úložiště povolený anonymní přístup a nakonfigurovaný pro konkrétní kontejner, pak služba přijme požadavek na čtení objektu blob v daném kontejneru, který se předává bez autorizační hlavičky, a data objektu blob se vrátí v odpovědi.

Povolit nebo zakázat anonymní přístup pro čtení pro účet úložiště

Pokud je pro účet úložiště povolený anonymní přístup, může uživatel s příslušnými oprávněními upravit nastavení anonymního přístupu kontejneru a povolit tak anonymní přístup k datům v daném kontejneru. Data objektů blob nejsou nikdy k dispozici pro anonymní přístup, pokud uživatel nezabere další krok k explicitní konfiguraci nastavení anonymního přístupu kontejneru.

Mějte na paměti, že anonymní přístup ke kontejneru je ve výchozím nastavení vždy vypnutý a musí být explicitně nakonfigurovaný tak, aby povoloval anonymní požadavky. Bez ohledu na nastavení účtu úložiště nebudou vaše data nikdy k dispozici pro anonymní přístup, pokud uživatel s příslušnými oprávněními tento další krok nepovolí povolení anonymního přístupu v kontejneru.

Zákaz anonymního přístupu pro účet úložiště přepíše nastavení přístupu pro všechny kontejnery v daném účtu úložiště, což brání anonymnímu přístupu k datům objektů blob v daném účtu. Pokud je pro účet zakázaný anonymní přístup, není možné nakonfigurovat nastavení přístupu pro kontejner tak, aby povoloval anonymní přístup, a všechny budoucí anonymní požadavky na tento účet selžou. Než toto nastavení změníte, nezapomeňte pochopit dopad na klientské aplikace, které můžou přistupovat k datům ve vašem účtu úložiště anonymně. Další informace najdete v tématu Zabránění anonymnímu přístupu pro čtení ke kontejnerům a objektům blob.

Důležité

Po zakázání anonymního přístupu pro účet úložiště klienti, kteří používají anonymní nosnou výzvu, zjistí, že Azure Storage místo chyby 401 (Neautorizováno) vrátí chybu 403 (Zakázáno). Doporučujeme, abyste všechny kontejnery zpřístupňovali jako soukromé, abyste tento problém zmírnit. Další informace o úpravě nastavení anonymního přístupu pro kontejnery najdete v tématu Nastavení úrovně přístupu pro kontejner.

Povolení nebo zakázání anonymního přístupu vyžaduje verzi 2019-04-01 nebo novější poskytovatele prostředků Azure Storage. Další informace najdete v tématu REST API poskytovatele prostředků služby Azure Storage.

Oprávnění pro zakázání anonymního přístupu

Pokud chcete nastavit vlastnost AllowBlobAnonymousAccess pro účet úložiště, musí mít uživatel oprávnění k vytváření a správě účtů úložiště. Role řízení přístupu na základě role Azure (Azure RBAC), které poskytují tato oprávnění, zahrnují akci Microsoft.Storage/storageAccounts/write . Mezi předdefinované role s touto akcí patří:

Přiřazení rolí musí být vymezena na úroveň účtu úložiště nebo vyšší, aby uživatel nepovolil anonymní přístup k účtu úložiště. Další informace o oboru role najdete v tématu Vysvětlení oboru pro Azure RBAC.

Dávejte pozor, abyste přiřazování těchto rolí omezili jenom na správce, kteří vyžadují možnost vytvořit účet úložiště nebo aktualizovat jeho vlastnosti. Pomocí principu nejnižšího oprávnění se ujistěte, že uživatelé mají nejmenší oprávnění, která potřebují k plnění svých úkolů. Další informace o správě přístupu pomocí Azure RBAC najdete v tématu Osvědčené postupy pro Azure RBAC.

Tyto role neposkytují přístup k datům v účtu úložiště prostřednictvím ID Microsoft Entra. Zahrnují však microsoft.Storage/storageAccounts/listkeys/action, která uděluje přístup k přístupovým klíčům účtu. S tímto oprávněním může uživatel používat přístupové klíče účtu pro přístup ke všem datům v účtu úložiště.

Samotná akce Microsoft.Storage/storageAccounts/listkeys/action uděluje přístup k datům prostřednictvím klíčů účtu, ale neuděluje uživateli možnost změnit vlastnost AllowBlobPublicAccess pro účet úložiště. Pro uživatele, kteří potřebují přístup k datům ve vašem účtu úložiště, ale neměli by mít možnost změnit konfiguraci účtu úložiště, zvažte přiřazení rolí, jako je Přispěvatel dat v objektech blob služby Storage, Čtenář dat služby Storage nebo Čtenář a Přístup k datům.

Poznámka:

Role klasického správce předplatného Service Správa istrator a Spolu Správa istrator zahrnují ekvivalent role vlastníka Azure Resource Manageru. Role Vlastník zahrnuje všechny akce, takže uživatel s jednou z těchto rolí pro správu může také vytvářet účty úložiště a spravovat konfiguraci účtu. Další informace najdete v tématu Role Azure, role Microsoft Entra a klasické role správce předplatného.

Nastavení vlastnosti AllowBlobPublicAccess účtu úložiště

Pokud chcete povolit nebo zakázat anonymní přístup k účtu úložiště, nastavte vlastnost AllowBlobPublicAccess účtu. Tato vlastnost je k dispozici pro všechny účty úložiště vytvořené pomocí modelu nasazení Azure Resource Manager. Další informace najdete v tématu Přehled účtu úložiště.

Pokud chcete povolit nebo zakázat anonymní přístup k účtu úložiště na webu Azure Portal, postupujte takto:

  1. Na webu Azure Portal přejděte na svůj účet úložiště.

  2. V části Nastavení vyhledejte nastavení Konfigurace.

  3. Nastavte možnost Povolit anonymní přístup k objektu blob na Povoleno nebo Zakázáno.

    Screenshot showing how to allow or disallow anonymous access for account

Poznámka:

Zakázání anonymního přístupu k účtu úložiště nemá vliv na žádné statické weby hostované v daném účtu úložiště. Kontejner $web je vždy veřejně přístupný.

Po aktualizaci nastavení anonymního přístupu pro účet úložiště může trvat až 30 sekund, než se změna plně rozšíří.

Pokud je kontejner nakonfigurovaný pro anonymní přístup, nemusí být požadavky na čtení objektů blob v daném kontejneru autorizované. Všechna pravidla brány firewall nakonfigurovaná pro účet úložiště však zůstanou v platnosti a budou blokovat provoz vložený s nakonfigurovanými seznamy ACL.

Povolení nebo zakázání anonymního přístupu vyžaduje verzi 2019-04-01 nebo novější poskytovatele prostředků Azure Storage. Další informace najdete v tématu REST API poskytovatele prostředků služby Azure Storage.

Příklady v této části ukázaly, jak přečíst vlastnost AllowBlobPublicAccess pro účet úložiště, abyste zjistili, jestli je anonymní přístup aktuálně povolený nebo zakázaný. Informace o tom, jak ověřit, jestli je nastavení anonymního přístupu účtu nakonfigurované tak, aby zabránilo anonymnímu přístupu, najdete v tématu Náprava anonymního přístupu pro účet úložiště.

Nastavení úrovně anonymního přístupu pro kontejner

Pokud chcete anonymním uživatelům udělit přístup pro čtení ke kontejneru a jeho objektům blob, nejprve povolte anonymní přístup k účtu úložiště a pak nastavte úroveň anonymního přístupu kontejneru. Pokud je pro účet úložiště odepřen anonymní přístup, nebudete moct nakonfigurovat anonymní přístup pro kontejner.

Upozornění

Microsoft doporučuje povolit anonymní přístup k datům objektů blob ve vašem účtu úložiště.

Pokud je pro účet úložiště povolený anonymní přístup, můžete kontejner nakonfigurovat s následujícími oprávněními:

  • Žádný veřejný přístup ke čtení: Ke kontejneru a jeho objektům blob je možné přistupovat pouze s autorizovaným požadavkem. Tato možnost je výchozí pro všechny nové kontejnery.
  • Veřejný přístup pro čtení pouze pro objekty blob: Objekty blob v kontejneru je možné číst anonymním požadavkem, ale data kontejneru nejsou k dispozici anonymně. Anonymní klienti nemohou vytvořit výčet objektů blob v rámci kontejneru.
  • Veřejný přístup pro čtení pro kontejner a jeho objekty blob: Data kontejnerů a objektů blob je možné číst anonymním požadavkem, s výjimkou nastavení oprávnění kontejneru a metadat kontejneru. Klienti můžou vytvořit výčet objektů blob v rámci kontejneru anonymním požadavkem, ale nemůžou vytvořit výčet kontejnerů v rámci účtu úložiště.

Úroveň anonymního přístupu pro jednotlivé objekty blob nelze změnit. Úroveň anonymního přístupu je nastavená pouze na úrovni kontejneru. Úroveň anonymního přístupu kontejneru můžete nastavit při vytváření kontejneru nebo můžete nastavení aktualizovat u existujícího kontejneru.

Pokud chcete aktualizovat úroveň anonymního přístupu pro jeden nebo více existujících kontejnerů na webu Azure Portal, postupujte takto:

  1. Na webu Azure Portal přejděte na přehled svého účtu úložiště.

  2. V části Úložiště dat v okně nabídky vyberte Kontejnery.

  3. Vyberte kontejnery, pro které chcete nastavit úroveň anonymního přístupu.

  4. Pomocí tlačítka Změnit úroveň přístupu zobrazte nastavení anonymního přístupu.

  5. V rozevíracím seznamu Úroveň anonymního přístupu vyberte požadovanou úroveň anonymního přístupu a kliknutím na tlačítko OK použijte změnu u vybraných kontejnerů.

    Screenshot showing how to set anonymous access level in the portal.

Pokud je pro účet úložiště zakázaný anonymní přístup, nelze nastavit úroveň anonymního přístupu kontejneru. Pokud se pokusíte nastavit úroveň anonymního přístupu kontejneru, uvidíte, že je nastavení zakázané, protože pro účet je zakázaný anonymní přístup.

Screenshot showing that setting a container's anonymous access level is blocked when anonymous access disallowed for the account

Kontrola nastavení anonymního přístupu pro sadu kontejnerů

Je možné zkontrolovat, které kontejnery v jednom nebo více účtech úložiště jsou nakonfigurované pro anonymní přístup, výpisem kontejnerů a kontrolou nastavení anonymního přístupu. Tento přístup je praktická možnost, pokud účet úložiště neobsahuje velký počet kontejnerů nebo při kontrole nastavení v malém počtu účtů úložiště. Pokud se ale pokusíte vytvořit výčet velkého počtu kontejnerů, může dojít k omezení výkonu.

Následující příklad používá PowerShell k získání nastavení anonymního přístupu pro všechny kontejnery v účtu úložiště. Nezapomeňte nahradit zástupné hodnoty v závorkách vlastními hodnotami:

$rgName = "<resource-group>"
$accountName = "<storage-account>"
$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context
Get-AzStorageContainer -Context $ctx | Select Name, PublicAccess

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.

Další kroky