Szyfrowanie w usłudze Azure Storage dla danych magazynowanych

Usługa Azure Storage używa szyfrowania po stronie usługi (SSE) do automatycznego szyfrowania danych, gdy są utrwalane w chmurze. Szyfrowanie usługi Azure Storage chroni dane i pomaga spełnić wymagania organizacji dotyczące zabezpieczeń i zgodności.

Firma Microsoft zaleca używanie szyfrowania po stronie usługi w celu ochrony danych w większości scenariuszy. Jednak biblioteki klienta usługi Azure Storage dla usługi Blob Storage i Queue Storage zapewniają również szyfrowanie po stronie klienta dla klientów, którzy muszą szyfrować dane na kliencie. Aby uzyskać więcej informacji, zobacz Szyfrowanie po stronie klienta dla obiektów blob i kolejek.

Informacje o szyfrowaniu po stronie usługi Azure Storage

Dane w usłudze Azure Storage są szyfrowane i odszyfrowywane w sposób niewidoczny przy użyciu 256-bitowego szyfrowania AES, jednego z najsilniejszych dostępnych szyfrów blokowych i jest zgodne ze standardem FIPS 140-2. Szyfrowanie usługi Azure Storage jest podobne do szyfrowania funkcją BitLocker w systemie Windows.

Szyfrowanie usługi Azure Storage jest włączone dla wszystkich kont magazynu, w tym zarówno Resource Manager, jak i klasycznych kont magazynu. Nie można wyłączyć szyfrowania usługi Azure Storage. Ponieważ dane są domyślnie zabezpieczone, nie trzeba modyfikować kodu ani aplikacji, aby korzystać z szyfrowania usługi Azure Storage.

Dane na koncie magazynu są szyfrowane niezależnie od warstwy wydajności (Standardowa lub Premium), warstwy dostępu (gorąca lub chłodna) lub modelu wdrażania (Azure Resource Manager lub klasycznej). Wszystkie nowe i istniejące blokowe obiekty blob, uzupełnialne obiekty blob i stronicowe obiekty blob są szyfrowane, w tym obiekty blob w warstwie archiwum. Wszystkie opcje nadmiarowości usługi Azure Storage obsługują szyfrowanie, a wszystkie dane w regionach podstawowych i pomocniczych są szyfrowane po włączeniu replikacji geograficznej. Wszystkie zasoby usługi Azure Storage są szyfrowane, w tym obiekty blob, dyski, pliki, kolejki i tabele. Wszystkie metadane obiektu są również szyfrowane.

Szyfrowanie usługi Azure Storage nie wiąże się z dodatkowymi kosztami.

Aby uzyskać więcej informacji na temat modułów kryptograficznych bazowych szyfrowania usługi Azure Storage, zobacz Cryptography API: Next Generation (Interfejs API kryptografii: następna generacja).

Aby uzyskać informacje na temat szyfrowania i zarządzania kluczami dla dysków zarządzanych platformy Azure, zobacz Szyfrowanie po stronie serwera dysków zarządzanych platformy Azure.

Informacje o zarządzaniu kluczami szyfrowania

Dane na nowym koncie magazynu są domyślnie szyfrowane przy użyciu kluczy zarządzanych przez firmę Microsoft. Możesz nadal polegać na kluczach zarządzanych przez firmę Microsoft na potrzeby szyfrowania danych lub zarządzać szyfrowaniem przy użyciu własnych kluczy. Jeśli zdecydujesz się zarządzać szyfrowaniem przy użyciu własnych kluczy, masz dwie opcje. Możesz użyć dowolnego typu zarządzania kluczami lub obu tych typów:

Domyślnie konto magazynu jest szyfrowane przy użyciu klucza, który ma zakres dla całego konta magazynu. Zakresy szyfrowania umożliwiają zarządzanie szyfrowaniem przy użyciu klucza, który jest zakresem kontenera lub pojedynczego obiektu blob. Zakresy szyfrowania umożliwiają tworzenie bezpiecznych granic między danymi, które znajdują się na tym samym koncie magazynu, ale należą do różnych klientów. Zakresy szyfrowania mogą używać kluczy zarządzanych przez firmę Microsoft lub kluczy zarządzanych przez klienta. Aby uzyskać więcej informacji na temat zakresów szyfrowania, zobacz Zakresy szyfrowania dla usługi Blob Storage.

