Domyślnie wszystkie dane w spoczynku w Cloud Firestore są szyfrowane za pomocą domyślnego szyfrowania Google. Cloud Firestore obsługuje to szyfrowanie i zarządza nim bez konieczności podejmowania przez Ciebie dodatkowych działań.
Jeśli masz określone wymagania dotyczące zgodności lub przepisy dotyczące kluczy szyfrowania, które chronią Twoje dane, możesz używać kluczy szyfrowania zarządzanych przez klienta (CMEK) do Cloud Firestore. Zamiast zarządzać kluczami szyfrowania, które chronią Twoje dane, Google chroni Twoją bazę danych Cloud Firestore za pomocą klucza, którym zarządzasz i którym zarządzasz w Cloud Key Management Service (Cloud KMS).
Ta strona zawiera informacje o kluczach CMEK w usłudze Cloud Firestore. Więcej informacji o kluczach szyfrowania zarządzanych przez klienta (CMEK), w tym o tym, kiedy i dlaczego warto je włączyć, znajdziesz w tej dokumentacji Cloud KMS:
- Klucze szyfrowania zarządzane przez klienta (CMEK)
- Sprawdzone metody dotyczące korzystania z kluczy CMEK
Instrukcje wykonywania zadań związanych z CMEK w Cloud Firestore znajdziesz w artykule Korzystanie z kluczy CMEK.
Funkcje
- Kontrola danych: klucz CMEK umożliwia zarządzanie kluczem KMS. Możesz zastąpić, wyłączyć i zniszczyć klucz używany do szyfrowania danych w spoczynku w bazie danych Cloud Firestore.
- Wydajność: klucze CMEK nie mają wpływu na Cloud Firestoregwarancję jakości usług.
- Możliwość weryfikacji: jeśli włączysz rejestrowanie działań w Cloud KMS, wszystkie operacje na kluczu są rejestrowane i widoczne w Cloud Logging.
- Ograniczenia zasad organizacji: możesz użyć ograniczeń zasad organizacji dotyczących klucza szyfrowania zarządzanego przez klienta, aby określić wymagania dotyczące zgodności z szyfrowaniem w bazach danych Cloud Firestore w Twojej organizacji.
Ceny
Cloud KMS pobiera opłaty za koszt klucza i wszelkie operacje kryptograficzne wykonywane za jego pomocą. Więcej informacji znajdziesz w cenniku Cloud KMS.
Obciążamy Cię kosztami operacji, gdy Cloud Firestore poprosi klucz Cloud KMS o przeprowadzenie operacji szyfrowania lub odszyfrowania. Operacja szyfrowania/odszyfrowania za pomocą klucza zarządzanego przez klienta jest wykonywana co 5 minut i nie jest synchronizowana z żądaniami bazy danych. Koszty są zazwyczaj niskie, biorąc pod uwagę spodziewaną liczbę operacji kryptograficznych generowanych przez Cloud Firestore. Koszty logów kontrolnych w chmurze to dodatkowy wydatek, ale biorąc pod uwagę spodziewaną liczbę operacji kryptograficznych, powinny być one generalnie niskie.
Korzystanie z bazy danych chronionej za pomocą klucza szyfrowania zarządzanego przez klienta (CMEK) nie wiąże się z dodatkowymi kosztami Cloud Firestore, a obowiązujące ceny Cloud Firestore pozostają bez zmian.
Jeśli cofniesz klucz do bazy danych, koszt przechowywania będzie naliczany na podstawie rozmiaru bazy danych z ostatniego dnia, w którym klucz był dostępny. Będziesz nadal ponosić koszty przechowywania danych w przypadku bazy danych o takim rozmiarze, dopóki nie zostanie ona usunięta lub klucz nie stanie się ponownie dostępny.
Co jest chronione przy użyciu CMEK
Gdy tworzysz bazę danych Cloud Firestore chronioną za pomocą klucza CMEK, klucz Cloud KMS jest używany do ochrony danych w spoczynku. Dotyczy to danych przechowywanych na dysku lub dysku 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 w ruchu lub w pamięci
- Metadane bazy danych
Jak obsługiwany jest stan niedostępności klucza
Operacje szyfrowania i odszyfrowania nie są wykonywane w przypadku każdego żądania danych. Zamiast tego system Cloud Firestore co 5 minut sprawdza w Cloud KMS, czy klucz jest nadal dostępny, a jeśli tak, wykonuje operacje szyfrowania i odszyfrowania.
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 FAILED_PRECONDITION
z komunikatem The customer-managed encryption key required by the requested
resource is not accessible
.
Jeśli baza danych ma zasady dotyczące czasu życia danych (TTL), a czas ważności przekroczy się, gdy klucz jest niedostępny, usunięcie danych z powodu TTL zostanie opóźnione do czasu przywrócenia klucza. Jeśli w bazie danych są w toku długotrwałe operacje, będą one miały następujące konsekwencje:
- Operacje importowania lub eksportowania danych przestaną się wykonywać i zostaną oznaczone jako
Failed
. Jeśli klucz zostanie przywrócony, operacje, które zakończyły się niepowodzeniem, nie zostaną powtórzone. - Operacje tworzenia indeksu oraz operacje włączające nowe zasady TTL przestaną być wykonywane. Zatrzymane operacje zostaną powtórzone, jeśli klucz zostanie przywrócony.
Klucze są uważane za niedostępne w każdej sytuacji, w której celowo nie zezwala sięCloud Firestore na dostęp do klucza. Obejmuje to m.in.:
- Wyłącz lub zniszcz używaną wersję klucza. Zachowaj ostrożność podczas niszczenia wersji klucza, ponieważ może to spowodować nieodwracalną utratę danych.
- Usunięcie uprawnienia do dostępu do klucza z konta usługi Cloud Firestore.
Jeśli klucz zostanie przywrócony, operacja sondowania wykryje, że klucz jest ponownie dostępny. Dostęp jest ponownie włączany zwykle w ciągu kilku minut, ale w wyjątkowych przypadkach może to potrwać do kilku godzin. Pamiętaj, że niektóre operacje na kluczach Cloud KMS, takie jak wyłączenie lub zniszczenie klucza, mogą być propagowane przez maksymalnie 3 godziny. Cloud Firestore nie wykrywa żadnych zmian, dopóki nie zostaną one zastosowane w Cloud KMS.
W zależności od sytuacji przywrócenie klucza obejmuje:
- Włączanie ponownie wyłączonej wersji klucza.
- Przywracanie zniszczonej wersji klucza. Zanim wersja klucza zostanie trwale zniszczona, jest planowana do zniszczenia. Klucz możesz przywrócić tylko w okresie, w którym zaplanowano zniszczenie jego wersji. Nie można przywrócić klucza, który został trwale usunięty.
- Ponownie przyznajCloud Firestore agentowi usługi uprawnienia do dostępu do klucza.
Ważne kwestie dotyczące rotacji kluczy
Gdy wykonasz rotację klucza CMEK, Cloud Firestore ponownie szyfruje bazę danych za pomocą najnowszej podstawowej wersji klucza CMEK. Podczas procesu ponownego szyfrowania miej dostępną zarówno starą, jak i nową wersję klucza. Po zakończeniu ponownego szyfrowania wyłączenie lub usunięcie starych wersji klucza CMEK nie spowoduje utraty dostępu do bazy danych, ponieważ jest ona zaszyfrowana za pomocą nowej wersji klucza głównego.
Możesz też wyświetlić wersje klucza używane do ochrony bazy danych. Więcej informacji znajdziesz w artykule Wyświetlanie używanego klucza.
Informacje o kluczach zewnętrznych
Jeśli używasz klucza Cloud EKM, Google nie ma kontroli nad dostępnością Twojego klucza zarządzanego zewnętrznie w zewnętrznym systemie zarządzania kluczami partnera.
Jeśli klucz zarządzany zewnętrznie jest niedostępny, usługa Cloud Firestore będzie nadal obsługiwać pełne operacje na bazie danych z możliwie największą dokładnością przez maksymalnie godzinę.
Po upływie godziny, jeśli Cloud Firestore nadal nie może połączyć się z Cloud KMS, Cloud Firestore rozpocznie przenoszenie bazy danych do trybu offline jako środek ochronny. Wywołania bazy danych zakończą się błędem FAILED_PRECONDITION
, który zawiera dodatkowe informacje.
Więcej informacji o używaniu kluczy zewnętrznych znajdziesz w dokumentacji zewnętrznego menedżera kluczy Cloud.
Tworzenie i przywracanie kopii zapasowej
Kopia zapasowa używa tego samego mechanizmu szyfrowania co baza danych, z której została utworzona. Gdy baza danych Cloud Firestore chroniona za pomocą klucza CMEK tworzy kopię zapasową, szyfruje ją za pomocą wersji klucza głównego użytego w momencie jej tworzenia.
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 kopiach zapasowych Cloud Firestore znajdziesz w artykule Tworzenie kopii zapasowych i przywracanie danych.
Baza danych przywrócona z kopii zapasowej używa domyślnie 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óć dane do bazy danych CMEK za pomocą nowo określonego klucza.
- przywróć do bazy danych, która nie używa klucza CMEK i korzysta z domyślnego szyfrowania Google.
- Przywróć dane do bazy danych, która używa tego samego szyfrowania co kopia zapasowa.
Więcej informacji o przywracaniu bazy danych Cloud Firestore z kopii zapasowej znajdziesz w artykule Przywracanie danych z kopii zapasowej bazy danych. Więcej informacji o przywracaniu z kopii zapasowej bazy danych Cloud Firestore zabezpieczonej za pomocą klucza CMEK znajdziesz w artykule Przywracanie bazy danych zabezpieczonej za pomocą klucza CMEK.
Śledzenie klawiszy
Śledzenie kluczy umożliwia wyświetlanie zasobów, np. baz danych Cloud Firestore, które są chronione przez klucz. Więcej informacji o śledzeniu kluczy znajdziesz w artykule Wyświetlanie użycia klucza.
Klucze CMEK i dostępność kluczy
Gdy klucze są niedostępne lub wyłączone, pamiętaj o tych zachowaniach, które mogą wystąpić w bazach danych obsługujących klucze CMEK:
- Ustawienia odzyskiwania do określonego momentu Cloud Firestore w bazie danych z włączonym CMEK możesz zmienić, nawet jeśli klucz jest niedostępny, ponieważ ustawienia PITR to metadane bazy danych, które nie są szyfrowane przez CMEK.
- Możesz usunąć bazę danych CMEK, która zawiera 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 z błędem
FAILED_PRECONDITION
400.
Ograniczenia
- Nie możesz zmienić klucza bazy danych zabezpieczonej za pomocą klucza CMEK. Możesz obracać klawisze, włączać i wyłączać je.
- Bazy danych chronione za pomocą CMEK obsługują Key Visualizer tylko w przypadku danych encji i dokumentów, a nie danych indeksu.
- Nie możesz włączyć CMEK w istniejących bazach danych. Kluczy CMEK możesz używać tylko w przypadku nowych baz danych. Musisz je włączyć podczas tworzenia bazy danych. Aby przenieść dane z istniejącej 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ć dane z bazy danych bez klucza CMEK do bazy danych z kluczem CMEK.
- Cloud Firestore obsługuje ograniczoną liczbę baz danych chronionych za pomocą kluczy CMEK.
- Nie obsługujemy ochrony CMEK w przypadku integracji z Cloud Functions (1 generacji). Jeśli chcesz korzystać z ochrony CMEK, użyj Cloud Runfunkcji aktywatorów Firestore (2 generacji).