Klucze szyfrowania zarządzane przez klienta (CMEK)

Domyślnie wszystkie dane w spoczynku w Cloud Firestore są szyfrowane przy użyciu domyślnego szyfrowania Google. Cloud Firestore obsługuje i zarządza tym szyfrowaniem bez konieczności podejmowania przez Ciebie dodatkowych działań.

Jeśli masz konkretne wymagania dotyczące zgodności z przepisami lub regulacjami związane z kluczami, które chronią Twoje dane, możesz używać kluczy szyfrowania zarządzanych przez klienta (CMEK) w przypadku Cloud Firestore. Zamiast Google zarządzać kluczami szyfrowania, które chronią Twoje dane, Cloud Firestorebaza danych jest chroniona za pomocą klucza, którym zarządzasz w Cloud Key Management Service (Cloud KMS).

Na tej stronie opisujemy klucze CMEK w przypadku Cloud Firestore. Więcej informacji o CMEK, w tym o tym, kiedy i dlaczego warto ją włączyć, znajdziesz w tej dokumentacji Cloud KMS:

Instrukcje wykonywania zadań związanych z kluczami CMEK za pomocą Cloud Firestore znajdziesz w artykule Używanie kluczy CMEK.

Funkcje

Ceny

Cloud KMS nalicza opłaty za koszt klucza i wszelkie operacje kryptograficzne wykonywane przy jego użyciu. Więcej informacji znajdziesz w cenniku Cloud KMS.

Opłaty za operacje są naliczane, gdy Cloud Firestore prosi klucz Cloud KMS o wykonanie operacji szyfrowania lub odszyfrowywania. Operacja szyfrowania lub odszyfrowywania za pomocą klucza zarządzanego przez klienta jest wykonywana co 5 minut i nie jest synchronizowana z żądaniami bazy danych. Koszty są zwykle niskie, biorąc pod uwagę oczekiwaną liczbę operacji kryptograficznych generowanych przez Cloud Firestore. Koszty logów kontrolnych Cloud to dodatkowy wydatek, ale biorąc pod uwagę oczekiwaną liczbę operacji kryptograficznych, powinny być one na ogół niskie.

Korzystanie z bazy danych chronionej przez CMEK nie wiąże się z dodatkowymi Cloud Firestore kosztami, a Cloud Firestore cennik pozostaje bez zmian.

Jeśli cofniesz klucz do bazy danych, koszt przechowywania będzie naliczany na podstawie rozmiaru bazy danych w ostatnim dniu, w którym klucz był dostępny. Do momentu usunięcia bazy danych lub ponownego udostępnienia klucza będziesz ponosić koszty przechowywania danych w bazie danych o tym rozmiarze.

Co jest chronione przez CMEK

Gdy tworzysz bazę danych chronioną przez Cloud Firestore CMEK, klucz Cloud KMS jest używany do ochrony danych w spoczynku. Dotyczy to danych przechowywanych na dysku lub pamięci flash, w tym indeksów i kopii zapasowych. Obowiązują pewne wyjątki. Te typy danych są szyfrowane domyślnym szyfrowaniem Google, a nie kluczem CMEK:

  • Dane podczas przesyłania lub w pamięci
  • Metadane bazy danych

Jak jest obsługiwany stan niedostępnego klucza

Operacje szyfrowania i odszyfrowywania nie są wykonywane w przypadku każdego żądania danych. Zamiast tego system Cloud Firestore co 5 minut odpytuje Cloud KMS, aby sprawdzić, czy klucz jest nadal dostępny, a następnie wykonuje operacje szyfrowania i odszyfrowywania, jeśli klucz jest dostępny.

Jeśli system wykryje, że klucz jest niedostępny, w ciągu 10 minut wszystkie kolejne wywołania bazy danych Cloud Firestore, w tym odczyty, zapisy i zapytania, zwrócą błąd INVALID_ARGUMENT z tym komunikatem:

