По умолчанию все данные в состоянии покоя в 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. Затраты на облачные журналы аудита являются дополнительными расходами, но также, как правило, невелики, учитывая ожидаемое количество криптографических операций.
При использовании базы данных, защищенной CMEK, дополнительные расходы на совместимость с Cloud Firestore и MongoDB отсутствуют, и цены на Cloud Firestore и MongoDB остаются в силе.
Если вы отзовете свой ключ к базе данных, плата за хранение будет взиматься исходя из размера базы данных за последний день, когда ключ был доступен. Вы будете продолжать нести расходы на хранение данных этого размера до тех пор, пока база данных не будет удалена или ключ снова не станет доступен.
Что защищается с помощью CMEK?
При создании базы данных Cloud 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_ARGUMENT400.
Ограничения
В базе данных, защищенной CMEK, изменить ключ невозможно. Однако можно выполнять ротацию, включение и отключение ключей.
Включить CMEK на существующих базах данных невозможно. Включить CMEK можно только на новых базах данных, и это необходимо сделать при их создании. Для миграции данных из существующей базы данных без CMEK в базу данных с защитой CMEK экспортируйте данные, а затем импортируйте их в новую базу данных с защитой CMEK. Также можно восстановить или клонировать данные из базы данных без CMEK в базу данных с CMEK.
Cloud Firestore поддерживает ограниченное количество баз данных, защищенных с помощью CMEK.