По умолчанию все данные в 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 . Затраты на журналы аудита Cloud являются дополнительными расходами, но также, как ожидается, будут в целом незначительными, учитывая ожидаемое количество криптографических операций.
Использование базы данных, защищенной с помощью 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» .
Клон
По умолчанию база данных, клонированная из другой базы данных, использует тот же механизм шифрования, что и исходная база данных. При клонировании базы данных можно указать другой тип шифрования одним из следующих способов:
- Создайте клонированное хранилище в базе данных CMEK, используя новый указанный ключ.
- Клонируйте в базу данных, не использующую CMEK, но применяющую стандартное шифрование Google .
- (По умолчанию) Клонировать в базу данных, использующую тот же метод шифрования, что и исходная база данных.
Для получения дополнительной информации о клонировании базы данных Cloud Firestore см. раздел «Клонирование базы данных» . Для получения дополнительной информации о клонировании базы данных Cloud Firestore , защищенной CMEK, см. раздел «Клонирование базы данных, защищенной CMEK» .
Отслеживание ключей
Отслеживание ключей позволяет просматривать ресурсы, например, базы данных Cloud Firestore , которые защищены данным ключом. Дополнительную информацию об отслеживании ключей см. в разделе «Просмотр использования ключей» .
Наличие CMEK и ключей
При недоступности или отключении ключей следует учитывать следующие возможные сценарии поведения баз данных с поддержкой CMEK:
- Вы можете изменить параметры восстановления на определенный момент времени (PITR) в Cloud Firestore для базы данных с поддержкой CMEK, даже если ключ недоступен, поскольку параметры PITR представляют собой метаданные базы данных, которые не шифруются CMEK.
- Вы можете удалить базу данных CMEK, в которой отсутствуют ключи.
- При создании базы данных с поддержкой CMEK отключенные ключи не отображаются в списке доступных ключей в консоли Google Cloud. Если вы вручную введете отключенный ключ, процесс создания базы данных завершится с ошибкой
FAILED_PRECONDITION400.
Ограничения
- В базе данных, защищенной CMEK, изменить ключ невозможно. Однако можно выполнять ротацию, включение и отключение ключей.
- Базы данных, защищенные CMEK, поддерживают Key Visualizer только для данных сущностей и документов, а не для данных индексов.
- Включить CMEK на существующих базах данных невозможно. Включить CMEK можно только на новых базах данных, и это необходимо сделать при их создании. Для миграции данных из существующей базы данных без CMEK в базу данных с защитой CMEK экспортируйте данные, а затем импортируйте их в новую базу данных с защитой CMEK. Также можно восстановить или клонировать данные из базы данных без CMEK в базу данных с CMEK.
- Cloud Firestore поддерживает ограниченное количество баз данных, защищенных с помощью CMEK.
- Мы не поддерживаем защиту CMEK при интеграции с Cloud Functions (1-го поколения). Если вам нужна защита CMEK, используйте триггеры Firestore для Cloud Run Functions (2-го поколения) .
Как данные могут покинуть базы данных, защищенные CMEK.
Данные, скопированные вашим приложением, могут храниться его пользователями произвольным образом. Для любого приложения, обращающегося к данным Cloud Firestore необходимы соответствующие меры безопасности, чтобы гарантировать, что доступ к данным имеют только лица с соответствующими правами доступа. Дополнительные сведения см. в разделе «Правила безопасности» и «IAM» .
Данные из базы данных, защищенной CMEK, можно переместить в базу данных, не защищенную CMEK, используя резервное копирование и восстановление , клонирование или импорт и экспорт . Используйте соответствующие средства управления IAM , чтобы предоставлять разрешение на эти действия только авторизованным пользователям. Кроме того, можно использовать ограничения политики организации CMEK , чтобы требовать, чтобы любые базы данных, созданные при восстановлении или клонировании, и любые сегменты Cloud Storage используемые для импорта, были защищены CMEK.