Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
✔️ Dotyczy do: Azure Blob Storage, Azure Data Lake Storage, Azure Queue Storage, Azure Table Storage
✖️ Nie dotyczy to: Azure Files (Microsoft.Storage lub Microsoft.FileShares)
Komunikacja między aplikacją kliencką a kontem Azure Storage jest szyfrowana za pomocą zabezpieczeń warstwy transportowej (TLS). TLS to standardowy protokół kryptograficzny, który zapewnia prywatność i integralność danych między klientami i usługami przez Internet. Aby uzyskać więcej informacji na temat protokołu TLS, zobacz Transport Layer Security.
Usługa Azure Storage obsługuje dwie wersje protokołu TLS: 1.2 i 1.3. Chociaż Azure Storage obecnie obsługuje protokół TLS 1.3, obecnie nie obsługuje wymuszania protokołu TLS 1.3 jako minimalnej wersji protokołu TLS dla kont Azure Storage. Zalecana minimalna wersja protokołu TLS to TLS 1.2. Klienci korzystający z najnowszych wersji TLS automatycznie negocjują użycie TLS 1.3, jeśli jest dostępny.
Napiwek
Usługa Azure Storage opiera się na implementacji protokołu SSL systemu Windows, która nie jest oparta na protokole OpenSSL i dlatego nie jest widoczna dla luk w zabezpieczeniach związanych z protokołem OpenSSL.
Konta usługi Azure Storage umożliwiają klientom wysyłanie i odbieranie danych przy użyciu protokołu TLS w wersji 1.2 lub nowszej. Gdy konto pamięci masowej wymaga minimalnej wersji TLS, każde żądanie wykorzystujące starszą wersję kończy się niepowodzeniem.
W tym artykule opisano sposób używania struktury DRAG (Detection-Remediation-Audit-Governance) w celu ciągłego zarządzania bezpiecznym protokołem TLS dla kont magazynowych.
Aby uzyskać informacje o sposobie określania określonej wersji protokołu TLS podczas wysyłania żądania z aplikacji klienckiej, zobacz Konfigurowanie protokołu Transport Layer Security (TLS) dla aplikacji klienckiej.
Uwaga
Zestaw szyfrów używany podczas przesyłania danych i odbierania danych z konta pamięci zależy od użytej wersji TLS. Nie możesz skonfigurować konta magazynu, aby blokowało użycie konkretnych szyfrów, poza wymaganiem minimalnej wersji TLS. Jeśli potrzebujesz możliwości zezwalania tylko na określone zestawy szyfrowania podczas nawiązywania połączenia z kontem magazynu, rozważ użycie Azure Application Gateway. Aby uzyskać więcej informacji na temat używania usługi Application Gateway do tego celu, zobacz Konfigurowanie wersji zasad protokołu TLS i zestawów szyfrowania w usłudze Azure Application Gateway.
W przypadku Azure Files, zobacz FileREST encryption in transit. Konta magazynu zawierające udziały plików platformy Azure korzystają z tego samego ustawienia, ale w artykule Azure Files opisano kwestie dotyczące usługi Azure Files.
Wykrywanie wersji protokołu TLS używanej przez aplikacje klienckie
Gdy wymuszasz minimalną wersję TLS dla swojego konta magazynu, ryzykujesz odrzucenie żądań od klientów korzystających ze starszej wersji TLS. Aby zrozumieć, jak konfiguracja minimalnej wersji TLS wpływa na aplikacje klienckie, Microsoft zaleca włączenie rejestrowania dla konta usługi Azure Storage i analizę dzienników po pewnym czasie, aby wykryć, jakich wersji TLS używają aplikacje klienckie.
Aby logować żądania do swojego konta Azure Storage i określić wersję TLS używaną przez klienta, użyj logowania Azure Storage w Azure Monitor. Aby uzyskać więcej informacji, zobacz Monitorowanie usługi Azure Storage.
Rejestrowanie usługi Azure Storage w usłudze Azure Monitor umożliwia używanie zapytań dzienników do analizowania danych dziennika. Aby zapytać logi, użyj przestrzeni roboczej Azure Log Analytics. Aby dowiedzieć się więcej na temat zapytań dzienników, zobacz Samouczek: wprowadzenie do zapytań usługi Log Analytics.
Aby rejestrować dane usługi Azure Storage za pomocą usługi Azure Monitor i analizować je za pomocą usługi Azure Log Analytics, należy najpierw utworzyć ustawienie diagnostyczne wskazujące typy żądań i usługi magazynu, dla których chcesz rejestrować dane. Aby utworzyć ustawienie diagnostyczne w Azure Portal, wykonaj następujące kroki:
Utwórz nowy obszar roboczy usługi Log Analytics w subskrypcji zawierającej konto usługi Azure Storage. Po skonfigurowaniu rejestrowania dla konta do przechowywania, dzienniki będą dostępne w obszarze roboczym usługi Log Analytics. Aby uzyskać więcej informacji, zobacz Tworzenie obszaru roboczego usługi Log Analytics w Azure Portal.
Przejdź do swojego konta magazynowego na Azure Portal.
W sekcji Monitorowanie wybierz pozycję Ustawienia diagnostyczne.
Wybierz usługę Azure Storage, dla której chcesz rejestrować żądania. Na przykład wybierz pozycję Blob , aby rejestrować żądania do usługi Blob Storage.
Wybierz pozycję Dodaj ustawienie diagnostyczne.
Podaj nazwę ustawienia diagnostycznego.
W obszarze Szczegóły kategorii w sekcji dziennika wybierz typy żądań do zarejestrowania. Możesz rejestrować żądania odczytu, zapisu i usuwania. Na przykład, wybierając StorageRead i StorageWrite, rejestruje żądania odczytu i zapisu w wybranej usłudze.
W obszarze Szczegóły miejsca docelowego wybierz pozycję Wyślij do usługi Log Analytics. Wybierz subskrypcję i utworzony wcześniej obszar roboczy usługi Log Analytics, jak pokazano na poniższej ilustracji.
Po utworzeniu ustawienia diagnostycznego konto magazynu rejestruje żądania zgodnie z tym ustawieniem. Aby uzyskać więcej informacji, zobacz Tworzenie ustawienia diagnostycznego w celu zbierania dzienników zasobów i metryk na platformie Azure.
Aby uzyskać informacje o polach dostępnych w dziennikach usługi Azure Storage w usłudze Azure Monitor, zobacz Dzienniki zasobów.
Wykonywanie zapytań dotyczących zarejestrowanych żądań według wersji protokołu TLS
Dzienniki usługi Azure Storage w usłudze Azure Monitor obejmują wersję protokołu TLS używaną do wysyłania żądania do konta magazynu. Użyj właściwości TlsVersion, aby sprawdzić wersję protokołu TLS zarejestrowanego żądania.
Aby określić, ile żądań zostało wykonanych względem usługi Blob Storage z różnymi wersjami protokołu TLS w ciągu ostatnich siedmiu dni, otwórz obszar roboczy usługi Log Analytics. Następnie wklej następujące zapytanie do nowego zapytania dziennika i uruchom je. Pamiętaj, aby zastąpić wartości symboli zastępczych w nawiasach własnymi wartościami:
StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>"
| summarize count() by TlsVersion
Wyniki pokazują liczbę żądań wysyłanych z każdą wersją protokołu TLS:
Wyszukiwanie zarejestrowanych żądań według adresu IP wywołującego i nagłówka agenta użytkownika
Logi Azure Storage w Azure Monitor zawierają również adres IP wywołującego oraz nagłówek agenta użytkownika, które pomagają ocenić, które aplikacje klienckie miały dostęp do konta pamięci. Możesz analizować te wartości, aby zdecydować, czy aplikacje klienckie muszą zostać zaktualizowane, aby korzystać z nowszej wersji TLS, czy też dopuszczalne jest odrzucenie żądania klienta, jeśli nie zostanie ono wysłane z minimalną wersją TLS.
Aby określić, którzy klienci wysyłali żądania przy użyciu wersji protokołu TLS starszej niż TLS 1.2 w ciągu ostatnich siedmiu dni, wklej następujące zapytanie do nowego zapytania dziennika i uruchom je. Pamiętaj, aby zastąpić wartości symboli zastępczych w nawiasach własnymi wartościami:
StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>" and TlsVersion != "TLS 1.2"
| project TlsVersion, CallerIpAddress, UserAgentHeader
Ograniczanie ryzyka bezpieczeństwa przy użyciu minimalnej wersji protokołu TLS
Jeśli masz pewność, że ruch od klientów korzystających ze starszych wersji protokołu TLS jest minimalny lub że dopuszczalne jest niepowodzenie żądań wysyłanych ze starszą wersją protokołu TLS, możesz rozpocząć wymuszanie minimalnej wersji protokołu TLS na koncie magazynu. Wymaganie, aby klienci używali minimalnej wersji protokołu TLS do tworzenia żądań względem konta magazynu, jest częścią strategii minimalizowania zagrożeń bezpieczeństwa dla danych.
Ważne
Jeśli korzystasz z usługi łączącej się z Azure Storage, upewnij się, że ta usługa używa odpowiedniej wersji TLS do wysyłania żądań do Azure Storage, zanim ustawisz wymaganą minimalną wersję dla konta storage.
Konfigurowanie minimalnej wersji protokołu TLS dla konta magazynu
Aby skonfigurować minimalną wersję protokołu TLS dla konta magazynu, ustaw wersję MinimumTlsVersion dla konta. Ta właściwość jest dostępna dla wszystkich kont magazynu utworzonych za pomocą modelu wdrażania usługi Azure Resource Manager. Aby uzyskać więcej informacji na temat modelu wdrażania usługi Azure Resource Manager, zobacz Omówienie konta magazynu.
Wartość domyślna właściwości MinimumTlsVersion różni się w zależności od sposobu jej ustawienia. Podczas tworzenia konta magazynu w witrynie Azure Portal minimalna wersja protokołu TLS jest domyślnie ustawiona na 1.2. Podczas tworzenia konta pamięci masowej za pomocą PowerShell, Azure CLI lub szablonu Azure Resource Manager, ta MinimumTlsVersion właściwość nie jest domyślnie ustawiona i nie zwraca wartości, dopóki nie skonfigurujesz jej wyraźnie.
Gdy właściwość MinimumTlsVersion nie jest ustawiona, jej wartość może być wyświetlana jako null lub pusty ciąg, w zależności od kontekstu. Konto magazynu pozwala na żądania wysyłane przy użyciu protokołu TLS w wersji 1.0 lub nowszej, jeśli właściwość nie jest ustawiona.
Podczas tworzenia konta magazynu w witrynie Azure Portal minimalna wersja protokołu TLS jest domyślnie ustawiona na 1.2.
Aby skonfigurować minimalną wersję protokołu TLS dla istniejącego konta magazynu w witrynie Azure Portal, wykonaj następujące kroki:
Uwaga
Po aktualizacji minimalnej wersji TLS dla konta pamięci może minąć nawet do 30 sekund, zanim zmiana zostanie w pełni rozpropagowana.
Skonfigurowanie minimalnej wersji protokołu TLS wymaga wersji 2019-04-01 lub nowszej u dostawcy zasobów usługi Azure Storage. Aby uzyskać więcej informacji, zobacz Interfejs API REST dostawcy zasobów usługi Azure Storage.
Sprawdzanie minimalnej wymaganej wersji protokołu TLS dla wielu kont
Aby sprawdzić minimalną wymaganą wersję TLS dla zestawu kont magazynu z optymalną wydajnością, użyj Eksploratora Azure Resource Graph w portalu Azure. Aby dowiedzieć się więcej na temat korzystania z Eksploratora usługi Resource Graph, zobacz Szybki start: uruchamianie pierwszego zapytania usługi Resource Graph przy użyciu Eksploratora usługi Azure Resource Graph.
Uruchomienie następującego zapytania w Eksploratorze usługi Resource Graph zwraca listę kont magazynu i wyświetla minimalną wersję protokołu TLS dla każdego konta:
resources
| where type =~ 'Microsoft.Storage/storageAccounts'
| extend minimumTlsVersion = parse_json(properties).minimumTlsVersion
| project subscriptionId, resourceGroup, name, minimumTlsVersion
Przetestuj minimalną wersję protokołu TLS od klienta
Aby sprawdzić, czy minimalna wymagana wersja TLS dla konta magazynu zabrania wykonywania wywołań ze starszą wersją, skonfiguruj klienta do korzystania ze starszej wersji TLS. Aby uzyskać więcej informacji na temat konfigurowania klienta do używania określonej wersji protokołu TLS, zobacz Konfigurowanie protokołu Transport Layer Security (TLS) dla aplikacji klienckiej.
Gdy klient uzyskuje dostęp do konta pamięci masowej, używając wersji TLS, która nie spełnia minimalnej wersji TLS skonfigurowanej dla tego konta, Azure Storage zwraca kod błędu 400 (Bad Request) oraz komunikat informujący, że wersja TLS nie jest dozwolona do wysyłania żądań do tego konta magazynowego.
Uwaga
Gdy konfigurujesz minimalną wersję TLS dla konta pamięci, warstwa aplikacji wymusza tę minimalną wersję. Narzędzia próbujące określić obsługę TLS na warstwie protokołu mogą zwracać wersje TLS oprócz minimalnej wymaganej wersji, gdy są uruchamiane bezpośrednio względem punktu końcowego konta magazynu.
Używanie usługi Azure Policy do inspekcji zgodności
Jeśli masz dużą liczbę kont magazynowych, warto przeprowadzić audyt, aby upewnić się, że wszystkie konta są skonfigurowane na minimalną wersję TLS, której wymaga Twoja organizacja. Aby przeprowadzić inspekcję zestawu kont magazynu pod kątem zgodności, użyj usługi Azure Policy. Azure Policy to usługa, której można użyć do tworzenia, przypisywania i zarządzania zasadami, które określają reguły dla zasobów platformy Azure. Azure Policy pomaga utrzymać te zasoby zgodne z korporacyjnymi standardami i umowami o poziomie usług. Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Policy.
Utwórz zasadę z efektem inspekcji
Usługa Azure Policy obsługuje skutki, które określają, co się stanie, gdy reguła zasad jest oceniana względem zasobu. Efekt audytu generuje ostrzeżenie, gdy zasób nie jest zgodny, ale nie zatrzymuje żądania. Aby uzyskać więcej informacji na temat efektów, zobacz Opis efektów usługi Azure Policy.
Aby stworzyć politykę z efektem audytu dla minimalnej wersji TLS za pomocą portalu Azure, należy postępować zgodnie z następującymi krokami:
W portalu Azure przejdź do usługi Azure Policy.
W sekcji Tworzenie wybierz pozycję Definicje.
Wybierz pozycję Dodaj definicję zasad, aby utworzyć nową definicję zasad.
W polu Lokalizacja definicji wybierz przycisk Więcej, aby określić, gdzie znajduje się zasób zasad inspekcji/audytu.
Podaj nazwę zasad. Opcjonalnie możesz określić opis i kategorię.
W sekcji Reguła zasad dodaj następującą definicję zasad do sekcji policyRule.
{ "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" } } }Zapisz zasadę.
Przypisz zasadę
Następnie przypisz zasadę do zasobu. Zakres zasady odpowiada temu zasobowi i wszelkim zasobom poniżej. Aby uzyskać więcej informacji na temat przypisywania zasad, zobacz strukturę przypisywania zasad Azure Policy.
Aby przypisać zasadę w witrynie Azure Portal, wykonaj następujące kroki:
- W portalu Azure przejdź do usługi Azure Policy.
- W sekcji Tworzenie wybierz pozycję Przypisania.
- Wybierz pozycję Przypisz zasady/politykę, aby utworzyć nowe przypisanie zasad/polityki.
- W polu Zakres wybierz zakres przypisania zasad.
- W polu Definicja zasad wybierz przycisk Więcej, a następnie wybierz z listy zasady zdefiniowane w poprzedniej sekcji.
- Określ nazwę przypisania zasad. Opis jest opcjonalny.
- Pozostaw Wymuszanie zasad ustawioną na włączoną. To ustawienie nie ma wpływu na zasady audytu.
- Wybierz pozycję Przejrzyj i utwórz, aby utworzyć zadanie.
Wyświetl raport zgodności
Po przypisaniu polityki obejrzyj raport zgodności. Raport zgodności dla polityki audytu zawiera informacje o tym, które konta przechowywania nie są zgodne z polityką. Aby uzyskać więcej informacji, zobacz Pobieranie danych zgodności zasad.
Może minąć kilka minut, zanim raport z zgodności stanie się dostępny po utworzeniu przypisania zasad.
Aby wyświetlić raport zgodności w witrynie Azure Portal, wykonaj następujące kroki:
W portalu Azure przejdź do usługi Azure Policy.
Wybierz Compliance.
Przefiltruj wyniki pod kątem nazwy przypisania zasad utworzonego w poprzednim kroku. Raport pokazuje, ile zasobów nie jest zgodnych z polityką.
Możesz zagłębić się w raport, aby uzyskać więcej szczegółów, w tym listę kont magazynowych, które nie są zgodne.
Używanie usługi Azure Policy do wymuszania minimalnej wersji protokołu TLS
Usługa Azure Policy wspiera nadzór nad środowiskiem chmurowym, zapewniając, że zasoby platformy Azure są zgodne z wymaganiami i standardami. Aby wymusić minimalny wymóg wersji TLS dla kont magazynu w Twojej organizacji, możesz stworzyć politykę, która uniemożliwia tworzenie nowego konta magazynu, które ustawia minimalny wymóg TLS na starszą wersję TLS niż ta, którą nakazuje polityka. Ta polityka uniemożliwia również wszelkie zmiany konfiguracji istniejącego konta, jeśli minimalne ustawienie wersji TLS dla tego konta nie jest zgodne z polityką.
Polityka egzekwowania wykorzystuje efekt Deny, aby zapobiec żądaniu, które mogłoby utworzyć lub zmodyfikować konto pamięci masowej, tak że minimalna wersja TLS nie będzie już spełniać standardów Twojej organizacji. Aby uzyskać więcej informacji na temat efektów, zobacz Poznaj efekty usługi Azure Policy.
Aby utworzyć politykę z efektem Odmowy dla minimalnej wersji TLS mniejszej niż TLS 1.2, należy wykonać te same kroki opisane w sekcji Użyj Azure Policy do audytu zgodności, ale w sekcji policyRule definicji polityki podaj następujący 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 utworzeniu polityki z efektem Odmowa i przypisaniu jej do zakresu użytkownik nie może utworzyć konta magazynu z minimalną wersją protokołu TLS starszą niż 1.2. Użytkownik nie może też wprowadzać żadnych zmian konfiguracyjnych na istniejącym koncie pamięci, które obecnie wymaga minimalnej wersji TLS starszej niż 1.2. Próba wykonania tej czynności powoduje wystąpienie błędu. Wymagana minimalna wersja protokołu TLS dla konta magazynu danych musi być ustawiona na 1.2, aby kontynuować tworzenie konta lub konfigurację.
Na poniższej ilustracji przedstawiono błąd, który występuje, jeśli próbujesz utworzyć konto magazynu z minimalną wersją protokołu TLS ustawioną na TLS 1.0 (wartość domyślna dla nowego konta), gdy zasady z efektem Odmowy wymagają, aby minimalna wersja protokołu TLS jest ustawiona na TLS 1.2.
Uprawnienia niezbędne do wymagania minimalnej wersji protokołu TLS
Aby ustawić właściwość MinimumTlsVersion dla konta magazynu, potrzebujesz uprawnień do tworzenia i zarządzania kontami magazynu. Role kontroli dostępu opartej na rolach (RBAC) platformy Azure, które zapewniają te uprawnienia, obejmują akcję Microsoft.Storage/storageAccounts/write lub Microsoft.Storage/storageAccounts/*. Wbudowane role z tą akcją obejmują:
- Rola Owner usługi Azure Resource Manager
- Rola Współautor usługi Azure Resource Manager
- Rola współautora konta magazynu danych
Te role nie umożliwiają dostępu do danych w kontach pamięci masowej przez Microsoft Entra ID. Obejmują one jednak uprawnienie Microsoft.Storage/storageAccounts/listkeys/action, które udziela dostępu do kluczy dostępu do konta. Dzięki temu uprawnieniu możesz używać kluczy dostępu do konta, aby uzyskać dostęp do wszystkich danych na koncie magazynowym.
Przydziały ról muszą być przypisane na poziomie konta pamięci masowej lub wyższym, aby umożliwić wymaganie minimalnej wersji TLS dla konta magazynowego. Aby uzyskać więcej informacji na temat zakresu ról, zobacz Opis zakresu kontroli dostępu opartej na rolach platformy Azure.
Należy zachować ostrożność, aby ograniczyć przypisywanie tych ról tylko do tych, którzy wymagają możliwości utworzenia konta magazynu danych lub zaktualizowania jego właściwości. Stosuj zasadę najmniejszych uprawnień, aby zapewnić użytkownikom jak najmniej uprawnień, które są im potrzebne do wykonywania zadań. Aby uzyskać więcej informacji na temat zarządzania dostępem za pomocą kontroli dostępu opartej na rolach platformy Azure, zobacz Najlepsze rozwiązania dotyczące kontroli dostępu opartej na rolach na platformie Azure.
Uwaga
Role klasycznych administratorów subskrypcji Administrator usługi i Współadministrator obejmują odpowiednik roli usługi Azure Resource Manager Właściciel. Rola Właściciel obejmuje wszystkie akcje, więc użytkownik z jedną z tych ról administracyjnych może również tworzyć konta magazynowe i zarządzać nimi. Aby uzyskać więcej informacji, zobacz Role platformy Azure, role firmy Microsoft Entra i klasyczne role administratora subskrypcji.
Kwestie dotyczące sieci
Gdy klient wysyła żądanie do konta magazynu, klient najpierw łączy się z publicznym punktem końcowym konta magazynu, zanim przetworzy jakiekolwiek żądania. Minimalne ustawienie wersji protokołu TLS jest sprawdzane po nawiązaniu połączenia. Jeśli żądanie używa wcześniejszej wersji TLS niż ta określona przez ustawienie, połączenie nadal się udaje, ale żądanie ostatecznie kończy się niepowodzeniem. Aby uzyskać więcej informacji na temat publicznych punktów końcowych dla usługi Azure Storage, zobacz Składnia identyfikatora URI zasobu.