W poniższej tabeli przedstawiono porównanie opcji zarządzania kluczami dla szyfrowania usługi Azure Storage.

Parametr zarządzania kluczami Klucze zarządzane przez firmę Microsoft Klucze zarządzane przez klienta Klucze dostarczone przez klienta
Operacje szyfrowania/odszyfrowywania Azure Azure Azure
Obsługiwane usługi Azure Storage Wszystko Blob Storage, Azure Files 1,2 Blob Storage
Magazyn kluczy Magazyn kluczy firmy Microsoft Moduł HSM platformy Azure Key Vault lub Key Vault Własny magazyn kluczy klienta
Odpowiedzialność za rotację kluczy Microsoft Klient Klient
Kontrolka klucza Microsoft Klient Klient
Zakres klucza Konto (domyślne), kontener lub obiekt blob Konto (domyślne), kontener lub obiekt blob Nie dotyczy

1 Aby uzyskać informacje na temat tworzenia konta obsługującego używanie kluczy zarządzanych przez klienta z usługą Queue Storage, zobacz Tworzenie konta obsługującego klucze zarządzane przez klienta dla kolejek.
2 Aby uzyskać informacje na temat tworzenia konta obsługującego używanie kluczy zarządzanych przez klienta z usługą Table Storage, zobacz Tworzenie konta obsługującego klucze zarządzane przez klienta dla tabel.

Uwaga

Klucze zarządzane przez firmę Microsoft są odpowiednio obracane zgodnie z wymaganiami dotyczącymi zgodności. Jeśli masz określone wymagania dotyczące rotacji kluczy, firma Microsoft zaleca przejście do kluczy zarządzanych przez klienta, aby móc samodzielnie zarządzać rotacją i przeprowadzać inspekcję.

Podwójnie szyfruj dane za pomocą szyfrowania infrastruktury

Klienci, którzy wymagają wysokiego poziomu zapewnienia, że ich dane są bezpieczne, mogą również włączyć 256-bitowe szyfrowanie AES na poziomie infrastruktury usługi Azure Storage. Po włączeniu szyfrowania infrastruktury dane na koncie magazynu są szyfrowane dwa razy — raz na poziomie usługi i raz na poziomie infrastruktury — z dwoma różnymi algorytmami szyfrowania i dwoma różnymi kluczami. Podwójne szyfrowanie danych usługi Azure Storage chroni przed scenariuszem, w którym jeden z algorytmów szyfrowania lub kluczy może zostać naruszony. W tym scenariuszu dodatkowa warstwa szyfrowania nadal chroni dane.

Szyfrowanie na poziomie usługi obsługuje korzystanie z kluczy zarządzanych przez firmę Microsoft lub kluczy zarządzanych przez klienta w usłudze Azure Key Vault. Szyfrowanie na poziomie infrastruktury opiera się na kluczach zarządzanych przez firmę Microsoft i zawsze używa oddzielnego klucza.

Aby uzyskać więcej informacji na temat tworzenia konta magazynu, które umożliwia szyfrowanie infrastruktury, zobacz Tworzenie konta magazynu z włączonym szyfrowaniem infrastruktury w celu podwójnego szyfrowania danych.

Szyfrowanie po stronie klienta dla obiektów blob i kolejek

Biblioteki klienckie Azure Blob Storage dla platform .NET, Java i Python obsługują szyfrowanie danych w aplikacjach klienckich przed przekazaniem do usługi Azure Storage i odszyfrowywaniem danych podczas pobierania do klienta. Biblioteki klienta usługi Queue Storage dla platformy .NET i języka Python obsługują również szyfrowanie po stronie klienta.

Uwaga

Rozważ użycie funkcji szyfrowania po stronie usługi zapewnianych przez usługę Azure Storage w celu ochrony danych zamiast szyfrowania po stronie klienta.

