Domyślnie wszystkie dane w spoczynku w Cloud Firestore są szyfrowane za pomocą domyślnego szyfrowania Google. Cloud Firestore obsługuje i zarządza tym szyfrowaniem za Ciebie bez konieczności podejmowania 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, Twoja baza danych Cloud Firestore jest chroniona za pomocą klucza, którym zarządzasz i który kontrolujesz w Cloud Key Management Service (Cloud KMS).
Na tej stronie znajdziesz opis kluczy CMEK w Cloud Firestore. Więcej informacji o kluczach CMEK, w tym o tym, kiedy i dlaczego warto je włączyć, znajdziesz w dokumentacji Cloud KMS:
Instrukcje wykonywania zadań związanych z kluczami CMEK za pomocą Cloud Firestore znajdziesz w artykule Używanie kluczy CMEK.
Funkcje
- Kontrola danych: klucz CMEK umożliwia zarządzanie kluczem KMS. Możesz obracać, wyłączać i niszczyć 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ść przeprowadzania audytów: jeśli włączysz logowanie audytów w Cloud KMS, wszystkie operacje na kluczu będą rejestrowane i widoczne w Cloud Logging.
- Ograniczenia zasad organizacji: możesz używać ograniczeń zasad organizacji CMEK, aby określić wymagania dotyczące zgodności szyfrowania w przypadku Cloud Firestorebaz danych w swojej organizacji.
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 operację są naliczane, gdy Cloud Firestore prosi klucz Cloud KMS o wykonanie operacji szyfrowania lub odszyfrowywania. Operacja szyfrowania/odszyfrowywania 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ę oczekiwaną liczbę operacji kryptograficznych generowanych przez Cloud Firestore. Koszty Cloud Audit Logs są dodatkowym wydatkiem, ale powinny być na ogół niskie ze względu na oczekiwaną liczbę operacji kryptograficznych.
Korzystanie z bazy danych chronionej przez klucz 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 zostanie naliczony na podstawie rozmiaru z ostatniego dnia, w którym klucz był dostępny. Do momentu usunięcia bazy danych lub ponownego udostępnienia klucza nadal 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. Obejmuje to dane przechowywane na dysku lub pamięci flash, w tym indeksy i kopie zapasowe. 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 deszyfrowania nie są wykonywane w przypadku każdego żądania danych. Zamiast tego system Cloud Firestore co 5 minut wysyła do Cloud KMS zapytanie, 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, zwracają 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) i jeśli w czasie, gdy klucz jest niedostępny, zostaną przekroczone jakiekolwiek czasy 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:
- Operacje importowania lub eksportowania danych przestaną być wykonywane i zostaną oznaczone jako
Failed
. Jeśli klucz zostanie przywrócony, operacje zakończone niepowodzeniem nie zostaną ponowione. - Operacje tworzenia indeksu i operacje umożliwiające stosowanie nowych zasad TTL zostaną wstrzymane. Zatrzymane operacje zostaną ponowione, jeśli klucz zostanie przywrócony.
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.:
- Wyłączenie lub zniszczenie używanej wersji klucza. Zachowaj ostrożność podczas niszczenia wersji klucza, ponieważ może to spowodować nieodwracalną utratę danych.
- Usuwanie uprawnień dostępu do klucza z konta usługi Cloud Firestore.
Jeśli klucz zostanie przywrócony, operacja sondowania wykryje, że jest on ponownie dostępny. Dostęp zostanie ponownie włączony, zwykle w ciągu kilku minut, ale w rzadkich przypadkach może to potrwać kilka godzin. Pamiętaj, że niektóre operacje na kluczach Cloud KMS, takie jak wyłączanie lub niszczenie 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. Zanim wersja klucza zostanie trwale zniszczona, jest zaplanowana do zniszczenia. Klucz można 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 uprawnień do dostępu do klucza.Cloud Firestore
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 zarówno stara, jak i nowa wersja klucza powinny być dostępne. Po zakończeniu ponownego szyfrowania wyłączenie lub usunięcie starych wersji klucza CMEK nie spowoduje wyłączenia dostępu do bazy danych, ponieważ jest ona zaszyfrowana przy użyciu nowej wersji podstawowej 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 z możliwie największą dokładnością 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 FAILED_PRECONDITION
zawierający dodatkowe szczegóły.
Więcej informacji o korzystaniu z kluczy zewnętrznych znajdziesz w dokumentacji zewnętrznego menedżera kluczy Cloud.
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 Firestorekopiach zapasowych znajdziesz w artykule Tworzenie kopii zapasowych i przywracanie danych.
Baza danych przywrócona z kopii zapasowej domyślnie korzysta z 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 bez klucza CMEK, która korzysta z domyślnego szyfrowania Google.
- przywrócić bazę 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 bazy danych Cloud Firestore zabezpieczonej za pomocą klucza CMEK z kopii zapasowej znajdziesz w artykule Przywracanie bazy danych zabezpieczonej 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 zmienić Cloud Firestore ustawienia odzyskiwania do określonego momentu (PITR) w bazie danych z włączonym kluczem CMEK, nawet jeśli klucz jest niedostępny, ponieważ ustawienia PITR to metadane bazy danych, które nie są szyfrowane za pomocą CMEK.
- 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 wyświetli się błąd
FAILED_PRECONDITION
400.
Ograniczenia
- Nie możesz zmienić klucza w przypadku bazy danych chronionej za pomocą klucza CMEK. Możesz obracać, włączać i wyłączać klucze.
- Bazy danych chronione przez CMEK obsługują Key Visualizer tylko w przypadku danych encji i dokumentów, a nie danych indeksu.
- Nie możesz 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ć dane z bazy danych bez klucza CMEK do bazy danych z kluczem CMEK.
- Cloud Firestore obsługuje ograniczoną liczbę baz danych chronionych kluczem CMEK.
- Nie obsługujemy ochrony CMEK w przypadku integracji z Cloud Functions (1 generacji). Jeśli chcesz korzystać z ochrony CMEK, użyj Cloud Run funkcji wyzwalanych przez Firestore (2 generacji).