Konfigurace anonymního veřejného přístupu pro čtení pro kontejnery a objekty blob
Azure Storage podporuje volitelný anonymní veřejný přístup ke čtení pro kontejnery a objekty blob. Ve výchozím nastavení není anonymní přístup k vašim datům 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ě veřejného přístupu kontejneru tak, aby umožňovalo anonymní přístup, můžou klienti číst data v daném kontejneru bez autorizace požadavku.
Upozornění
Když je kontejner nakonfigurovaný pro veřejný přístup, může každý klient číst data v daném kontejneru. Veřejný přístup představuje potenciální bezpečnostní riziko, takže pokud ho váš scénář nevyžaduje, microsoft doporučuje, abyste ho pro účet úložiště nepovolil. Další informace najdete v tématu Zabránění anonymnímu veřejnému přístupu ke čtení kontejnerů a objektů blob.
Tento článek popisuje, jak nakonfigurovat anonymní veřejný přístup pro čtení pro kontejner a jeho objekty blob. Informace o anonymním přístupu k datům objektů blob z klientské aplikace najdete v tématu Přístup k veřejným kontejnerům a objektům blob anonymně pomocí .NET.
Informace o anonymním veřejném přístupu pro čtení
Veřejný přístup k vašim datům je ve výchozím nastavení vždy zakázaný. Existují dvě samostatná nastavení, která mají vliv na veřejný přístup:
- Povolit veřejný přístup pro účet úložiště. Ve výchozím nastavení umožňuje účet úložiště uživateli s příslušnými oprávněními povolit veřejný přístup ke kontejneru. Data objektů blob nejsou k dispozici pro veřejný přístup, pokud uživatel nezabere další krok k explicitní konfiguraci nastavení veřejného přístupu kontejneru.
- Nakonfigurujte nastavení veřejného přístupu kontejneru. Ve výchozím nastavení je nastavení veřejného přístupu kontejneru zakázané, což znamená, že autorizace se vyžaduje pro každý požadavek na kontejner nebo jeho data. Uživatel s příslušnými oprávněními může změnit nastavení veřejného přístupu kontejneru, aby povolil anonymní přístup jenom v případě, že je pro účet úložiště povolený anonymní přístup.
Následující tabulka shrnuje, jak obě nastavení ovlivňují veřejný přístup pro kontejner.
| Úroveň veřejného přístupu pro kontejner je nastavená na Privátní (výchozí nastavení) | Úroveň veřejného přístupu pro kontejner je nastavená na Kontejner. | Úroveň veřejného přístupu pro kontejner je nastavená na objekt blob. | |
|---|---|---|---|
| Veřejný přístup je pro účet úložiště zakázán. | Žádný veřejný přístup k žádnému kontejneru v účtu úložiště. | Žádný veřejný přístup k žádnému kontejneru v účtu úložiště. Nastavení účtu úložiště přepíše nastavení kontejneru. | Žádný veřejný 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ě (výchozí nastavení) je povolený veřejný přístup. | K tomuto kontejneru nemáte veřejný přístup (výchozí konfigurace). | K tomuto kontejneru a jeho objektům blob je povolený veřejný přístup. | Veřejný přístup je povolený pro objekty blob v tomto kontejneru, ale ne pro samotný kontejner. |
Pokud je pro účet úložiště povolený anonymní veřejný přístup a nakonfigurovaný pro konkrétní kontejner, požadavek na čtení objektu blob v daném kontejneru, který se předává bez autorizační hlavičky, se přijme službou a data objektu blob se vrátí v odpovědi.
Povolit nebo zakázat veřejný přístup pro čtení pro účet úložiště
Ve výchozím nastavení je účet úložiště nakonfigurovaný tak, aby uživateli s příslušnými oprávněními povolil veřejný přístup ke kontejneru. Pokud je povolený veřejný přístup, může uživatel s příslušnými oprávněními upravit nastavení veřejného přístupu kontejneru tak, aby umožňoval anonymní veřejný přístup k datům v daném kontejneru. Data objektů blob nejsou nikdy k dispozici pro veřejný přístup, pokud uživatel nezabere další krok k explicitní konfiguraci nastavení veřejného přístupu kontejneru.
Mějte na paměti, že veřejný 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 dostupná pro veřejný přístup, pokud uživatel s příslušnými oprávněními nepovolí tento další krok, aby povolil veřejný přístup v kontejneru.
Zákaz veřejného přístupu k účtu úložiště brání anonymnímu přístupu ke všem kontejnerům a objektům blob v daném účtu. Pokud je pro účet zakázán veřejný přístup, není možné nakonfigurovat nastavení veřejného přístupu pro kontejner tak, aby povoloval anonymní přístup. Kvůli lepšímu zabezpečení microsoft doporučuje zakázat veřejný přístup k účtům úložiště, pokud váš scénář nevyžaduje anonymní přístup k prostředkům objektů blob.
Důležité
Zakázání veřejného přístupu pro účet úložiště přepíše nastavení veřejného přístupu pro všechny kontejnery v daném účtu úložiště. Pokud je pro účet úložiště zakázán veřejný přístup, 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 veřejnému přístupu ke čtení kontejnerů a objektů blob.
Pokud chcete povolit nebo zakázat veřejný přístup k účtu úložiště, nakonfigurujte 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ě.
Vlastnost AllowBlobPublicAccess není ve výchozím nastavení nastavená pro účet úložiště a nevrací hodnotu, dokud ji explicitně nenastavíte. Účet úložiště umožňuje veřejný přístup, pokud je hodnota vlastnosti null nebo true.
Pokud chcete povolit nebo zakázat veřejný přístup k účtu úložiště v Azure Portal, postupujte takto:
Na webu Azure Portal přejděte na svůj účet úložiště.
Vyhledejte nastavení konfigurace v části Nastavení.
Nastavte veřejný přístup objektu blob na Povoleno nebo Zakázáno.
Poznámka
Zakázání veřejné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í veřejné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í veřejný 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 platná a budou blokovat anonymní provoz.
Povolení nebo zakázání veřejného přístupu k objektům blob vyžaduje verzi 2019-04-01 nebo novější poskytovatele prostředků Azure Storage. Další informace najdete v tématu ROZHRANÍ REST API poskytovatele prostředků služby Azure Storage.
Příklady v této části ukazují, jak přečíst vlastnost AllowBlobPublicAccess pro účet úložiště, abyste zjistili, jestli je veřejný přístup aktuálně povolený nebo nepovolen. Další informace o tom, jak ověřit, že je nastavení veřejného přístupu účtu nakonfigurované tak, aby zabránilo anonymnímu přístupu, najdete v tématu Náprava anonymního veřejného přístupu.
Nastavení úrovně veřejného přístupu pro kontejner
Pokud chcete anonymním uživatelům udělit přístup ke čtení kontejneru a jeho objektům blob, nejprve povolte veřejný přístup k účtu úložiště a pak nastavte úroveň veřejného přístupu kontejneru. Pokud je veřejný přístup pro účet úložiště odepřen, nebudete moct nakonfigurovat veřejný přístup pro kontejner.
Pokud je pro účet úložiště povolený veřejný přístup, můžete kontejner nakonfigurovat s následujícími oprávněními:
- Žádný veřejný přístup pro čtení: Ke kontejneru a jeho objektům blob se dostanete 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 rámci kontejneru je možné číst anonymním požadavkem, ale data kontejnerů 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ň veřejného přístupu pro jednotlivé objekty blob nelze změnit. Úroveň veřejného přístupu je nastavená pouze na úrovni kontejneru. Úroveň veřejné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ň veřejného přístupu pro jeden nebo více existujících kontejnerů v Azure Portal, postupujte takto:
V Azure Portal přejděte na přehled účtu úložiště.
V části Úložiště dat v okně nabídky vyberte kontejnery objektů blob.
Vyberte kontejnery, pro které chcete nastavit úroveň veřejného přístupu.
Pomocí tlačítka Změnit úroveň přístupu zobrazte nastavení veřejného přístupu.
V rozevíracím seznamu Úroveň veřejného přístupu vyberte požadovanou úroveň veřejného přístupu a kliknutím na tlačítko OK použijte změnu u vybraných kontejnerů.
Pokud je veřejný přístup pro účet úložiště zakázaný, nelze nastavit úroveň veřejného přístupu kontejneru. Pokud se pokusíte nastavit úroveň veřejného přístupu kontejneru, uvidíte, že je toto nastavení zakázané, protože pro účet je zakázaný veřejný přístup.
Zkontrolujte nastavení veřejného přístupu pro sadu kontejnerů.
Můžete zkontrolovat, které kontejnery v jednom nebo několika účtech úložiště jsou nakonfigurované pro veřejný přístup, výpisem kontejnerů a kontrolou nastavení veřejné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ě. Výkon však může mít potíže, pokud se pokusíte vytvořit výčet velkého počtu kontejnerů.
Následující příklad používá PowerShell k získání nastavení veřejné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 být ovlivněna povolením 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.