Biblioteki klienta usługi Blob Storage i Queue Storage używają usługi AES w celu szyfrowania danych użytkownika. Istnieją dwie wersje szyfrowania po stronie klienta dostępne w bibliotekach klienckich:

  • Wersja 2 używa trybu Galois/Counter Mode (GCM) z AES. Zestawy SDK usługi Blob Storage i Queue Storage obsługują szyfrowanie po stronie klienta przy użyciu wersji 2.
  • Wersja 1 używa trybu łańcucha bloków szyfrowania (CBC) z AES. Zestawy SDK usługi Blob Storage, Queue Storage i Table Storage obsługują szyfrowanie po stronie klienta przy użyciu wersji 1.

Ostrzeżenie

Korzystanie z szyfrowania po stronie klienta w wersji 1 nie jest już zalecane z powodu luki w zabezpieczeniach w implementacji trybu CBC biblioteki klienta. Aby uzyskać więcej informacji na temat tej luki w zabezpieczeniach, zobacz Aktualizowanie szyfrowania po stronie klienta w zestawie SDK w usłudze Azure Storage w celu rozwiązania luk w zabezpieczeniach. Jeśli obecnie używasz wersji 1, zalecamy zaktualizowanie aplikacji do korzystania z szyfrowania po stronie klienta w wersji 2 i migracji danych.

Zestaw SDK usługi Azure Table Storage obsługuje tylko szyfrowanie po stronie klienta w wersji 1. Używanie szyfrowania po stronie klienta z usługą Table Storage nie jest zalecane.

W poniższej tabeli przedstawiono, które biblioteki klienckie obsługują wersje szyfrowania po stronie klienta i zawierają wytyczne dotyczące migracji do szyfrowania po stronie klienta w wersji 2.

Biblioteka kliencka Obsługiwana wersja szyfrowania po stronie klienta Zalecana migracja Dodatkowe wskazówki
Biblioteki klienta usługi Blob Storage dla platformy .NET (wersja 12.13.0 lub nowsza), Java (wersja 12.18.0 lub nowsza) i Python (wersja 12.13.0 lub nowsza) 2.0

1.0 (tylko w przypadku zgodności z poprzednimi wersjami)
Zaktualizuj kod, aby używał szyfrowania po stronie klienta w wersji 2.

Pobierz wszystkie zaszyfrowane dane, aby je odszyfrować, a następnie ponownie zaszyfruj je przy użyciu szyfrowania po stronie klienta w wersji 2.
Szyfrowanie po stronie klienta dla obiektów blob
Biblioteka klienta usługi Blob Storage dla platformy .NET (w wersji 12.12.0 lub nowszej), Java (wersja 12.17.0 lub nowsza) i Python (wersja 12.12.0 i nowsze) 1.0 (niezalecane) Zaktualizuj aplikację, aby korzystała z wersji zestawu SDK usługi Blob Storage obsługującego szyfrowanie po stronie klienta w wersji 2. Aby uzyskać szczegółowe informacje, zobacz Macierz obsługi zestawu SDK na potrzeby szyfrowania po stronie klienta .

Zaktualizuj kod, aby używał szyfrowania po stronie klienta w wersji 2.

Pobierz wszystkie zaszyfrowane dane, aby je odszyfrować, a następnie ponownie zaszyfruj je przy użyciu szyfrowania po stronie klienta w wersji 2.
Szyfrowanie po stronie klienta dla obiektów blob
Biblioteka klienta usługi Queue Storage dla platformy .NET (wersja 12.11.0 lub nowsza) i Python (wersja 12.4 i nowsza) 2.0

1.0 (tylko w przypadku zgodności z poprzednimi wersjami)
Zaktualizuj kod, aby używał szyfrowania po stronie klienta w wersji 2. Szyfrowanie po stronie klienta dla kolejek
Biblioteka klienta usługi Queue Storage dla platformy .NET (wersja 12.10.0 lub nowsza) i Python (wersja 12.3.0 i nowsze) 1.0 (niezalecane) Zaktualizuj aplikację, aby korzystała z wersji zestawu SDK usługi Queue Storage, która obsługuje szyfrowanie po stronie klienta w wersji 2. Zobacz Macierz obsługi zestawu SDK na potrzeby szyfrowania po stronie klienta

Zaktualizuj kod, aby używał szyfrowania po stronie klienta w wersji 2.
Szyfrowanie po stronie klienta dla kolejek
Biblioteka klienta usługi Table Storage dla platform .NET, Java i Python 1.0 (niezalecane) Niedostępne. Nie dotyczy

Następne kroki