Настройка управляемых клиентом ключей для существующей учетной записи Azure Cosmos DB с помощью Azure Key Vault
Область применения: Nosql Mongodb Гремлин Таблица
Включение второго уровня шифрования для неактивных данных с помощью ключей , управляемых клиентом, при создании новой учетной записи Azure Cosmos DB уже некоторое время доступно. В качестве естественного следующего шага теперь у нас есть возможность включить CMK в существующих учетных записях Azure Cosmos DB.
Эта функция устраняет необходимость миграции данных в новую учетную запись для включения CMK. Это помогает улучшить уровень безопасности и соответствия требованиям клиентов.
Включение CMK запускает фоновый асинхронный процесс для шифрования всех существующих данных в учетной записи, а новые входящие данные шифруются перед сохранением. Нет необходимости ждать успешной асинхронной операции. Процесс включения потребляет неиспользуемые или запасные ЕЗ, чтобы не влиять на рабочие нагрузки чтения и записи. Эту ссылку можно использовать для планирования емкости после шифрования учетной записи.
Начало работы с включением CMK в существующих учетных записях
Внимание
Тщательно изучите раздел предварительных требований. Это важные аспекты.
Необходимые компоненты
Все необходимые действия, необходимые при настройке управляемых клиентом ключей для новых учетных записей, применимы для включения CMK в существующей учетной записи. Ознакомьтесь с инструкциями здесь
Примечание.
Важно отметить, что включение шифрования в учетной записи Azure Cosmos DB добавит небольшую нагрузку на идентификатор документа, что ограничивает максимальный размер идентификатора документа до 990 байт вместо 1024 байт. Если у вашей учетной записи есть документы с идентификаторами размером более 990 байт, процесс шифрования завершится ошибкой, пока эти документы не будут удалены.
Чтобы проверить соответствие учетной записи, можно использовать предоставленное консольное приложение , размещенное здесь , для проверки учетной записи. Убедитесь, что вы используете конечную точку из свойства учетной записи sqlEndpoint, независимо от выбранного API.
Если вы хотите отключить проверку на стороне сервера во время миграции, обратитесь в службу поддержки.
Действия по включению CMK в существующей учетной записи
Чтобы включить CMK в существующей учетной записи, обновите учетную запись с помощью шаблона ARM, задав идентификатор ключа Key Vault в свойстве keyVaultKeyUri, как и при включении CMK в новой учетной записи. Этот шаг можно выполнить, выполнив вызов PATCH со следующими полезными данными:
{
"properties": {
"keyVaultKeyUri": "<key-vault-key-uri>"
}
}
Выходные данные этой команды CLI для включения CMK ожидает завершения шифрования данных.
az cosmosdb update --name "testaccount" --resource-group "testrg" --key-uri "https://keyvaultname.vault.azure.net/keys/key1"
Действия по включению CMK в существующей учетной записи Azure Cosmos DB с непрерывной резервной копией или учетной записью аналитического хранилища
Чтобы включить CMK в существующей учетной записи с поддержкой непрерывного резервного копирования и восстановления на определенный момент времени, необходимо выполнить некоторые дополнительные действия. Выполните шаг 1, чтобы выполнить шаг 5, а затем следуйте инструкциям, чтобы включить CMK в существующей учетной записи.
Настройка управляемого удостоверения для учетной записи Cosmos Configure managed identitys with Microsoft Entra ID for your Azure Cosmos DB account
Обновление учетной записи Cosmos, чтобы задать удостоверение по умолчанию, чтобы указать управляемое удостоверение, добавленное на предыдущем шаге.
Для управляемого удостоверения системы:
az cosmosdb update--resource-group $resourceGroupName --name $accountName --default-identity "SystemAssignedIdentity"
Для управляемого удостоверения пользователя:
az cosmosdb update -n $sourceAccountName -g $resourceGroupName --default-identity "UserAssignedIdentity=/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyID"
Добавление политики доступа в keyvault для удостоверения по умолчанию, заданного на предыдущем шаге.
Обновление учетной записи Cosmos, чтобы задать универсальный код ресурса (URI) keyvault, это обновление активирует включение CMK в учетной записи.
az cosmosdb update --name $accountName --resource-group $resourceGroupName --key-uri $keyVaultKeyURI
Известные ограничения
- Мы не поддерживаем включение CMK в существующих учетных записях Azure Cosmos DB для Apache Cassandra.
- Включение CMK доступно только на уровне учетной записи Cosmos DB, а не в коллекциях.
- Мы не поддерживаем включение CMK в существующих учетных записях, которые включены для материализованных представлений и всех версий и удаляет режим канала изменений.
- Убедитесь, что у учетной записи не должно быть документов с большими идентификаторами, превышающими 990 байт, прежде чем включить CMK. В противном случае вы получите ошибку из-за максимального поддерживаемого ограничения в 1024 байта после шифрования.
- Во время шифрования существующих данных действия уровня управления, такие как добавление региона, блокируются. Эти действия разблокируются и могут использоваться сразу после завершения шифрования.
Мониторинг хода выполнения результирующего шифрования
Включение CMK в существующей учетной записи — это асинхронная операция, которая запускает фоновую задачу, которая шифрует все существующие данные. Таким образом, запрос REST API для включения CMK предоставляет в ответе URL-адрес Azure-AsyncOperation. Опрос этого URL-адреса с запросами GET возвращает состояние общей операции, которая в конечном итоге выполнена успешно. Этот механизм полностью описан в этой статье.
Учетная запись Cosmos DB может продолжать использоваться, и данные могут продолжать записываться, не ожидая успешной асинхронной операции. Команда CLI для включения CMK ожидает завершения шифрования данных.
Чтобы разрешить существующую учетную запись Cosmos DB использовать для CMK, необходимо выполнить проверку, чтобы убедиться, что у учетной записи нет идентификаторов больших объемов данных. Большой идентификатор — это идентификатор документа, превышающий длину 990 символов. Эта проверка является обязательной для миграции CMK и выполняется корпорацией Майкрософт автоматически. Во время этого процесса может возникнуть ошибка.
ERROR: (InternalServerError) Непредвиденная ошибка при сканировании документов для миграции CMK. Повторите операцию.
Это происходит, когда процесс сканирования использует больше единиц ЕЗ, чем те, которые подготовлены в коллекции, вызывая ошибку 429. Решение этой проблемы будет временно ударить их ЕЗ значительно. Кроме того, вы можете использовать предоставленное консольное приложение , размещенное здесь , для проверки их коллекций.
Примечание.
Если вы хотите отключить проверку на стороне сервера во время миграции, обратитесь в службу поддержки. Это рекомендуется только в том случае, если вы уверены, что нет больших идентификаторов. Если во время шифрования обнаружен большой идентификатор, процесс остановится до решения документа с большим идентификатором.
Если у вас есть дополнительные вопросы, обратитесь к служба поддержки Майкрософт.
Вопросы и ответы
Каковы факторы, от которых зависит время шифрования?
Включение CMK является асинхронной операцией и зависит от достаточного количества неиспользуемых единиц ЕЗ. Мы рекомендуем включить CMK в нерабочие часы и при необходимости увеличить ЕЗ перед рукой, чтобы ускорить шифрование. Это также прямая функция размера данных.
Нужно ли заставить себя за простой?
Включение CMK запускает фоновый асинхронный процесс для шифрования всех данных. Нет необходимости ждать успешной асинхронной операции. Учетная запись Azure Cosmos DB доступна для операций чтения и записи и не требует простоя.
Можете ли вы ударить по ЕЗ после активации CMK?
Рекомендуется сбой ЕЗ перед активацией CMK. После активации CMK некоторые операции плоскости управления блокируются до завершения шифрования. Этот блок может запретить пользователю увеличивать единицу запросов после активации CMK.
Чтобы разрешить существующую учетную запись Cosmos DB использовать для CMK, проверка большого идентификатора выполняется автоматически корпорацией Майкрософт, чтобы устранить одно из известных ограничений, перечисленных ранее. Этот процесс также потребляет дополнительные ЕЗ, и рекомендуется значительно сократить количество единиц запросов, чтобы избежать ошибки 429.
Можно ли отменить шифрование или отключить шифрование после активации CMK?
После активации процесса шифрования данных с помощью CMK его нельзя отменить.
Включение шифрования с помощью CMK в существующей учетной записи влияет на размер данных и чтение и запись?
Как ожидается, включение CMK имеет небольшое увеличение размера данных и единиц ЕЗ для обеспечения дополнительной обработки шифрования и расшифровки.
Следует ли создавать резервные копии данных перед включением CMK?
Включение CMK не представляет никакой угрозы потери данных.
Старые резервные копии выполняются в рамках периодического шифрования резервных копий?
№ Старые периодические резервные копии не шифруются. Только что созданные резервные копии после включения CMK шифруются.
Что такое поведение существующих учетных записей, которые включены для непрерывного резервного копирования?
При включении CMK шифрование также включается для непрерывных резервных копий. После включения CMK все восстановленные учетные записи будут включены.
Что такое поведение, если CMK включена в учетной записи с поддержкой PITR, и мы восстанавливаем учетную запись до момента отключения CMK?
В этом случае CMK явно включен в восстановленной целевой учетной записи по следующим причинам:
- После включения CMK в учетной записи нет возможности отключить CMK.
- Это поведение соответствует текущей структуре восстановления учетной записи с поддержкой CMK с периодической резервной копией.
Что происходит, когда пользователь отменяет ключ во время миграции CMK?
Состояние ключа проверяется при активации шифрования CMK. Если ключ в хранилище ключей Azure находится в хорошем положении, шифрование запускается и процесс завершается без дополнительной проверки. Даже если ключ отозван или хранилище ключей Azure удаляется или недоступно, процесс шифрования завершается успешно.
Можно ли включить шифрование CMK в существующей рабочей учетной записи?
Да. Тщательно ознакомьтесь с разделом предварительных требований. Рекомендуется сначала протестировать все сценарии на непроизводственных учетных записях, и после того, как вы будете комфортно использовать рабочие учетные записи.
Следующие шаги
- Ознакомьтесь с дополнительными сведениями о шифровании данных в Azure Cosmos DB.
- Вы можете добавить второй уровень шифрования с собственными ключами, как описано в статье о ключах, управляемых клиентом.
- Дополнительные сведения о сертификатах Майкрософт см. в центре управления безопасностью Azure.