Szyfrowanie danych przy użyciu kluczy zarządzanych przez klienta dla usługi Azure Database for MySQL

Korzystając z szyfrowania danych przy użyciu kluczy zarządzanych przez klienta w usłudze Azure Database for MySQL, możesz użyć własnego klucza (BYOK) do ochrony przechowywanych danych, aby wdrożyć rozdzielenie obowiązków związanych z zarządzaniem kluczami i danymi. W przypadku używania kluczy zarządzanych przez klienta (CMK) można kontrolować:

  • Zarządzanie cyklem życia klucza, w tym tworzenie kluczy, przekazywanie, rotacja i usuwanie
  • Uprawnienia użycia klucza
  • Inspekcja operacji na kluczach

Korzyści z kluczy zarządzanych przez klienta (CMK)

Szyfrowanie danych przy użyciu kluczy zarządzanych przez klienta dla usługi Azure Database for MySQL zapewnia następujące korzyści:

  • W pełni kontrolujesz dostęp do danych, usuwając klucz i uniemożliwiając dostęp do bazy danych.
  • Masz pełną kontrolę nad cyklem życia klucza, w tym nad jego rotacją, aby był zgodny z zasadami obowiązującymi w firmie.
  • Klucze można centralnie zarządzać i organizować w Azure Key Vault lub zarządzanym module HSM.
  • Można zaimplementować rozdzielenie obowiązków między funkcjonariuszami zabezpieczeń, administratorami bazy danych i administratorami systemu.

Jak działa szyfrowanie danych za pomocą klucza zarządzanego przez klienta?

Tożsamości zarządzane w usłudze Microsoft Entra ID zapewniają bezpieczniejszy sposób uwierzytelniania klientów w usługach. Szyfrowanie cmK używa tożsamości zarządzanej serwera usługi Azure Database for MySQL w celu nawiązania połączenia z usługą Azure Key Vault przechowującą klucz cmK. Azure Database for MySQL obecnie obsługuje tylko tożsamość zarządzaną przypisaną przez użytkownika (UAMI) w celu uzyskania dostępu do Key Vault. Aby uzyskać więcej informacji, zobacz Typy tożsamości zarządzanych na platformie Azure.

Aby skonfigurować klucz cmK dla Azure Database for MySQL, połącz element UAMI z serwerem i określ Azure Key Vault i klucz do użycia.

UAMI wymaga następującego dostępu do usługi Key Vault:

  • Get: służy do pobrania części publicznej i właściwości klucza w magazynie kluczy.
  • Lista: Aby wyświetlić listę wersji klucza przechowywanego w Key Vault.
  • Klucz opakowujący: służy do szyfrowania klucza DEK. Zaszyfrowany klucz DEK jest przechowywany w wystąpieniu usługi Azure Database for MySQL — Serwer elastyczny.
  • Rozpakowanie klucza: aby odszyfrować DEK. Azure Database for MySQL wymaga odszyfrowanego klucza DEK do szyfrowania i odszyfrowywania danych.

Jeśli funkcja Azure RBAC jest włączona, przypisz role do UAMI zamiast poszczególnym użytkownikom.

  • Użytkownik szyfrowania usługi Kryptograficznej usługi Key Vault lub rola z uprawnieniami:
    • Microsoft.KeyVault/vaults/keys/wrap/action
    • Microsoft.KeyVault/vaults/keys/rozpakowanie/akcja
    • Microsoft.KeyVault/vaults/keys/read jak „Użytkownik szyfrowania usługi kryptograficznej Key Vault”
  • W przypadku zarządzanego modułu HSM przypisz rolę użytkownika zarządzanego szyfrowania usługi kryptograficznej HSM

Skonfiguruj szyfrowanie danych przy użyciu kluczy CMK na poziomie serwera. Dla danego serwera użyj klucza CMK, zwanego kluczem szyfrowania kluczy (KEK), do zaszyfrowania klucza szyfrowania danych (DEK) usługi. Klucz KEK jest kluczem asymetrycznym przechowywanym w wystąpieniu usługi Azure Key Vault należącym do klienta i zarządzanym przez klienta. Usługa Key Vault to bezpieczny, wysoce dostępny i skalowalny magazyn dla kluczy kryptograficznych RSA, opcjonalnie wspierany przez sprzętowe moduły zabezpieczeń (HSM) walidowane przez standard FIPS 140. Key Vault nie zezwala na bezpośredni dostęp do przechowywanego klucza, ale zamiast tego zapewnia usługi szyfrowania i odszyfrowywania przy użyciu klucza do autoryzowanych jednostek. Magazyn kluczy może wygenerować klucz lub przenieść go z lokalnego urządzenia HSM do magazynu kluczy.