The customer-managed encryption key required by the requested
resource is not accessible.

Jeśli baza danych ma zasady czasu życia (TTL), a w czasie niedostępności klucza zostaną przekroczone jakiekolwiek terminy wygaśnięcia, usuwanie danych przez TTL zostanie opóźnione do czasu przywrócenia klucza. Jeśli w bazie danych trwają długotrwałe operacje, będą one miały następujący wpływ:

Klucze są uznawane za niedostępne w każdej sytuacji, w której celowo uniemożliwia sięCloud Firestore dostęp do klucza. Obejmuje to m.in.:

Jeśli klucz zostanie przywrócony, operacja sondowania wykryje, że jest on ponownie dostępny. Dostęp zostanie ponownie włączony. Zwykle trwa to kilka minut, ale w rzadkich przypadkach może potrwać kilka godzin. Pamiętaj, że niektóre operacje na kluczach Cloud KMS, takie jak wyłączenie lub zniszczenie klucza, mogą potrwać do 3 godzin. Cloud Firestore nie wykrywa żadnych zmian, dopóki nie zostaną one wprowadzone w Cloud KMS.

Przywrócenie klucza obejmuje w zależności od sytuacji:

  • Ponowne włączanie wyłączonej wersji klucza.
  • Przywracanie zniszczonej wersji klucza. Przed trwałym zniszczeniem wersja klucza jest zaplanowana do zniszczenia. Klucz możesz przywrócić tylko w okresie, w którym wersja klucza jest zaplanowana do zniszczenia. Nie można przywrócić klucza, który został już trwale zniszczony.
  • Ponowne przyznanie agentowi usługi Cloud Firestore uprawnień dostępu do klucza.

Kwestie związane z rotacją kluczy

Gdy wykonasz rotację klucza CMEK, Cloud Firestore ponownie zaszyfruje bazę danych za pomocą najnowszej podstawowej wersji klucza CMEK. Podczas ponownego szyfrowania zachowaj dostępność zarówno wcześniejszej, jak i nowej wersji klucza. Po zakończeniu ponownego szyfrowania wyłączenie lub usunięcie wcześniejszych wersji klucza CMEK nie spowoduje utraty dostępu do bazy danych, ponieważ jest ona zaszyfrowana za pomocą nowej podstawowej wersji klucza.

Możesz też wyświetlić wersje klucza, które są używane do ochrony bazy danych. Więcej informacji znajdziesz w artykule Wyświetlanie używanego klucza.

Klucze zewnętrzne

Gdy używasz klucza Cloud EKM, Google nie ma kontroli nad dostępnością zarządzanego zewnętrznie klucza w systemie partnera zarządzającego zewnętrznymi kluczami.

Jeśli klucz zarządzany zewnętrznie jest niedostępny, Cloud Firestore nadal obsługuje pełne operacje na bazie danych przy użyciu wersji klucza w pamięci podręcznej przez maksymalnie godzinę.

Jeśli po godzinie Cloud Firestore nadal nie może połączyć się z Cloud KMS, Cloud Firestore zaczyna wyłączać bazę danych w ramach środka ochronnego. Wywołania bazy danych zakończą się niepowodzeniem i zostanie wyświetlony błąd INVALID_ARGUMENT zawierający dodatkowe szczegóły.

Więcej informacji o używaniu kluczy zewnętrznych znajdziesz w dokumentacji zewnętrznego menedżera kluczy Cloud.

Cloud Firestore

Tworzenie i przywracanie kopii zapasowej

Kopia zapasowa korzysta z tego samego mechanizmu szyfrowania co baza danych, z której została utworzona. Gdy baza danych Cloud Firestore chroniona przez CMEK tworzy kopię zapasową, szyfruje ją za pomocą podstawowej wersji klucza używanej w momencie tworzenia kopii zapasowej.

