Ключи шифрования, управляемые клиентом (CMEK)

По умолчанию все данные, хранящиеся в Cloud Firestore с поддержкой MongoDB, шифруются с использованием стандартного шифрования Google . Cloud Firestore с поддержкой MongoDB обрабатывает и управляет этим шифрованием автоматически, без каких-либо дополнительных действий с вашей стороны.

Если у вас есть особые требования к ключам, защищающим ваши данные, вы можете использовать управляемые клиентом ключи шифрования (CMEK) для совместимости с Cloud Firestore и MongoDB. Вместо того, чтобы Google управлял ключами шифрования, защищающими ваши данные, ваша база данных Cloud Firestore и MongoDB защищена ключом, который вы контролируете и управляете через Cloud Key Management Service (Cloud KMS) .

На этой странице описывается CMEK для Cloud Firestore с совместимостью с MongoDB. Подробнее о CMEK, включая информацию о том, когда и зачем его включать, см. в следующей документации Cloud KMS:

Инструкции по выполнению задач, связанных с CMEK, с помощью Cloud Firestore с совместимостью с MongoDB см. в разделе Использование CMEK .

Функции

  • Управление данными : CMEK позволяет управлять ключом KMS. Вы можете ротировать, деактивировать и уничтожать ключ, используемый для шифрования данных, хранящихся в базе данных Cloud Firestore, совместимой с MongoDB.
  • Производительность : CMEK не влияет на соглашение об уровне обслуживания Cloud Firestore .
  • Аудит : если включить ведение журнала аудита для Cloud KMS , все операции с ключом регистрируются и отображаются в Cloud Logging .
  • Ограничения политики организации : вы можете использовать ограничения политики организации CMEK , чтобы указать требования соответствия шифрованию для баз данных Cloud Firestore, совместимых с MongoDB, в вашей организации.

Цены

Cloud KMS взимает плату за ключ и любые криптографические операции, выполняемые с его использованием. Подробнее см. в разделе «Цены на Cloud KMS» .

С вас взимается плата за операционные расходы, когда Cloud Firestore с совместимостью с MongoDB запрашивает ключ Cloud KMS для выполнения операции шифрования или дешифрования. Операции шифрования или дешифрования с использованием управляемого клиентом ключа происходят каждые 5 минут и не синхронизируются с запросами к базе данных. Стоимость, как правило, невысока, учитывая ожидаемое количество криптографических операций, генерируемых Cloud Firestore с совместимостью с MongoDB. Стоимость журналов аудита Cloud — это дополнительная статья расходов, но, как правило, она также невысока, учитывая ожидаемое количество криптографических операций.

Дополнительные расходы на совместимость с Cloud Firestore и MongoDB при использовании базы данных, защищенной CMEK, не взимаются, и продолжают действовать цены на совместимость с Cloud Firestore и MongoDB .

Если вы отзовёте свой ключ к базе данных, с вас будет взиматься плата за хранение, размер которой соответствует последнему дню, когда ключ был доступен. Вы продолжите нести расходы на хранение данных с таким же размером базы данных до тех пор, пока база данных не будет удалена или ключ не станет снова доступен.

Что защищено CMEK

При создании облачного хранилища Firestore с базой данных, совместимой с MongoDB и защищенной CMEK, ваш ключ Cloud KMS используется для защиты хранимых данных. Это включает данные, хранящиеся на диске или флэш-накопителе, включая индексы и резервные копии. Имеются некоторые исключения. Следующие типы данных шифруются с помощью шифрования Google по умолчанию, а не с помощью ключа CMEK:

  • Данные в пути или в памяти
  • Метаданные базы данных

Как обрабатывается статус недоступного ключа

Операции шифрования и дешифрования выполняются не при каждом запросе данных. Вместо этого система Cloud Firestore с совместимостью с MongoDB опрашивает Cloud KMS каждые 5 минут, чтобы проверить доступность ключа, а затем выполняет операции шифрования и дешифрования, если ключ доступен.

Если система обнаружит, что ключ недоступен, в течение 10 минут любые последующие обращения к базе данных Cloud Firestore с совместимостью с MongoDB, включая чтение, запись и запросы, возвращают ошибку INVALID_ARGUMENT со следующим сообщением:

The customer-managed encryption key required by the requested
resource is not accessible.

Если в базе данных установлены политики времени жизни (TTL) , и если какой-либо срок действия будет превышен, пока ключ недоступен, удаление данных по TTL будет отложено до восстановления ключа. Если в базе данных выполняются длительные операции, они будут затронуты следующим образом:

Ключи считаются недоступными в любой ситуации, когда Cloud Firestore с поддержкой MongoDB намеренно не может получить к ним доступ. Это включает в себя:

Если ключ восстановлен, операция опроса обнаруживает, что он снова доступен. Доступ восстанавливается, обычно в течение нескольких минут, но в редких случаях это может занять до нескольких часов. Обратите внимание, что некоторые операции с ключами Cloud KMS, такие как отключение или уничтожение ключа, могут занять до 3 часов . Cloud Firestore с совместимостью с MongoDB не обнаруживает изменения до тех пор, пока они не вступят в силу в Cloud KMS.

