Udostępnij za pośrednictwem


Szyfrowanie w usłudze Azure Storage dla danych magazynowanych

Usługa Azure Storage używa szyfrowania po stronie usługi (SSE), aby automatycznie szyfrować dane, 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 zgodnego 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 dla usługi 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 klasycznego). 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żna użyć dowolnego typu zarządzania kluczami lub obu tych typów:

  • Klucz zarządzany przez klienta można określić do użycia do szyfrowania i odszyfrowywania danych w usłudze Blob Storage i w usłudze Azure Files.1,2 Klucze zarządzane przez klienta muszą być przechowywane w usłudze Azure Key Vault lub zarządzanym modelu zabezpieczeń sprzętu usługi Azure Key Vault (HSM). Aby uzyskać więcej informacji na temat kluczy zarządzanych przez klienta, zobacz Używanie kluczy zarządzanych przez klienta na potrzeby szyfrowania usługi Azure Storage.
  • Klucz dostarczony przez klienta można określić w operacjach usługi Blob Storage. Klient wysyłający żądanie odczytu lub zapisu względem usługi Blob Storage może uwzględnić klucz szyfrowania w żądaniu szczegółowej kontroli nad sposobem szyfrowania i odszyfrowywania danych obiektów blob. Aby uzyskać więcej informacji na temat kluczy dostarczonych przez klienta, zobacz Zapewnianie klucza szyfrowania w żądaniu do usługi Blob Storage.

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 o zakresie 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 porównaliśmy opcje 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 wszystkie Blob Storage, Azure Files1,2 Blob Storage
Magazyn kluczy Magazyn kluczy firmy Microsoft Usługa Azure Key Vault lub moduł HSM usługi 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 w usłudze 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 umożliwić samodzielne zarządzanie rotacją i ich inspekcję.

Podwójnie szyfruj dane za pomocą szyfrowania infrastruktury

Klienci, którzy wymagają wysokiego poziomu pewności, ż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 na potrzeby podwójnego szyfrowania danych.

Szyfrowanie po stronie klienta dla obiektów blob i kolejek

Biblioteki klienta usługi Azure Blob Storage dla platformy .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 udostępnianych 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 usługą 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 w celu używania szyfrowania po stronie klienta w wersji 2 i migrowania danych.

Zestaw SDK usługi Azure Table Storage obsługuje tylko szyfrowanie po stronie klienta w wersji 1. Korzystanie z szyfrowania po stronie klienta w usłudze Table Storage nie jest zalecane.

W poniższej tabeli pokazano, 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 zaszyfruj je ponownie za pomocą szyfrowania po stronie klienta w wersji 2.
Szyfrowanie po stronie klienta dla obiektów blob
Biblioteka klienta usługi Blob Storage dla platformy .NET (wersja 12.12.0 lub nowsza), 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 dla 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 zaszyfruj je ponownie za pomocą 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 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. 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 dla 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