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 określone wymagania dotyczące zgodności lub regulacji związane z kluczami chroniącymi Twoje dane, możesz używać kluczy szyfrowania zarządzanych przez klienta (CMEK) dla Cloud Firestore. Zamiast Google zarządzania kluczami szyfrowania chroniącymi Twoje dane, Twoja Cloud Firestore baza danych jest chroniona za pomocą klucza, który kontrolujesz i którym zarządzasz w Cloud Key Management Service (Cloud KMS).
Na tej stronie opisujemy klucze CMEK w 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 w Cloud Firestore znajdziesz w artykule Używanie kluczy CMEK.
Funkcje
- Kontrola danych: klucze CMEK umożliwiają zarządzanie kluczem KMS. Możesz obracać, wyłączać i niszczyć klucz używany do szyfrowania danych w spoczynku w swojej Cloud Firestore bazie danych.
- Wydajność: klucze CMEK nie mają wpływu na Cloud Firestore umowę SLA.
- Możliwość audytu: jeśli włączysz logowanie audytu 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 baz danychCloud Firestore 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 artykule Ceny Cloud KMS.
Opłaty za operacje 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 zsynchronizowana z żądaniami bazy danych. Koszty są na ogół niskie, ze względu na oczekiwaną liczbę operacji kryptograficznych generowanych przez Cloud Firestore. Koszty logów kontrolnych Cloud są dodatkowym wydatkiem, ale też powinny być na ogół niskie ze względu na oczekiwaną liczbę operacji kryptograficznych.
Za korzystanie z bazy danych chronionej przez klucze CMEK nie są naliczane żadne dodatkowe opłaty za Cloud Firestore, a ceny Cloud Firestore nadal obowiązują.
Jeśli cofniesz klucz do bazy danych, opłata za przechowywanie będzie naliczana na podstawie rozmiaru danych w ostatnim dniu, w którym klucz był dostępny. Opłaty za przechowywanie będą nadal naliczane w przypadku bazy danych o tym rozmiarze, dopóki baza danych nie zostanie usunięta lub klucz nie będzie ponownie dostępny.
Co jest chronione przez klucze CMEK
Gdy tworzysz bazę danych chronioną przez klucze CMEK Cloud Firestore, 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 przy użyciu domyślnego szyfrowania Google, a nie klucza CMEK:
- Dane w ruchu lub w pamięci
- Metadane bazy danych
Jak obsługiwany jest stan niedostępnego klucza
Operacje szyfrowania i odszyfrowywania nie są wykonywane przy każdym żądaniu danych. Zamiast tego system Cloud Firestore co 5 minut wysyła zapytanie do 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 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, przekroczone zostaną jakiekolwiek czasy wygaśnięcia, usunięcie danych przez TTL zostanie opóźnione do momentu przywrócenia klucza. Jeśli w bazie danych są wykonywane długotrwałe operacje, będą one miały następujący wpływ:
- Operacje importu lub eksportu danych zostaną wstrzymane i oznaczone jako
Failed. W przypadku przywrócenia klucza nie zostaną ponowione operacje, które się nie powiodły. - Operacje tworzenia indeksu i operacje włączania nowych zasad TTL zostaną wstrzymane. W przypadku przywrócenia klucza wstrzymane operacje zostaną ponowione.
Klucze są uznawane za niedostępne w każdej sytuacji, która celowo uniemożliwia Cloud Firestore dostęp do klucza. Obejmuje to:
- Wyłączenie lub zniszczenie używanej wersji klucza. Zachowaj ostrożność podczas niszczenia wersji klucza, ponieważ to może 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 zostanie ponownie włączony, zwykle w ciągu kilku minut, ale w rzadkich przypadkach może to potrwać kilka godzin. Pamiętaj, że propagacja niektórych operacji na kluczach Cloud KMS , takich jak wyłączenie lub zniszczenie klucza, może 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łączenie wyłączonej wersji klucza.
- Przywracanie zniszczonej wersji klucza. Zanim wersja klucza zostanie trwale zniszczona, jest zaplanowana 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 przyznanie agentowi usługi Cloud Firestore uprawnienia do dostępu do klucza.
Kwestie związane z rotacją kluczy
Gdy obrócisz klucz CMEK, Cloud Firestore ponownie zaszyfruje bazę danych za pomocą najnowszej podstawowej wersji klucza CMEK. Podczas ponownego szyfrowania zachowaj dostępność zarówno starej, jak i nowej wersji klucza. 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 za pomocą nowej podstawowej wersji klucza.
Możesz też wyświetlić wersje klucza używane do ochrony bazy danych. Więcej informacji znajdziesz w artykule Wyświetlanie używanego klucza.
Kwestie związane z kluczami zewnętrznymi
Gdy używasz klucza Cloud EKM, Google nie ma kontroli nad dostępnością klucza zarządzanego zewnętrznie w systemie zewnętrznego partnera zarządzającego kluczami.
Jeśli klucz zarządzany zewnętrznie jest niedostępny, Cloud Firestore nadal obsługuje pełne operacje na bazie danych w miarę możliwości przez maksymalnie godzinę.
Jeśli po godzinie Cloud Firestore nadal nie będzie w stanie połączyć się z
Cloud KMS, Cloud Firestore zacznie wyłączać bazę danych jako
środek ochronny. Wywołania bazy danych zakończą się niepowodzeniem z powodu błędu FAILED_PRECONDITION, który zawiera dodatkowe informacje.
Więcej informacji o używaniu 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 chroniona przez klucze CMEK Cloud Firestore 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 kopiach zapasowych Cloud Firestore znajdziesz w artykule Tworzenie i przywracanie kopii zapasowych danych.
Domyślnie baza danych przywrócona z kopii zapasowej 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óć do bazy danych innej niż CMEK, która używa domyślnego szyfrowania Google.
- Przywróć 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 bazy danychCloud Firestore chronionej przez klucze CMEK z kopii zapasowej znajdziesz w artykule Przywracanie bazy danych chronionej przez klucze 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.
- Sklonuj do bazy danych innej niż CMEK, która używa 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 kl0nowaniu bazy danych Cloud Firestore znajdziesz w artykule Klonowanie bazy danych. Więcej informacji o klonowaniu bazy danych chronionej przez klucze CMEK znajdziesz w artykule Klonowanie bazy danych chronionej przez klucze CMEK.Cloud Firestore
Śledzenie kluczy
Za pomocą śledzenia kluczy możesz wyświetlać zasoby, np. Cloud Firestore bazy danych, które są chronione przez klucz. Więcej informacji o śledzeniu kluczy znajdziesz w artykule Wyświetlanie użycia klucza.
Klucze CMEK i ich dostępność
Gdy klucze są niedostępne lub wyłączone, pamiętaj o tych zachowaniach, które mogą wystąpić w bazach danych z włączonymi kluczami CMEK:
- Możesz zmienić Cloud Firestore ustawienia odzyskiwania do określonego momentu (PITR) w bazie danych z włączonymi kluczami CMEK, nawet jeśli klucz jest niedostępny, ponieważ ustawienia PITR są metadanymi bazy danych, które nie są szyfrowane przez klucze CMEK.
- 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ą widoczne 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 z powodu błędu
FAILED_PRECONDITION400.
Ograniczenia
- Nie możesz zmienić klucza w bazie danych chronionej przez klucze CMEK. Możesz obracać, włączać i wyłączać klucze.
- Bazy danych chronione przez klucze CMEK obsługują Key Visualizer tylko w przypadku danych encji i dokumentów, a nie danych indeksu.
- 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 istniejącej bazy danych innej niż CMEK do bazy danych chronionej przez klucze CMEK, wyeksportuj dane, a następnie zaimportuj je do nowej bazy danych chronionej przez klucze CMEK. Możesz też przywrócić lub sklonować dane z bazy danych innej niż CMEK do bazy danych CMEK.
- Cloud Firestore obsługuje ograniczoną liczbę baz danych chronionych przez klucze CMEK.
- Nie obsługujemy ochrony za pomocą kluczy CMEK w przypadku integracji z Cloud Functions (1 generacji). Jeśli chcesz korzystać z ochrony za pomocą kluczy CMEK, użyj Cloud Run funkcji Firestore Triggers (2 generacji).
Jak dane mogą opuszczać bazy danych chronione przez klucze CMEK
Dane skopiowane przez Twoją aplikację mogą być przechowywane przez jej użytkowników w dowolny sposób. W przypadku każdej aplikacji uzyskującej dostęp do danych Cloud Firestore wymagane są odpowiednie zabezpieczenia, aby zapewnić, że dostęp do danych mają tylko osoby z odpowiednimi uprawnieniami. Więcej informacji znajdziesz w artykułach Reguły zabezpieczeń i Uprawnienia.
Dane z bazy danych chronionej przez klucze CMEK można przenieść do bazy danych innej niż CMEK za pomocą funkcji tworzenia i przywracania kopii zapasowych, klonowania lub importu i eksportu. Użyj odpowiednich ustawień uprawnień, aby przyznać uprawnienia do tych działań tylko autoryzowanym użytkownikom. Dodatkowo można użyć ograniczeń zasad organizacji CMEK, aby wymagać, aby wszystkie bazy danych utworzone przez przywracanie lub klonowanie oraz wszystkie Cloud Storage zasobniki używane do importu były chronione przez klucze CMEK.