По умолчанию все данные, хранящиеся в Cloud Firestore , зашифрованы с использованием шифрования Google по умолчанию . Cloud Firestore обрабатывает и управляет этим шифрованием для вас без каких-либо дополнительных действий с вашей стороны.
Если у вас есть особые требования соответствия или нормативные требования, связанные с ключами, которые защищают ваши данные, вы можете использовать управляемые клиентом ключи шифрования (CMEK) для Cloud Firestore . Вместо того, чтобы Google управлял ключами шифрования, которые защищают ваши данные, ваша база данных Cloud Firestore защищена с помощью ключа, который вы контролируете и управляете в Cloud Key Management Service (Cloud KMS) .
На этой странице описывается CMEK для Cloud Firestore . Для получения дополнительной информации о CMEK в целом, включая когда и зачем его включать, см. следующую документацию Cloud KMS:
Инструкции по выполнению задач, связанных с CMEK, с помощью Cloud Firestore см. в разделе Использование CMEK .
Функции
- Управление данными : CMEK позволяет управлять ключом KMS. Вы можете вращать, отключать и уничтожать ключ, используемый для шифрования данных, хранящихся в вашей базе данных Cloud Firestore .
- Производительность : CMEK не влияет на соглашение об уровне обслуживания Cloud Firestore .
- Возможность аудита : если вы включите ведение журнала аудита для Cloud KMS , все операции с ключом будут регистрироваться и просматриваться в Cloud Logging .
- Ограничения политики организации : вы можете использовать ограничения политики организации CMEK, чтобы указать требования соответствия шифрованию для баз данных Cloud Firestore в вашей организации.
Ценообразование
Cloud KMS взимает плату за стоимость ключа и любые криптографические операции, выполняемые с использованием этого ключа. Для получения дополнительной информации см. Цены Cloud KMS .
Вам выставляется счет за операционные расходы, когда Cloud Firestore запрашивает ключ Cloud KMS для выполнения операции шифрования или дешифрования. Операция шифрования/дешифрования с помощью управляемого клиентом ключа происходит каждые 5 минут и не синхронизируется с запросами базы данных. Расходы, как правило, низкие, учитывая ожидаемое количество криптографических операций, сгенерированных Cloud Firestore . Расходы на журналы аудита облака являются дополнительными расходами, но также, как ожидается, будут низкими, учитывая ожидаемое количество криптографических операций.
За использование базы данных, защищенной CMEK, не взимается дополнительная плата Cloud Firestore , и продолжают действовать прежние цены на Cloud Firestore .
Если вы отзовете свой ключ к базе данных, стоимость хранения будет взиматься на основе размера последнего дня, когда ключ был доступен. Вы продолжите нести расходы на хранение при этом размере базы данных до тех пор, пока база данных не будет удалена или ключ не станет снова доступен.
Что защищено CMEK
При создании базы данных Cloud Firestore , защищенной CMEK, ваш ключ Cloud KMS используется для защиты данных в состоянии покоя. Сюда входят данные, которые вы храните на диске или флэш-накопителе, включая индексы и резервные копии. Применяются некоторые исключения. Следующие типы данных шифруются с помощью шифрования Google по умолчанию, а не с помощью ключа CMEK:
- Данные в пути или в памяти
- Метаданные базы данных
Как обрабатывается статус недоступного ключа
Операции шифрования и дешифрования не выполняются при каждом запросе данных. Вместо этого система Cloud Firestore опрашивает Cloud KMS каждые 5 минут, чтобы проверить, доступен ли ключ, а затем выполняет операции шифрования и дешифрования, если ключ доступен.
Если система обнаруживает, что ключ недоступен, в течение 10 минут любые последующие вызовы базы данных Cloud Firestore , включая чтение, запись и запросы, возвращают ошибку FAILED_PRECONDITION
с сообщением The customer-managed encryption key required by the requested resource is not accessible
».
Если в базе данных есть политики времени жизни (TTL) , и если какие-либо сроки действия будут превышены, пока ключ недоступен, удаление данных по TTL будет отложено до тех пор, пока ключ не будет восстановлен. Если в базе данных выполняются длительные операции, они будут затронуты следующим образом:
- Операции импорта или экспорта данных прекратят свое выполнение и будут помечены как
Failed
. Неудачные операции не будут повторяться, если ключ будет восстановлен. - Операции по построению индекса и операции , включающие новые политики TTL, прекратят свое выполнение. Остановленные операции будут повторены, если ключ будет восстановлен.
Ключи считаются недоступными в любой ситуации, которая намеренно не позволяет Cloud Firestore получить доступ к ключу. Это включает:
- Отключение или уничтожение используемой версии ключа. Будьте осторожны при уничтожении версии ключа, так как это может привести к невосстановимой потере данных .
- Удаление разрешения на доступ к ключу из учетной записи службы Cloud Firestore .
Если ключ восстановлен, операция опроса обнаруживает, что ключ снова доступен. Доступ восстанавливается, обычно в течение нескольких минут, но в редких случаях это может занять до нескольких часов. Обратите внимание, что некоторые операции с ключами Cloud KMS, такие как отключение или уничтожение ключа, могут занять до 3 часов для распространения. Cloud Firestore не обнаруживает никаких изменений, пока они не вступят в силу в Cloud KMS.
Восстановление ключа включает в себя следующее, в зависимости от ситуации:
- Повторное включение отключенной версии ключа.
- Восстановление уничтоженной версии ключа. Перед тем как быть окончательно уничтоженной, версия ключа запланирована на уничтожение. Вы можете восстановить ключ только в течение периода, когда версия ключа запланирована на уничтожение. Вы не можете восстановить ключ, который уже был окончательно уничтожен.
- Повторное предоставление агенту службы Cloud Firestore разрешения на доступ к ключу.
Соображения по ротации ключей
При ротации ключа CMEK Cloud Firestore повторно шифрует базу данных с помощью последней первичной версии ключа CMEK. Во время процесса повторного шифрования сохраняйте доступными как старую, так и новую версию ключа. После завершения повторного шифрования отключение или удаление старых версий ключа CMEK не отключит доступ к базе данных, поскольку она зашифрована с помощью новой первичной версии ключа.
Вы также можете просмотреть версии ключей, которые используются для защиты базы данных. Для получения дополнительной информации см. Просмотр используемого ключа .
Внешние ключевые соображения
При использовании ключа Cloud EKM Google не контролирует доступность вашего внешнего управляемого ключа в системе внешнего партнера по управлению ключами.
Если внешне управляемый ключ недоступен, Cloud Firestore продолжает поддерживать все операции с базой данных по принципу наилучших усилий в течение одного часа.
Если через час Cloud Firestore все еще не может подключиться к Cloud KMS, Cloud Firestore начинает переводить базу данных в автономный режим в качестве защитной меры. Обращения к базе данных завершатся ошибкой FAILED_PRECONDITION
, которая включает дополнительные сведения.
Дополнительную информацию об использовании внешних ключей см. в документации Cloud External Key Manager .
Резервное копирование и восстановление
Резервная копия использует тот же механизм шифрования, что и база данных, из которой вы ее создали. Когда база данных Cloud Firestore , защищенная CMEK, создает резервную копию, она шифрует ее с помощью версии первичного ключа, использованной во время создания резервной копии.
Cloud Firestore создает первую резервную копию базы данных CMEK по истечении 24 часов с момента включения расписания резервного копирования.
Дополнительную информацию о резервном копировании Cloud Firestore см. в разделе Резервное копирование и восстановление данных .
База данных, восстановленная из резервной копии, использует тот же механизм шифрования, что и резервная копия по умолчанию. При восстановлении базы данных вы можете указать другой тип шифрования одним из следующих способов:
- Восстановление в базе данных CMEK с новым указанным ключом.
- Восстановление в базу данных, отличную от CMEK, которая использует шифрование Google по умолчанию .
- Восстановление в базу данных, использующую то же шифрование, что и резервная копия.
Для получения дополнительной информации о восстановлении базы данных Cloud Firestore из резервной копии см. Восстановление данных из резервной копии базы данных . Для получения дополнительной информации о восстановлении базы данных Cloud Firestore , защищенной CMEK, из резервной копии см. Восстановление базы данных, защищенной CMEK .
Отслеживание ключа
Вы можете использовать отслеживание ключей для просмотра ресурсов, например, баз данных Cloud Firestore , которые защищает ключ. Для получения дополнительной информации об отслеживании ключей см. Просмотр использования ключей .
CMEK и доступность ключа
Если ключи недоступны или отключены, помните о следующих вариантах поведения, которые могут возникнуть в базах данных с поддержкой CMEK:
- Вы можете изменить настройки восстановления на определенный момент времени (PITR) Cloud Firestore в базе данных с поддержкой CMEK, даже если ключ недоступен, поскольку настройки PITR представляют собой метаданные базы данных, которые не шифруются CMEK.
- Вы можете удалить базу данных CMEK, в которой имеются недоступные ключи.
- При создании базы данных с поддержкой CMEK отключенные ключи не отображаются в списке доступных ключей в консоли Google Cloud. Если вручную ввести отключенный ключ, процесс создания базы данных завершится ошибкой
FAILED_PRECONDITION
400.
Ограничения
- Вы не можете изменить ключ для базы данных, защищенной CMEK. Вы можете вращать, включать и отключать ключи.
- Базы данных, защищенные с помощью CMEK, поддерживают Key Visualizer только для данных сущностей и документов, но не для индексных данных.
- Вы не можете включить CMEK в существующих базах данных. Вы можете включить CMEK только в новых базах данных, и вы должны включить его при создании базы данных. Чтобы перенести данные из существующей базы данных без CMEK в базу данных, защищенную CMEK, экспортируйте свои данные, а затем импортируйте их в новую базу данных, защищенную CMEK. Вы также можете восстановить данные из базы данных без CMEK в базу данных CMEK.
- Cloud Firestore поддерживает ограниченное количество баз данных, защищенных CMEK.
- Мы не поддерживаем защиту CMEK с интеграцией Cloud Functions (1-го поколения). Если вам нужна защита CMEK, используйте функции Cloud Run Firestore Triggers (2-го поколения) .