Domyślnie wszystkie dane przechowywane w Cloud Firestore są szyfrowane przy użyciu 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 przepisów związanych z kluczami, które chronią Twoje dane, możesz używać kluczy szyfrowania zarządzanych przez klienta (CMEK) w Cloud Firestore. Zamiast Google zarządzającego kluczami szyfrowania, które chronią Twoje dane, Twoja baza danych Cloud Firestore jest chroniona za pomocą klucza, który kontrolujesz i którym zarządzasz w Cloud Key Management Service (Cloud KMS).
Na tej stronie opisano klucze CMEK dla usługi Cloud Firestore. Więcej informacji o kluczach CMEK, w tym o tym, kiedy i dlaczego warto je włączyć, znajdziesz w tej dokumentacji Cloud KMS:
Instrukcje wykonywania zadań związanych z kluczami CMEK za pomocą Cloud Firestore znajdziesz w artykule Korzystanie z kluczy CMEK.
Funkcje
- Zarządzanie danymi: CMEK umożliwia zarządzanie kluczem KMS. Możesz rotować, 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 Firestore gwarancję jakości usług.
- Możliwość kontroli: jeśli włączysz logowanie kontrolne w Cloud KMS, wszystkie operacje na kluczu będą rejestrowane i widoczne w Cloud Logging.
- Ograniczenia zasad organizacji: możesz użyć ograniczeń zasad organizacji dotyczących kluczy CMEK, aby określić wymagania dotyczące zgodności szyfrowania baz danych Cloud Firestore w 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 koszty operacji 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 są dodatkowym wydatkiem, ale powinny być ogólnie niskie, biorąc pod uwagę oczekiwaną liczbę operacji kryptograficznych.
Korzystanie z bazy danych chronionej kluczem CMEK nie wiąże się z dodatkowymi kosztami Cloud Firestore i nadal obowiązują ceny Cloud Firestore.
Jeśli unieważnisz klucz do bazy danych, koszt przechowywania będzie naliczany na podstawie rozmiaru z ostatniego dnia, w którym klucz był dostępny. Będziesz nadal ponosić koszty przechowywania danych w bazie danych o tym rozmiarze, dopóki baza danych nie zostanie usunięta lub klucz nie stanie się ponownie dostępny.
Co jest chronione za pomocą kluczy CMEK
Gdy tworzysz bazę danych Cloud Firestore chronioną za pomocą klucza CMEK, klucz Cloud KMS jest używany do ochrony danych w spoczynku. Obejmuje to dane przechowywane na dysku lub dysku flash, w tym indeksy i kopie zapasowe. Obowiązują pewne wyjątki. Te typy danych są szyfrowane za pomocą domyślnego szyfrowania Google, a nie klucza CMEK:
- Dane w ruchu lub w pamięci
- Metadane bazy danych
Jak jest obsługiwany stan niedostępności klucza
Operacje szyfrowania i odszyfrowywania nie są wykonywane przy każdym żądaniu danych. Zamiast tego system Cloud Firestore co 5 minut odpytuje Cloud KMS, aby sprawdzić, czy klucz jest nadal dostępny, a jeśli tak, wykonuje operacje szyfrowania i odszyfrowywania.
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 dotyczące czasu życia danych (TTL) i gdy klucz jest niedostępny, zostaną przekroczone czasy wygaśnięcia, usuwanie danych przez TTL zostanie opóźnione do momentu przywrócenia klucza. Jeśli w bazie danych są wykonywane długo trwające operacje, zostaną one dotknięte w następujący sposób:
- Operacje tworzenia indeksu i operacje włączania nowych zasad TTL zostaną zatrzymane. 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żliwiono usłudze 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 odpytywania 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ć do kilku 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 następujące czynności, w zależności od sytuacji:
- ponowne włączenie wyłączonej wersji klucza,
- przywracanie zniszczonej wersji klucza, Przed trwałym zniszczeniem wersja klucza jest planowana do zniszczenia. Klucz możesz przywrócić tylko w okresie, gdy wersja klucza jest zaplanowana do zniszczenia. Nie można przywrócić klucza, który został już trwale zniszczony.
- Ponowne przyznawanie agentowi usługi Cloud Firestore uprawnień dostępu do klucza.
Kwestie dotyczące rotacji kluczy
Gdy wykonasz rotację klucza CMEK, Cloud Firestore ponownie zaszyfruje bazę danych za pomocą najnowszej podstawowej wersji klucza CMEK. Podczas procesu 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 wyłączenia dostępu do bazy danych, ponieważ jest ona zaszyfrowana za pomocą nowej wersji klucza podstawowego.
Możesz też wyświetlić wersje kluczy, które są używane do ochrony bazy danych. Więcej informacji znajdziesz w sekcji Wyświetlanie używanego klucza.
Najważniejsze kwestie dotyczące kluczy zewnętrznych
Gdy używasz klucza Cloud EKM, Google nie ma kontroli nad dostępnością klucza zarządzanego zewnętrznie w zewnętrznym systemie zarządzania kluczami partnera.
Jeśli klucz zarządzany zewnętrznie jest niedostępny, Cloud Firestore nadal obsługuje pełne operacje na bazie danych, używając wersji klucza z pamięci podręcznej, przez maksymalnie godzinę.
Jeśli po godzinie usługa Cloud Firestore nadal nie może połączyć się z
Cloud KMS, Cloud Firestore
w ramach środków ochronnych zaczyna przełączać bazę danych w tryb offline. Wywołania bazy danych będą kończyć się błędem INVALID_ARGUMENT, który zawiera dodatkowe szczegóły.
Więcej informacji o korzystaniu z kluczy zewnętrznych znajdziesz w dokumentacji Cloud External Key Manager.
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 kluczem CMEK tworzy kopię zapasową, szyfruje ją za pomocą wersji klucza podstawowego 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 kopiach zapasowych Cloud Firestore znajdziesz w artykule Tworzenie kopii zapasowej 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óć do bazy danych CMEK z nowo określonym kluczem.
- Przywróć bazę danych bez klucza CMEK, która używa domyślnego szyfrowania Google.
- Przywróć 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 chronionej kluczem CMEK z kopii zapasowej znajdziesz w artykule o przywracaniu 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:
- Sklonuj do bazy danych CMEK z nowo określonym kluczem.
- sklonować do bazy danych bez klucza CMEK, która korzysta z domyślnego szyfrowania Google;
- (Domyślnie) Sklonuj 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 kluczem CMEK znajdziesz w artykule o klonowaniu bazy danych chronionej kluczem CMEK.
Śledzenie kluczyków
Możesz używać śledzenia kluczy, aby wyświetlać zasoby, np. bazy danych Cloud Firestore, które są chronione przez klucz. Więcej informacji o śledzeniu kluczy znajdziesz w artykule Wyświetlanie użycia klucza.
CMEK i dostępność kluczy
Jeśli 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łączonymi kluczami CMEK, wyłączone klucze nie są wyświetlane na liście dostępnych kluczy w konsoli Google Cloud. Jeśli ręcznie wprowadzisz wyłączony klucz, proces tworzenia bazy danych zakończy się niepowodzeniem i błędem
INVALID_ARGUMENT400.
Ograniczenia
Nie możesz zmienić klucza bazy danych chronionej za pomocą klucza CMEK. Możesz rotować, włączać i wyłączać klucze.
Nie możesz włączyć kluczy CMEK w istniejących bazach danych. Klucze CMEK możesz włączyć tylko w nowych bazach danych i musisz to zrobić podczas tworzenia bazy danych. Aby przenieść dane z dotychczasowej bazy danych, która nie jest chroniona kluczem CMEK, do bazy danych chronionej kluczem CMEK, wyeksportuj dane, a następnie zaimportuj je do nowej bazy danych chronionej kluczem CMEK. Możesz też przywrócić lub sklonować dane z bazy danych bez kluczy CMEK do bazy danych z kluczami CMEK.
Cloud Firestore obsługuje ograniczoną liczbę baz danych chronionych kluczami CMEK.