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

По умолчанию все данные в 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.

Функции

Цены

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

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

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

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

Что защищено с помощью CMEK

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

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

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

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

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

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

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

Ключи считаются недоступными в любой ситуации, когда 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 начнет отключать базу данных в качестве защитной меры. Вызовы базы данных будут завершаться ошибкой INVALID_ARGUMENT с дополнительными сведениями.

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

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

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

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

Подробнее о резервном копировании и восстановлении данных в Cloud Firestore…

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

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

Подробнее о том, Cloud Firestore как восстановить данные из резервной копии базы данных… Подробнее о том, как восстановить базу данных Cloud Firestore, защищенную CMEK, из резервной копии…

Клонировать

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

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

Подробнее о клонировании базы данных Cloud Firestore… Подробнее о том, как клонировать базу данных Cloud Firestore, защищенную CMEK …

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

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

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

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

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

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

Ограничения

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

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

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

Дальнейшие действия