Cloud Firestore tworzy pierwszą kopię zapasową bazy danych CMEK po upływie 24 godzin od momentu włączenia harmonogramów tworzenia kopii zapasowych.

Więcej informacji o Cloud Firestore kopiach zapasowych znajdziesz w artykule Tworzenie kopii zapasowych i przywracanie danych.

Baza danych przywrócona z kopii zapasowej domyślnie używa tego samego mechanizmu szyfrowania co kopia zapasowa. Podczas przywracania bazy danych możesz określić inny typ szyfrowania na jeden z tych sposobów:

  • Przywróć bazę danych CMEK z nowo określonym kluczem.
  • Przywróć bazę danych, która nie korzysta z klucza CMEK i używa domyślnego szyfrowania Google.
  • Przywróć bazę danych, która używa tego samego szyfrowania co kopia zapasowa.

Więcej informacji o przywracaniu Cloud Firestorebazy danych z kopii zapasowej znajdziesz w artykule Przywracanie danych z kopii zapasowej bazy danych. Więcej informacji o przywracaniu bazy danych Cloud Firestore chronionej kluczem CMEK z kopii zapasowej znajdziesz w artykule Przywracanie bazy danych chronionej kluczem CMEK.

Klonuj

Domyślnie baza danych sklonowana z innej bazy danych używa tego samego mechanizmu szyfrowania co źródłowa baza danych. Podczas klonowania bazy danych możesz określić inny typ szyfrowania na jeden z tych sposobów:

  • Klonowanie do bazy danych CMEK z nowo określonym kluczem.
  • Klonowanie do bazy danych bez klucza CMEK, która korzysta z domyślnego szyfrowania Google.
  • (Domyślnie) Klonowanie do bazy danych, która używa tego samego szyfrowania co źródłowa baza danych.

Więcej informacji o klonowaniu bazy danych Cloud Firestore znajdziesz w artykule Klonowanie bazy danych. Więcej informacji o klonowaniu bazy danych Cloud Firestore chronionej za pomocą klucza CMEK znajdziesz w artykule Klonowanie bazy danych chronionej za pomocą klucza CMEK.

Śledzenie kluczy

Możesz używać śledzenia kluczy, aby wyświetlać zasoby, np. Cloud Firestorebazy danych, które są chronione przez klucz. Więcej informacji o śledzeniu kluczy znajdziesz w artykule Wyświetlanie użycia klucza.

Dostępność kluczy CMEK

Gdy klucze są niedostępne lub wyłączone, w bazach danych obsługujących klucze CMEK mogą wystąpić te zachowania:

  • Możesz usunąć bazę danych CMEK, która ma niedostępne klucze.

  • Gdy tworzysz bazę danych z włączonym CMEK, wyłączone klucze nie są widoczne na liście dostępnych kluczy w konsoli Google Cloud. Jeśli ręcznie wpiszesz wyłączony klucz, proces tworzenia bazy danych zakończy się niepowodzeniem i pojawi się błąd 400.INVALID_ARGUMENT

Ograniczenia

  • Nie możesz zmienić klucza w przypadku bazy danych chronionej za pomocą klucza CMEK. Możesz obracać, włączać i wyłączać klucze.

  • Nie można włączyć klucza CMEK w istniejących bazach danych. Klucze CMEK można włączyć tylko w przypadku nowych baz danych. Musisz to zrobić podczas tworzenia bazy danych. Aby przenieść dane z dotychczasowej bazy danych bez klucza CMEK do bazy danych chronionej za pomocą klucza CMEK, wyeksportuj dane, a następnie zaimportuj je do nowej bazy danych chronionej za pomocą klucza CMEK. Możesz też przywrócić lub sklonować dane z bazy danych bez klucza CMEK do bazy danych z kluczem CMEK.

  • Cloud Firestore obsługuje ograniczoną liczbę baz danych chronionych kluczem CMEK.

Co dalej?