Podczas konfigurowania serwera elastycznego do używania klucza CMK (klucza zarządzanego przez klienta) przechowywanego w usłudze Key Vault serwer wysyła klucz DEK do usługi Key Vault w celu zaszyfrowania. Usługa Key Vault zwraca zaszyfrowany klucz DEK przechowywany w bazie danych użytkownika. Podobnie serwer elastyczny wysyła chroniony klucz szyfrowania danych (DEK) do magazynu kluczy w celu odszyfrowania w razie potrzeby.

Diagram przedstawiający sposób działania szyfrowania danych przy użyciu klucza zarządzanego przez klienta.

Po włączeniu rejestrowania audytorzy mogą używać Azure Monitor do przeglądania dzienników zdarzeń inspekcji Key Vault. Aby włączyć rejestrowanie zdarzeń audytu usługi Key Vault, zobacz artykuł Monitorowanie usługi Key Vault za pomocą szczegółowych informacji o usłudze Key Vault.

Note

Zmiany uprawnień mogą potrwać do 10 minut, aby wpłynąć na magazyn kluczy.

Wymagania dotyczące konfigurowania szyfrowania danych dla usługi Azure Database for MySQL

Przed podjęciem próby skonfigurowania usługi Key Vault lub zarządzanego modułu HSM należy spełnić następujące wymagania.

  • Usługa Key Vault i elastyczny serwer usługi Azure Database for MySQL muszą należeć do tego samego dzierżawcy Microsoft Entra. Interakcje usługi Key Vault między dzierżawami oraz interakcje z elastycznym serwerem muszą być obsługiwane. Należy ponownie skonfigurować szyfrowanie danych w przypadku przenoszenia Key Vault zasobów po wykonaniu konfiguracji.
  • Wystąpienie serwera elastycznego usługi Key Vault i usługi Azure Database for MySQL musi znajdować się w tym samym regionie.
  • Włącz funkcję Usuwania nietrwałego w magazynie kluczy.
  • Włącz zabezpieczenie przed usunięciem.
  • Ustaw okres przechowywania na 90 dni.
    • Akcje odzyskiwania i przeczyszczania mają własne uprawnienia w zasadach dostępu usługi Key Vault.
    • Funkcja usuwania tymczasowego jest domyślnie wyłączona.

Przed próbą skonfigurowania klucza CMK upewnij się, że zostały spełnione następujące wymagania.

  • Klucz zarządzany przez klienta używany do szyfrowania klucza DEK może być wyłącznie kluczem asymetrycznym RSA\RSA-HSM (magazyny z jednostką SKU Premium) o długości 2048, 3072 lub 4096 bitów.
  • Data aktywacji klucza (jeśli ustawiona) musi być datą i godziną w przeszłości. Data wygaśnięcia nie jest ustawiona.
  • Klucz musi być w stanie Włączone .
  • Klucz musi mieć miękkie usuwanie z okresem przechowywania na 90 dni. To ustawienie niejawnie ustawia wymagany atrybut klucza recoveryLevel na wartość Recoverable.
  • Klucz musi mieć włączoną ochronę przed usuwaniem.
  • Jeśli importujesz istniejący klucz do magazynu kluczy, upewnij się, że został on w obsługiwanych formatach plików (.pfx, .byok, .backup).

Zalecenia dotyczące konfigurowania szyfrowania danych

Podczas konfigurowania Key Vault lub zarządzanego modułu HSM do używania szyfrowania danych za pomocą klucza zarządzanego przez klienta należy pamiętać o następujących zaleceniach:

  • Ustaw blokadę zasobu w usłudze Key Vault, aby kontrolować, kto może usunąć ten krytyczny zasób i zapobiec przypadkowemu lub nieautoryzowanemu usunięciu.
  • Włącz inspekcję i raportowanie dla wszystkich kluczy szyfrowania. Usługa Key Vault udostępnia dzienniki, które można łatwo wprowadzać do innych narzędzi do zarządzania informacjami i zdarzeniami zabezpieczeń.
  • Zachowaj kopię klucza zarządzanego przez klienta w bezpiecznym miejscu lub deponuj go do usługi escrow.
  • Jeśli usługa Key Vault wygeneruje klucz, utwórz kopię zapasową klucza przed pierwszym użyciem klucza. Możesz przywrócić kopię zapasową tylko do usługi Key Vault. Aby uzyskać więcej informacji na temat polecenia tworzenia kopii zapasowej, zobacz Backup-AzKeyVaultKey.

Note

Używany magazyn kluczy musi znajdować się w tym samym regionie co serwer bazy danych.

Stan niedostępności klucza zarządzanego przez klienta

