По умолчанию все данные, хранящиеся в 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 будет отложено до восстановления ключа. Если в базе данных выполняются длительные операции, они будут затронуты следующим образом:
- Операции по построению индекса и операции , активирующие новые политики TTL, будут остановлены. Остановленные операции будут повторены после восстановления ключа.
Ключи считаются недоступными в любой ситуации, когда Cloud Firestore с поддержкой MongoDB намеренно не может получить к ним доступ. Это включает в себя:
- Отключение или уничтожение используемой версии ключа. Будьте осторожны при уничтожении версии ключа, так как это может привести к невосстановимой потере данных .
- Удаление разрешения на доступ к ключу из учетной записи службы совместимости 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.