Настройка управляемых клиентом ключей для существующей учетной записи 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 в существующей учетной записи.

Примечание.

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

  1. Настройка управляемого удостоверения для учетной записи Cosmos Configure managed identitys with Microsoft Entra ID for your Azure Cosmos DB account

  2. Обновление учетной записи Cosmos, чтобы задать удостоверение по умолчанию, чтобы указать управляемое удостоверение, добавленное на предыдущем шаге.

    Для управляемого удостоверения системы:

    az cosmosdb update --resource-group $resourceGroupName  --name $accountName  --default-identity "SystemAssignedIdentity=subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyRG/providers/Microsoft.ManagedIdentity/ systemAssignedIdentities/MyID"
    

    Для управляемого удостоверения пользователя:

    az cosmosdb update -n $sourceAccountName -g $resourceGroupName --default-identity "UserAssignedIdentity=subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyID"
    
  3. Настройка Keyvault, как показано в документации

  4. Добавление политики доступа в keyvault для удостоверения по умолчанию, заданного на предыдущем шаге.

  5. Обновление учетной записи Cosmos, чтобы задать универсальный код ресурса (URI) keyvault, это обновление активирует включение CMK в учетной записи.

    az cosmosdb update --name $accountName --resource-group $resourceGroupName --key-uri $keyVaultKeyURI  
    

Известные ограничения

  • Включение CMK доступно только на уровне учетной записи Cosmos DB, а не в коллекциях.
  • Мы не поддерживаем включение CMK в существующих учетных записях Azure Cosmos DB для Apache Cassandra.
  • Мы не поддерживаем включение CMK в существующих учетных записях, которые включены для материализованных представлений и всех версий и удаляет режим канала изменений.
  • Убедитесь, что у учетной записи не должно быть документов с большими идентификаторами, превышающими 990 байт, прежде чем включить CMK. В противном случае вы получите ошибку из-за максимального поддерживаемого ограничения в 1024 байта после шифрования.
  • Во время шифрования существующих данных действия уровня управления, такие как добавление региона, блокируются. Эти действия разблокируются и могут использоваться сразу после завершения шифрования.

Мониторинг хода выполнения результирующего шифрования

Включение CMK в существующей учетной записи — это асинхронная операция, которая запускает фоновую задачу, которая шифрует все существующие данные. Таким образом, запрос REST API для включения CMK предоставляет в ответе URL-адрес Azure-AsyncOperation. Опрос этого URL-адреса с запросами GET возвращает состояние общей операции, которая в конечном итоге выполнена успешно. Этот механизм полностью описан в этой статье.

Учетная запись Cosmos DB может продолжать использоваться, и данные могут продолжать записываться, не ожидая успешной асинхронной операции. Команда CLI для включения CMK ожидает завершения шифрования данных.

Если у вас есть дополнительные вопросы, обратитесь к служба поддержки Майкрософт.

Вопросы и ответы

Каковы факторы, от которых зависит время шифрования?

Включение CMK является асинхронной операцией и зависит от достаточного количества неиспользуемых единиц ЕЗ. Мы рекомендуем включить CMK в нерабочие часы и при необходимости увеличить ЕЗ перед рукой, чтобы ускорить шифрование. Это также прямая функция размера данных.

Нужно ли заставить себя за простой?

Включение CMK запускает фоновый асинхронный процесс для шифрования всех данных. Нет необходимости ждать успешной асинхронной операции. Учетная запись Azure Cosmos DB доступна для операций чтения и записи и не требует простоя.

Можете ли вы ударить по ЕЗ после активации CMK?

Рекомендуется сбой ЕЗ перед активацией CMK. После активации CMK некоторые операции плоскости управления блокируются до завершения шифрования. Этот блок может запретить пользователю увеличивать единицу запросов после активации CMK.

Можно ли отменить шифрование или отключить шифрование после активации CMK?

После активации процесса шифрования данных с помощью CMK его нельзя отменить изменения.

Включение шифрования с помощью CMK в существующей учетной записи влияет на размер данных и чтение и запись?

Как ожидается, включение CMK имеет небольшое увеличение размера данных и единиц ЕЗ для обеспечения дополнительной обработки шифрования и расшифровки.

Следует ли создавать резервные копии данных перед включением CMK?

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

Старые резервные копии выполняются в рамках периодического шифрования резервных копий?

№ Старые периодические резервные копии не шифруются. Только что созданные резервные копии после включения CMK шифруются.

Что такое поведение существующих учетных записей, которые включены для непрерывного резервного копирования?

При включении CMK шифрование также включается для непрерывных резервных копий. После включения CMK все восстановленные учетные записи будут включены.

Что такое поведение, если CMK включена в учетной записи с поддержкой PITR, и мы восстанавливаем учетную запись до момента отключения CMK?

В этом случае CMK явно включен в восстановленной целевой учетной записи по следующим причинам:

  • После включения CMK в учетной записи нет возможности отключить CMK.
  • Это поведение соответствует текущей структуре восстановления учетной записи с поддержкой CMK с периодической резервной копией.

Что происходит, когда пользователь отменяет ключ во время миграции CMK?

Состояние ключа проверка при активации шифрования CMK. Если ключ в Хранилище ключей Azure находится в хорошем положении, шифрование запускается и процесс завершается без дальнейшего проверка. Даже если ключ отозван или хранилище ключей Azure удаляется или недоступно, процесс шифрования завершается успешно.

Можно ли включить шифрование CMK в существующей рабочей учетной записи?

Да. Тщательно ознакомьтесь с разделом предварительных требований. Рекомендуется сначала протестировать все сценарии на непроизводственных учетных записях, и после того, как вы будете комфортно использовать рабочие учетные записи.

Следующие шаги