Domyślnie wszystkie dane przechowywane w Cloud Firestore w trybie zgodności z MongoDB są szyfrowane za pomocą domyślnego szyfrowania Google. Cloud Firestore w trybie zgodności z MongoDB obsługuje i zarządza tym szyfrowaniem bez dodatkowych działań z Twojej strony.
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 Cloud Firestore w trybie zgodności z MongoDB. Zamiast Google zarządzać kluczami szyfrowania, które chronią Twoje dane, baza danych Cloud Firestore z kompatybilnością z MongoDB jest chroniona za pomocą klucza, którym zarządzasz w Cloud Key Management Service (Cloud KMS).
Na tej stronie opisano klucze CMEK w przypadku Firestore w trybie zgodności z MongoDB. 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 kluczem CMEK w Cloud Firestore w trybie zgodności z MongoDB znajdziesz w artykule Używanie klucza CMEK.
Funkcje
- Kontrola danych: klucz CMEK umożliwia zarządzanie kluczem KMS. Możesz obracać, wyłączać i usuwać klucz używany do szyfrowania danych w spoczynku w bazie danych Cloud Firestore w trybie zgodności z MongoDB.
- Wydajność: klucze CMEK nie mają wpływu na Cloud Firestoregwarancję 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 CMEK, aby określić wymagania dotyczące zgodności szyfrowania w przypadku baz danych Cloud Firestore w trybie zgodności z MongoDB w Twojej 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 operacje są naliczane, gdy Cloud Firestore w trybie zgodności z MongoDB poprosi 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 w trybie zgodności z MongoDB. Koszty Cloud Audit Logs są dodatkowym wydatkiem, ale powinny być niskie ze względu na oczekiwaną liczbę operacji kryptograficznych.
Korzystanie z bazy danych chronionej przez CMEK nie wiąże się z dodatkowymi kosztami Cloud Firestore w trybie zgodności z MongoDB, a cennik Cloud Firestore w trybie zgodności z MongoDB nadal obowiązuje.
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 będziesz ponosić koszty przechowywania danych w bazie o tym rozmiarze.
Co jest chronione przez CMEK
Gdy tworzysz bazę danych Cloud Firestore w trybie zgodności z MongoDB chronioną przez 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 w trybie zgodności z MongoDB odpytuje Cloud KMS co 5 minut, 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 trybie zgodności z MongoDB, 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 w bazie danych obowiązują zasady dotyczące czasu życia danych (TTL), a w czasie niedostępności klucza zostaną przekroczone 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:
- Operacje tworzenia indeksu i operacje umożliwiające stosowanie nowych zasad TTL przestaną być wykonywane. Zatrzymane operacje zostaną ponowione, jeśli klucz zostanie przywrócony.
Klucze są uznawane za niedostępne w każdej sytuacji, która celowo uniemożliwia Firestore w trybie zgodności z MongoDB 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.
- Usunięcie uprawnień dostępu do klucza z konta usługi Cloud Firestore w trybie zgodności z MongoDB.
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łączenie lub zniszczenie klucza, mogą potrwać do 3 godzin. Cloud Firestore w trybie zgodności z MongoDB 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 planowane jej zniszczenie. 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 w trybie zgodności z MongoDB ponownie zaszyfruje bazę danych za pomocą najnowszej podstawowej wersji klucza CMEK. Podczas ponownego szyfrowania pozostaw dostępne zarówno wcześniejszą, jak i nową wersję 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 w trybie zgodności z MongoDB 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 w trybie zgodności z MongoDB nadal nie może połączyć się z Cloud KMS, 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.
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 w trybie zgodności z MongoDB chroniona przez CMEK tworzy kopię zapasową, szyfruje ją za pomocą głównej wersji klucza używanej w momencie tworzenia kopii zapasowej.
Cloud Firestore w trybie zgodności z MongoDB 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 w trybie zgodności z MongoDB 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, która nie korzysta z klucza CMEK i używa 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 w trybie zgodności z MongoDB 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 z ochroną CMEK i zgodnością z MongoDB znajdziesz w artykule Przywracanie bazy danych chronionej za pomocą klucza 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) Klonuj 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 w trybie zgodności z MongoDB znajdziesz w artykule Klonowanie bazy danych. Więcej informacji o klonowaniu bazy danych Cloud Firestore z zgodnością z MongoDB zabezpieczonej za pomocą klucza CMEK znajdziesz w artykule Klonowanie bazy danych zabezpieczonej za pomocą klucza CMEK.
Śledzenie kluczy
Śledzenie kluczy umożliwia wyświetlanie zasobów, np. baz danych Cloud Firestore w trybie zgodności z MongoDB, 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
INVALID_ARGUMENT
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.
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ć 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.