Включение шифрования данных с помощью ключей, управляемых клиентом, в Azure Cosmos DB для PostgreSQL

Область применения: Azure Cosmos DB для PostgreSQL (на базе расширения базы данных Citus до PostgreSQL)

Необходимые компоненты

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

Важно!

Создайте все следующие ресурсы в том же регионе, где будет развернут кластер Azure Cosmos DB для PostgreSQL.

  1. Создайте управляемое удостоверение, назначаемое пользователем. В настоящее время Azure Cosmos DB для PostgreSQL поддерживает только управляемые удостоверения, назначаемые пользователем.

  2. Создайте Azure Key Vault и добавьте политику доступа к созданному управляемому удостоверению, назначаемого пользователем, с помощью следующих разрешений: Get, Unwrap Key и Wrap Key.

  3. Создайте ключ в хранилище ключей (поддерживаемые типы ключей: RSA 2048, 3071, 4096).

  4. Выберите параметр шифрования ключей, управляемый клиентом во время создания кластера Azure Cosmos DB для PostgreSQL, и выберите соответствующее управляемое удостоверение, назначаемое пользователем, хранилище ключей и ключ, созданный на шагах 1, 2 и 3.

Подробные инструкции

Управляемое удостоверение, назначаемое пользователем

  1. Выполните поиск управляемых удостоверений в глобальной строке поиска.

    Screenshot of Managed Identities in Azure portal.

  2. Создайте новое управляемое удостоверение, назначаемое пользователем, в том же регионе, что и кластер Azure Cosmos DB для PostgreSQL.

    Screenshot of User assigned managed Identity page in Azure portal.

Дополнительные сведения об управляемом удостоверении, назначаемом пользователем.

Key Vault

Использование управляемых клиентом ключей с Azure Cosmos DB для PostgreSQL требует установки двух свойств в экземпляре Azure Key Vault, который планируется использовать для размещения ключей шифрования: обратимое удаление и защита от очистки.

  1. Если вы создаете новый экземпляр Azure Key Vault, включите эти свойства во время создания:

    Screenshot of Key Vault's properties.

  2. Если вы используете имеющийся экземпляр Azure Key Vault, проверьте, включены ли эти свойства, на портале Azure в разделе Свойства. Если какие-либо из этих свойств не включены, ознакомьтесь с разделами "Включение обратимого удаления" и "Включение защиты от очистки" в одной из следующих статей.

  3. Хранилище ключей должно быть установлено в течение 90 дней для хранения удаленных хранилищ. Если существующее хранилище ключей настроено с меньшим числом, необходимо создать новое хранилище ключей, так как этот параметр не может быть изменен после создания.

    Важно!

    Экземпляр Azure Key Vault должен разрешить общедоступный доступ из всех сетей.

Добавление политики доступа в Key Vault

  1. На портале Azure перейдите к экземпляру Azure Key Vault, который планируется использовать для размещения ключей шифрования. Выберите конфигурацию Access в меню слева. Убедитесь, что политика доступа Хранилища выбрана в разделе "Модель разрешений", а затем выберите "Перейти к политикам доступа".

    Screenshot of Key Vault's access configuration.

  2. Выберите + Создать.

  3. На вкладке "Разрешения" в раскрывающемся меню "Разрешения клавиши" выберите "Получить", "Распаковка ключа" и "Открыть ключ".

    Screenshot of Key Vault's permissions settings.

  4. На вкладке "Субъект" выберите управляемое удостоверение, назначенное пользователем, созданное на этапе предварительных требований.

  5. Перейдите к разделу "Просмотр и создание" нажмите кнопку "Создать".

Создание и импорт ключа

  1. На портале Azure перейдите к экземпляру Azure Key Vault, который планируется использовать для размещения ключей шифрования.

  2. Выберите ключи в меню слева и нажмите кнопку +Создать или импортировать.

    Screenshot of Key generation page.

  3. Управляемый клиентом ключ, используемый для шифрования DEK, может быть асимметричным типом ключа RSA. Поддерживаются все размеры ключей RSA 2048, 3072 и 4096.

  4. Дата активации ключа (если задана) должна быть датой и временем в прошлом. Дата истечения срока действия (если задана) должна быть датой и временем в будущем.

  5. Ключ должен находиться в состоянии Включено.

  6. Если вы импортируете существующий ключ в хранилище ключей, обязательно укажите его в поддерживаемом формате файла (.pfx, .byok, .backup).

  7. Если вы поворачиваете ключ вручную, старая версия ключа не должна быть удалена не менее 24 часов.

Включение шифрования CMK во время подготовки нового кластера

  1. Во время подготовки нового кластера Azure Cosmos DB для PostgreSQL после предоставления необходимых сведений на вкладках "Основные сведения" и "Сеть" перейдите на вкладку "Шифрование ". Screenshot of Encrytion configuration page.

  2. Выберите управляемый клиентом ключ в разделе "Ключ шифрования данных".

  3. Выберите назначенное пользователем управляемое удостоверение, созданное в предыдущем разделе.

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

  5. Выберите ключ, созданный на предыдущем шаге, и нажмите кнопку "Проверить и создать".

  6. После создания кластера убедитесь, что шифрование CMK включено, перейдя в колонку шифрования данных кластера Azure Cosmos DB для PostgreSQL в портал Azure. Screenshot of data encryption tab.

Примечание.

Шифрование данных можно настроить только во время создания нового кластера и не может быть обновлено в существующем кластере. Решением для обновления конфигурации шифрования в существующем кластере является восстановление кластера и настройка шифрования данных во время создания вновь восстановленного кластера.

Высокая доступность

Если шифрование CMK включено в основном кластере, все резервные узлы высокой доступности автоматически шифруются ключом первичного кластера.

Изменение конфигурации шифрования путем выполнения PITR

Конфигурацию шифрования можно изменить с управляемого службой шифрования на управляемое клиентом шифрование или наоборот при выполнении операции восстановления кластера (PITR — восстановление на определенный момент времени).

  1. Перейдите в колонку шифрования данных и выберите " Инициировать операцию восстановления". Кроме того, вы можете выполнить PITR, выбрав параметр "Восстановить " в колонке "Обзор ". Screenshot of PITR.

  2. Вы можете изменить или настроить шифрование данных на вкладке "Шифрование " страницы восстановления кластера.

Мониторинг управляемого клиентом ключа в Key Vault

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

  • Azure Работоспособность ресурсов: недоступная база данных, которая потеряла доступ к ключу клиента, отображается как "Недоступно" после того, как первое подключение к базе данных было отказано.

  • Журнал действий. В случае сбоя доступа к ключу клиента, размещенному в управляемом клиентом Key Vault, в журнал действий добавляются записи. Если для таких событий создать правила генерации оповещений, можно восстанавливать доступ максимально быстро.

  • Группы действий. Определите эти группы для отправки уведомлений и оповещений на основе ваших предпочтений.

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