Vynucování minimální požadované verze protokolu TLS (Transport Layer Security) pro požadavky na účet úložiště
Komunikace mezi klientskou aplikací a účtem azure Storage se šifruje pomocí protokolu TLS (Transport Layer Security). TLS je standardní kryptografický protokol, který zajišťuje ochranu soukromí a integritu dat mezi klienty a službami přes internet. Další informace o protokolu TLS naleznete v tématu Transport Layer Security.
Azure Storage v současné době podporuje tři verze protokolu TLS: 1.0, 1.1 a 1.2. Azure Storage používá protokol TLS 1.2 u veřejných koncových bodů HTTPS, ale kvůli zpětné kompatibilitě se stále podporují protokoly TLS 1.0 a TLS 1.1.
Tip
Azure Storage spoléhá na implementaci PROTOKOLU SSL pro Windows, která není založena na OpenSSL, a proto není vystavená ohrožením zabezpečení souvisejících s OpenSSL.
Účty Azure Storage umožňují klientům odesílat a přijímat data s nejstarší verzí protokolu TLS, TLS 1.0 a vyšší. Pokud chcete vynutit přísnější bezpečnostní opatření, můžete nakonfigurovat účet úložiště tak, aby vyžadoval odesílání a přijímání dat klienty s novější verzí protokolu TLS. Pokud účet úložiště vyžaduje minimální verzi protokolu TLS, všechny požadavky provedené ve starší verzi selžou.
Tento článek popisuje, jak pomocí architektury DRAG (Detection-Remediation-Audit-Governance) nepřetržitě spravovat zabezpečený protokol TLS pro účty úložiště.
Informace o tom, jak určit konkrétní verzi protokolu TLS při odesílání požadavku z klientské aplikace, naleznete v tématu Konfigurace protokolu TLS (Transport Layer Security) pro klientskou aplikaci.
Poznámka:
Šifrovací sada používaná při odesílání dat do účtu úložiště a přijímání dat z účtu úložiště závisí na používané verzi protokolu TLS. Účet úložiště není možné nakonfigurovat tak, aby blokoval použití konkrétních šifer, kromě vyžadování minimální verze protokolu TLS. Pokud při připojování k účtu úložiště vyžadujete možnost povolit pouze konkrétní šifrovací sady, zvažte použití brány Aplikace Azure lication. Další informace o používání služby Application Gateway pro tento účel najdete v tématu Konfigurace verzí zásad TLS a šifrovacích sad na Aplikace Azure lication Gateway.
Zjištění verze protokolu TLS používané klientskými aplikacemi
Když pro účet úložiště vynutíte minimální verzi protokolu TLS, riskujete odmítnutí požadavků od klientů, kteří odesílají data se starší verzí protokolu TLS. Pokud chcete zjistit, jak může konfigurace minimální verze protokolu TLS ovlivnit klientské aplikace, společnost Microsoft doporučuje povolit protokolování pro váš účet Služby Azure Storage a analyzovat protokoly po intervalu, abyste zjistili, které verze klientských aplikací TLS používají.
Pokud chcete protokolovat požadavky na váš účet Azure Storage a určit verzi protokolu TLS používanou klientem, můžete použít protokolování služby Azure Storage ve službě Azure Monitor. Další informace najdete v tématu Monitorování služby Azure Storage.
Protokolování služby Azure Storage ve službě Azure Monitor podporuje analýzu dat protokolů pomocí dotazů protokolu. K dotazování protokolů můžete použít pracovní prostor služby Azure Log Analytics. Další informace o dotazech protokolu najdete v kurzu : Začínáme s dotazy Log Analytics.
Pokud chcete data Azure Storage protokolovat pomocí služby Azure Monitor a analyzovat je pomocí služby Azure Log Analytics, musíte nejprve vytvořit nastavení diagnostiky, které určuje, pro jaké typy požadavků a pro které služby úložiště chcete data protokolovat. Pokud chcete vytvořit nastavení diagnostiky na webu Azure Portal, postupujte takto:
V rámci předplatného, které obsahuje váš účet Azure Storage, vytvořte nový pracovní prostor služby Log Analytics. Po nakonfigurování protokolování pro účet úložiště budou protokoly dostupné v pracovním prostoru služby Log Analytics. Další informace najdete v tématu Vytvoření pracovního prostoru služby Log Analytics na webu Azure Portal.
Na webu Azure Portal přejděte na svůj účet úložiště.
V části Monitorování vyberte Nastavení diagnostiky.
Vyberte službu Azure Storage, pro kterou chcete protokolovat požadavky. Můžete například zvolit objekt blob pro protokolování požadavků do úložiště objektů blob.
Vyberte Přidat nastavení diagnostiky.
Zadejte název nastavení diagnostiky.
V části Podrobnosti o kategorii v oddílu protokolu vyberte, které typy požadavků se mají protokolovat. Žádosti o čtení, zápis a odstranění můžete protokolovat. Pokud například zvolíte StorageRead a StorageWrite , protokoluje požadavky na čtení a zápis do vybrané služby.
V části Podrobnosti o cíli vyberte možnost Odeslat do služby Log Analytics. Vyberte své předplatné a pracovní prostor služby Log Analytics, který jste vytvořili dříve, jak je znázorněno na následujícím obrázku.
Jakmile vytvoříte nastavení diagnostiky, požadavky na účet úložiště se následně zaprotokolují podle daného nastavení. Další informace najdete v tématu Vytvoření nastavení diagnostiky pro shromažďování protokolů prostředků a metrik v Azure.
Referenční informace o polích dostupných v protokolech služby Azure Storage ve službě Azure Monitor najdete v protokolech prostředků.
Dotazování protokolovaných výsledků podle verze TLS
Protokoly azure Storage ve službě Azure Monitor zahrnují verzi protokolu TLS použitou k odeslání požadavku do účtu úložiště. Pomocí vlastnosti TlsVersion zkontrolujte verzi protokolu TLS protokolovaného požadavku.
Pokud chcete zjistit, kolik požadavků bylo provedeno v úložišti objektů blob s různými verzemi protokolu TLS za posledních 7 dnů, otevřete pracovní prostor služby Log Analytics. Dále vložte následující dotaz do nového dotazu protokolu a spusťte ho. Nezapomeňte nahradit zástupné hodnoty v závorkách vlastními hodnotami:
StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>"
| summarize count() by TlsVersion
Výsledky ukazují počet požadavků provedených s každou verzí protokolu TLS:
Dotazování zaprotokolovaných požadavků podle IP adresy volajícího a hlavičky uživatelského agenta
Protokoly azure Storage ve službě Azure Monitor zahrnují také IP adresu volajícího a hlavičku uživatelského agenta, která vám pomůže vyhodnotit, které klientské aplikace přistupovaly k účtu úložiště. Tyto hodnoty můžete analyzovat a rozhodnout se, jestli se klientské aplikace musí aktualizovat, aby používaly novější verzi protokolu TLS, nebo jestli je přijatelné požadavek klienta selhat, pokud se neodesílají s minimální verzí protokolu TLS.
Pokud chcete zjistit, kteří klienti za posledních 7 dnů provedli požadavky s verzí protokolu TLS starší než TLS 1.2, vložte následující dotaz do nového dotazu protokolu a spusťte ho. Nezapomeňte nahradit zástupné hodnoty v závorkách vlastními hodnotami:
StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>" and TlsVersion != "TLS 1.2"
| project TlsVersion, CallerIpAddress, UserAgentHeader
Náprava rizik zabezpečení s minimální verzí protokolu TLS
Pokud máte jistotu, že provoz z klientů používajících starší verze protokolu TLS je minimální nebo že je přijatelné selhat požadavky provedené ve starší verzi protokolu TLS, můžete v účtu úložiště začít vynucovat minimální verzi protokolu TLS. Vyžadování, aby klienti k provádění požadavků na účet úložiště používali minimální verzi protokolu TLS, je součástí strategie minimalizace rizik zabezpečení vašich dat.
Důležité
Pokud používáte službu, která se připojuje ke službě Azure Storage, před nastavením požadované minimální verze účtu úložiště se ujistěte, že tato služba používá odpovídající verzi protokolu TLS k odesílání požadavků do Služby Azure Storage.
Konfigurace minimální verze protokolu TLS pro účet úložiště
Pokud chcete nakonfigurovat minimální verzi protokolu TLS pro účet úložiště, nastavte pro účet verzi MinimumTlsVersion . Tato vlastnost je k dispozici pro všechny účty úložiště vytvořené pomocí modelu nasazení Azure Resource Manager. Další informace o modelu nasazení Azure Resource Manager najdete v přehledu účtu úložiště.
Výchozí hodnota Vlastnosti MinimumTlsVersion se liší v závislosti na tom, jak jste ji nastavili. Když vytvoříte účet úložiště pomocí webu Azure Portal, minimální verze protokolu TLS je ve výchozím nastavení nastavená na 1.2. Když vytvoříte účet úložiště pomocí PowerShellu, Azure CLI nebo šablony Azure Resource Manageru, vlastnost MinimumTlsVersion se ve výchozím nastavení nenastaví a nevrací hodnotu, dokud ji explicitně nenastavíte.
Pokud MinimumTlsVersion vlastnost není nastavena, její hodnota může být zobrazena jako null nebo prázdný řetězec v závislosti na kontextu. Účet úložiště povolí požadavky odeslané pomocí protokolu TLS verze 1.0 nebo vyšší, pokud vlastnost není nastavená.
Když vytvoříte účet úložiště pomocí webu Azure Portal, minimální verze protokolu TLS je ve výchozím nastavení nastavená na 1.2.
Pokud chcete nakonfigurovat minimální verzi protokolu TLS pro existující účet úložiště pomocí webu Azure Portal, postupujte takto:
Poznámka:
Po aktualizaci minimální verze protokolu TLS pro účet úložiště může trvat až 30 sekund, než se změna plně rozšíří.
Konfigurace minimální verze protokolu TLS 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.
Kontrola minimální požadované verze protokolu TLS pro více účtů
Pokud chcete zkontrolovat minimální požadovanou verzi protokolu TLS v sadě účtů úložiště s optimálním výkonem, můžete použít Azure Resource Graph Explorer na webu Azure Portal. Další informace o používání Průzkumníka služby Resource Graph najdete v rychlém startu: Spuštění prvního dotazu Resource Graphu pomocí Azure Resource Graph Exploreru.
Spuštěním následujícího dotazu v Průzkumníku Resource Graphu se vrátí seznam účtů úložiště a zobrazí se minimální verze protokolu TLS pro každý účet:
resources
| where type =~ 'Microsoft.Storage/storageAccounts'
| extend minimumTlsVersion = parse_json(properties).minimumTlsVersion
| project subscriptionId, resourceGroup, name, minimumTlsVersion
Testování minimální verze protokolu TLS z klienta
Pokud chcete otestovat, že minimální požadovaná verze PROTOKOLU TLS pro účet úložiště zakazuje volání provedená ve starší verzi, můžete klienta nakonfigurovat tak, aby používal starší verzi protokolu TLS. Další informace o konfiguraci klienta pro použití konkrétní verze protokolu TLS naleznete v tématu Konfigurace protokolu TLS (Transport Layer Security) pro klientskou aplikaci.
Když klient přistupuje k účtu úložiště pomocí verze protokolu TLS, která nesplňuje minimální nakonfigurovanou verzi protokolu TLS pro tento účet, vrátí Azure Storage kód chyby 400 (Chybný požadavek) a zprávu oznamující, že použitá verze protokolu TLS není povolená pro provádění požadavků na tento účet úložiště.
Poznámka:
Při konfiguraci minimální verze protokolu TLS pro účet úložiště se tato minimální verze vynucuje na aplikační vrstvě. Nástroje, které se pokusí určit podporu protokolu TLS ve vrstvě protokolu, můžou při spuštění přímo na koncovém bodu účtu úložiště vracet kromě minimální požadované verze i verze PROTOKOLU TLS.
Použití Azure Policy k auditování dodržování předpisů
Pokud máte velký počet účtů úložiště, můžete chtít provést audit, abyste měli jistotu, že jsou všechny účty nakonfigurované pro minimální verzi protokolu TLS, kterou vaše organizace vyžaduje. Pokud chcete auditovat sadu účtů úložiště pro dodržování předpisů, použijte Azure Policy. Azure Policy je služba, kterou můžete použít k vytváření, přiřazování a správě zásad, které se vztahují na prostředky Azure. Azure Policy pomáhá udržovat tyto prostředky v souladu s vašimi firemními standardy a smlouvami o úrovni služeb. Další informace najdete v tématu Přehled služby Azure Policy.
Vytvoření zásady s efektem auditování
Azure Policy podporuje účinky, které určují, co se stane, když se pravidlo zásad vyhodnotí vůči prostředku. Efekt auditování vytvoří upozornění, pokud prostředek není v souladu s předpisy, ale nezastaví požadavek. Další informace o efektech najdete v tématu Vysvětlení efektů Azure Policy.
Pokud chcete vytvořit zásadu s účinkem auditování pro minimální verzi protokolu TLS na webu Azure Portal, postupujte takto:
Na webu Azure Portal přejděte do služby Azure Policy.
V části Vytváření obsahu vyberte Definice.
Výběrem možnosti Přidat definici zásady vytvořte novou definici zásady.
U pole Umístění definice vyberte tlačítko Další a určete, kde se nachází prostředek zásad auditu.
Zadejte název pro tuto zásadu. Volitelně můžete upřesnit popis a kategorii.
V části Pravidlo zásad přidejte do oddílu policyRule následující definici zásady.
{ "policyRule": { "if": { "allOf": [ { "field": "type", "equals": "Microsoft.Storage/storageAccounts" }, { "anyOf": [ { "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion", "notEquals": "TLS1_2" }, { "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion", "exists": "false" } ] } ] }, "then": { "effect": "audit" } } }
Zásady uložte.
Přiřazení zásad
Dále přiřaďte zásady k prostředku. Rozsah zásad odpovídá danému prostředku a všem prostředkům pod ním. Další informace o přiřazení zásad najdete v tématu Struktura přiřazení služby Azure Policy.
Pokud chcete zásady přiřadit pomocí webu Azure Portal, postupujte takto:
- Na webu Azure Portal přejděte do služby Azure Policy.
- V části Vytváření obsahu vyberte Zadání.
- Výběrem možnosti Přiřadit zásadu vytvořte nové přiřazení zásad.
- U pole Obor vyberte obor přiřazení zásady.
- V poli Definice zásady vyberte tlačítko Další a pak ze seznamu vyberte zásadu, kterou jste definovali v předchozí části.
- Zadejte název pro přiřazení zásad. Popis je volitelný.
- Vynucování zásad ponechte nastavené na Povoleno. Toto nastavení nemá žádný vliv na zásady auditu.
- Výběrem možnosti Zkontrolovat a vytvořit zadání
Zobrazení sestavy dodržování předpisů
Po přiřazení zásady můžete zobrazit sestavu dodržování předpisů. Sestava dodržování předpisů pro zásady auditu poskytuje informace o tom, které účty úložiště nejsou v souladu se zásadami. Další informace najdete v tématu Získání dat dodržování zásad.
Po vytvoření přiřazení zásady může trvat několik minut, než se sestava dodržování předpisů zpřístupní.
Pokud chcete zobrazit sestavu dodržování předpisů na webu Azure Portal, postupujte takto:
Na webu Azure Portal přejděte do služby Azure Policy.
Vyberte Dodržování předpisů.
Vyfiltrujte výsledky pro název přiřazení zásady, které jste vytvořili v předchozím kroku. Sestava ukazuje, kolik prostředků není v souladu se zásadami.
Můžete přejít k podrobnostem sestavy a získat další podrobnosti, včetně seznamu účtů úložiště, které nedodržují předpisy.
Použití služby Azure Policy k vynucení minimální verze protokolu TLS
Azure Policy podporuje zásady správného řízení v cloudu tím, že zajistí, aby prostředky Azure dodržovaly požadavky a standardy. Pokud chcete vynutit minimální požadavek na verzi protokolu TLS pro účty úložiště ve vaší organizaci, můžete vytvořit zásadu, která brání vytvoření nového účtu úložiště, který nastaví minimální požadavek protokolu TLS na starší verzi protokolu TLS, než která je diktována zásadami. Tato zásada také zabrání všem změnám konfigurace existujícího účtu, pokud minimální nastavení verze protokolu TLS pro tento účet nevyhovuje zásadám.
Zásady vynucení používají účinek Odepřít, aby zabránily požadavku, který by vytvořil nebo upravil účet úložiště tak, aby minimální verze protokolu TLS přestala dodržovat standardy vaší organizace. Další informace o efektech najdete v tématu Vysvětlení efektů Azure Policy.
Pokud chcete vytvořit zásadu s účinkem Odepřít pro minimální verzi protokolu TLS, která je menší než TLS 1.2, postupujte podle stejných kroků popsaných v tématu Použití služby Azure Policy k auditování dodržování předpisů, ale v části PolicyRule definice zásady zadejte následující JSON:
{
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Storage/storageAccounts"
},
{
"anyOf": [
{
"field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
"notEquals": "TLS1_2"
},
{
"field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
"exists": "false"
}
]
}
]
},
"then": {
"effect": "deny"
}
}
}
Po vytvoření zásady s efektem Odepřít a přiřazením k oboru nemůže uživatel vytvořit účet úložiště s minimální verzí protokolu TLS starší než 1.2. Uživatel nemůže provádět žádné změny konfigurace existujícího účtu úložiště, který aktuálně vyžaduje minimální verzi protokolu TLS starší než 1.2. Při pokusu o to dojde k chybě. Aby bylo možné pokračovat v vytváření nebo konfiguraci účtu, musí být požadovaná minimální verze protokolu TLS pro účet úložiště nastavená na 1.2.
Následující obrázek ukazuje chybu, ke které dojde, když se pokusíte vytvořit účet úložiště s minimální verzí protokolu TLS nastavenou na TLS 1.0 (výchozí hodnota pro nový účet), když zásada s účinkem Odepřít vyžaduje, aby minimální verze protokolu TLS byla nastavena na TLS 1.2.
Oprávnění potřebná k vyžadování minimální verze protokolu TLS
Pokud chcete nastavit vlastnost MinimumTlsVersion 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 nebo Microsoft.Storage/storageAccounts/* . Mezi předdefinované role s touto akcí patří:
- Role vlastníka Azure Resource Manager
- Role přispěvatele Azure Resource Manager
- Role přispěvatele účtu úložiště
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ě.
Přiřazení rolí musí být vymezena na úroveň účtu úložiště nebo vyšší, aby uživatel pro účet úložiště vyžadoval minimální verzi protokolu TLS. 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 ty, 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.
Poznámka:
Klasické role správce předplatného Service Administrator a Spolusprávce 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 a spravovat účty úložiště. Další informace najdete v tématu Role Azure, role Microsoft Entra a klasické role správce předplatného.
Důležité informace z hlediska využívání sítě
Když klient odešle požadavek do účtu úložiště, klient nejprve vytvoří připojení k veřejnému koncovému bodu účtu úložiště před zpracováním jakýchkoli požadavků. Po navázání připojení se zkontroluje minimální nastavení verze protokolu TLS. Pokud požadavek používá starší verzi protokolu TLS, než která je určená nastavením, připojení bude i nadále úspěšné, ale požadavek nakonec selže. Další informace o veřejných koncových bodech pro Azure Storage najdete v tématu Syntaxe identifikátoru URI prostředku.