Podczas konfigurowania szyfrowania danych za pomocą klucza zarządzanego przez klienta w Key Vault serwer wymaga ciągłego dostępu do tego klucza, aby pozostać w trybie online. Jeśli serwer elastyczny utraci dostęp do klucza zarządzanego przez klienta w usłudze Key Vault, serwer zacznie odmawiać wszystkich połączeń w ciągu 10 minut. Serwer elastyczny wystawia odpowiedni komunikat o błędzie i zmienia stan serwera na Niedostępny. Serwer może osiągnąć ten stan z różnych powodów.

Jeśli usuniesz magazyn kluczy, wystąpienie elastycznego serwera Azure Database for MySQL nie będzie miało dostępu do klucza i przejdzie w stan Inaccessible. Aby ustawić wystąpienie Availableserwera:

Jeśli usuniesz klucz z magazynu kluczy, wystąpienie serwera elastycznego Azure Database for MySQL nie będzie mieć dostępu do klucza i przejdzie do Inaccessible stanu. Aby ustawić wystąpienie Availableserwera:

  • Odzyskaj klucz.
  • Ponowne aktywowanie szyfrowania danych.

Note

Nawet jeśli klucz wygaśnie, serwer pozostaje dostępny zgodnie z projektem, aby zapobiec przestojom.

Przypadkowe odwołanie dostępu do klucza z usługi Key Vault

Osoba mająca odpowiednie uprawnienia dostępu do Key Vault może przypadkowo zablokować serwerowi elastycznemu dostęp do klucza w następujący sposób:

  • Odwoływania uprawnień do pobierania, wyświetlania listy, zawijania klucza i rozpakuj klucz z serwera
  • Usuwanie klucza
  • Usuwanie magazynu kluczy
  • Zmiana reguł zapory sieciowej usługi Key Vault
  • Usuwanie tożsamości zarządzanej użytkownika używanej do szyfrowania na serwerze elastycznym przy użyciu klucza zarządzanego przez klienta w usłudze Microsoft Entra ID

Monitorowanie klucza zarządzanego przez klienta w usłudze Key Vault

Aby monitorować stan bazy danych i włączyć alerty dotyczące utraty dostępu funkcji ochrony przezroczystego szyfrowania danych, skonfiguruj następujące funkcje Azure:

  • Dziennik aktywności: w przypadku niepowodzenia dostępu do klucza klienta w zarządzanym przez klienta usłudze Key Vault wpisy są dodawane do dziennika aktywności. Dostęp można przywrócić tak szybko, jak to możliwe, jeśli utworzysz alerty dla tych zdarzeń.
  • Grupy akcji: zdefiniuj te grupy, aby wysyłać powiadomienia i alerty na podstawie preferencji.

Replika z kluczem zarządzanym przez klienta w usłudze Key Vault

Gdy szyfrujesz wystąpienie serwera elastycznego usługi Azure Database for MySQL przy użyciu klucza zarządzanego przez klienta przechowywanego w usłudze Key Vault, każda nowo utworzona kopia serwera zostanie również zaszyfrowana. Jeśli próbujesz zaszyfrować wystąpienie serwera elastycznego Azure Database for MySQL przy użyciu klucza zarządzanego przez klienta, które ma już replikę, skonfiguruj co najmniej jedną replikę, dodając tożsamość zarządzaną i klucz. Jeśli skonfigurujesz wystąpienie usługi Azure Database for MySQL — serwer elastyczny z kopią zapasową z nadmiarowością geograficzną, musisz skonfigurować replikę z użyciem tożsamości zarządzanej i klucza, do którego ta tożsamość ma dostęp i który znajduje się w regionie sparowanym geograficznie z regionem serwera.

Przywracanie przy użyciu klucza zarządzanego przez klienta w usłudze Key Vault

Podczas przywracania wystąpienia serwera elastycznego usługi Azure Database for MySQL wybierz tożsamość zarządzaną przez użytkownika i klucz, aby zaszyfrować przywracany serwer. Jeśli wystąpienie serwera elastycznego Azure Database for MySQL jest skonfigurowane do korzystania z kopii zapasowych z nadmiarowością geograficzną, należy skonfigurować docelowy serwer przywracania przy użyciu tożsamości zarządzanej oraz klucza, do którego ta tożsamość ma dostęp i który znajduje się w regionie geograficznie sparowanym z serwerem.

Podczas przywracania lub tworzenia repliki do odczytu wykonaj następujące kroki na serwerze źródłowym oraz na serwerze przywróconym lub serwerze repliki:

  • Zainicjuj proces przywracania lub tworzenia repliki do odczytu ze źródłowego wystąpienia elastycznego serwera Azure Database for MySQL.
  • Na przywróconym serwerze lub serwerze repliki ponownie sprawdź poprawność klucza CMK w ustawieniach szyfrowania danych, aby potwierdzić uprawnienia UAMI do klucza.

Note

Nie musisz używać tej samej tożsamości (UAMI) i klucza co na serwerze źródłowym podczas przywracania.