Восстановление ключа включает в себя следующее, в зависимости от ситуации:

  • Повторное включение отключенной версии ключа.
  • Восстановление уничтоженной версии ключа. Перед окончательным уничтожением версия ключа должна быть уничтожена. Восстановление ключа возможно только в течение периода, когда версия ключа должна быть уничтожена. Восстановление ключа, который уже был окончательно уничтожен, невозможно.
  • Повторное предоставление агенту службы Cloud Firestore разрешения на доступ к ключу.

Соображения относительно ротации ключей

При ротации ключа CMEK Cloud Firestore с совместимостью с MongoDB перешифровывает базу данных с использованием последней первичной версии ключа CMEK. Во время процесса перешифрования сохраняйте доступными как к предыдущей, так и к новой версии ключа. После завершения перешифрования отключение или удаление предыдущих версий ключа CMEK не повлияет на доступ к базе данных, поскольку она зашифрована с использованием новой версии первичного ключа.

Вы также можете просмотреть версии ключей, используемых для защиты базы данных. Подробнее см. в разделе «Просмотр используемых ключей» .

Внешние ключевые соображения

При использовании ключа Cloud EKM Google не контролирует доступность вашего внешнего управляемого ключа во внешней системе управления ключами партнера.

Если внешне управляемый ключ недоступен, Cloud Firestore с совместимостью с MongoDB продолжает поддерживать полные операции с базой данных, используя кэшированную версию ключа, в течение одного часа.

Если через час Cloud Firestore с поддержкой MongoDB по-прежнему не может подключиться к Cloud KMS, Cloud Firestore с поддержкой MongoDB переводит базу данных в автономный режим в качестве защитной меры. Обращения к базе данных завершатся ошибкой INVALID_ARGUMENT с дополнительной информацией.

Дополнительную информацию об использовании внешних ключей см. в документации Cloud External Key Manager .

Резервное копирование и восстановление

Резервная копия использует тот же механизм шифрования, что и база данных, из которой она была создана. При создании резервной копии в базе данных Cloud Firestore, защищённой CMEK и совместимой с MongoDB, резервная копия шифруется с использованием версии первичного ключа, которая использовалась на момент её создания.

Cloud Firestore с совместимостью с MongoDB создает первую резервную копию базы данных CMEK по истечении 24 часов с момента включения расписаний резервного копирования.

Дополнительную информацию о резервном копировании Cloud Firestore с совместимостью с MongoDB см. в разделе Резервное копирование и восстановление данных .

База данных, восстановленная из резервной копии, по умолчанию использует тот же механизм шифрования, что и резервная копия. При восстановлении базы данных вы можете указать другой тип шифрования одним из следующих способов:

  • Восстановление в базе данных CMEK с новым указанным ключом.
  • Восстановление в базу данных, отличную от CMEK, которая использует шифрование Google по умолчанию .
  • Восстановление в базу данных, использующую то же шифрование, что и резервная копия.

Дополнительные сведения о восстановлении базы данных Cloud Firestore с совместимостью с MongoDB из резервной копии см. в разделе Восстановление данных из резервной копии базы данных . Дополнительные сведения о восстановлении базы данных Cloud Firestore с совместимостью с MongoDB, защищенной CMEK, из резервной копии см. в разделе Восстановление базы данных, защищенной CMEK .

Клон

По умолчанию база данных, клонированная из другой базы данных, использует тот же механизм шифрования, что и исходная база данных. При клонировании базы данных вы можете указать другой тип шифрования одним из следующих способов:

  • Клонировать в базу данных CMEK с новым указанным ключом.
  • Клонировать в базу данных, отличную от CMEK, которая использует шифрование Google по умолчанию .
  • (По умолчанию) Клонировать в базу данных, которая использует то же шифрование, что и исходная база данных.

Дополнительные сведения о клонировании Cloud Firestore с базой данных, совместимой с MongoDB, см. в разделе Клонирование базы данных . Дополнительные сведения о клонировании Cloud Firestore с защитой CMEK и базой данных, совместимой с MongoDB, см. в разделе Клонирование базы данных, совместимой с CMEK .

Отслеживание ключей

Вы можете использовать отслеживание ключей для просмотра ресурсов, например, Cloud Firestore с базами данных, совместимыми с MongoDB, которые защищены ключом. Подробнее об отслеживании ключей см. в разделе «Просмотр использования ключей» .

CMEK и доступность ключа

Если ключи недоступны или отключены, помните о следующих вариантах поведения, которые могут возникнуть в базах данных с поддержкой CMEK:

  • Вы можете удалить базу данных CMEK, в которой имеются недоступные ключи.

  • При создании базы данных с поддержкой CMEK отключенные ключи не отображаются в списке доступных ключей в консоли Google Cloud. Если вручную ввести отключенный ключ, процесс создания базы данных завершится ошибкой INVALID_ARGUMENT 400.

Ограничения

  • Изменить ключ для базы данных, защищённой CMEK, невозможно. Вы можете чередовать, включать и отключать ключи.

  • CMEK нельзя включить в существующих базах данных. CMEK можно включить только в новых базах данных, и это необходимо сделать при их создании. Чтобы перенести данные из существующей базы данных без CMEK в базу данных с CMEK-защитой, экспортируйте данные, а затем импортируйте их в новую базу данных с CMEK-защитой. Вы также можете восстановить или клонировать данные из базы данных без CMEK в базу данных с CMEK-защитой.

  • Cloud Firestore поддерживает ограниченное количество баз данных, защищенных CMEK.

Что дальше?