Поделиться через


Шифрование для рабочих областей Azure Synapse Analytics

В этой статье описываются:

  • шифрование неактивных данных в рабочих областях Synapse Analytics;
  • настройка рабочих областей Synapse для шифрования с использованием ключа, управляемого клиентом;
  • управление ключами, используемыми для шифрования данных в рабочих областях.

Шифрование неактивных данных

Полноценное решение для шифрования неактивных данных предполагает, что данные никогда не сохраняются на постоянной основе в незашифрованном виде. Двойное шифрование неактивных данных снижает риски благодаря наличию двух отдельных уровней шифрования — при такой схеме данные оказываются защищены в случае компрометации любого одного из уровней. В Azure Synapse Analytics предлагается второй уровень шифрования данных в рабочей области с использованием ключа, управляемого клиентом. Этот ключ надежно хранится в Azure Key Vault, что позволяет вам взять на себя управление ключами и их смену.

На первом уровне для служб Azure включается шифрование с использованием ключей, управляемых платформой. По умолчанию диски Azure и данные в учетных записях хранения Azure автоматически шифруются при хранении. Дополнительные сведения об использовании шифрования в Microsoft Azure см. в статье "Общие сведения о шифровании в Azure".

Note

Некоторые элементы, которые рассматриваются как содержимое клиента, такие как имена таблиц, имена объектов и имена индексов, могут передаваться в файлах журналов для поддержки и устранения неполадок корпорации Майкрософт.

Шифрование в Azure Synapse

Этот раздел поможет вам получить более четкое представление о том, как включается и применяется шифрование данных в рабочих областях Synapse с использованием ключей, управляемых клиентом. Для такого шифрования используются уже имеющиеся ключи или новые ключи, созданные в Azure Key Vault. Все данные в рабочей области шифруются одним ключом. Рабочие области Synapse поддерживают ключи размером 2048 и 3072 байта RSA, а также ключи RSA-HSM.

Note

Рабочие области Synapse не поддерживают использование ключей EC, EC-HSM и oct-HSM для шифрования.

Шифрование на уровне рабочей области с использованием управляемого клиентом ключа применяется для данных в следующих компонентах Synapse:

  • Пулы SQL
    • Выделенные пулы SQL
    • бессерверные пулы SQL;
  • Пулы Data Explorer
  • Пулы Apache Spark
  • среды выполнения интеграции, конвейеры и наборы данных Фабрики данных Azure.

Настройка шифрования рабочей области

Настроить рабочую область для применения двойного шифрования с использованием ключа, управляемого клиентом, можно во время ее создания. При создании новой рабочей области, на вкладке "Безопасность", включите двойное шифрование с помощью ключа, управляемого клиентом. Вы можете указать URI идентификатора ключа или выбрать хранилище ключей из списка в том же регионе, где находится рабочая область. Для Key Vault необходимо включить защиту от очистки.

Important

Отменить применение двойного шифрования после создания рабочей области невозможно.

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

Предварительные требования: смена ключей и состояние пула SQL

Warning

Перед изменением ключа шифрования рабочей области:

  • Убедитесь, что все выделенные пулы SQL находятся в состоянии Online. Автономные пулы не будут повторно зашифрованы и не могут возобновиться, если старая версия ключа или ключа удалена, отключена или истекла.
  • Сохраняйте все старые ключи и версии ключей , используемые для шифрования, пока каждый пул SQL не будет подключен к сети и повторно зашифрован с помощью нового ключа. Отключайте и удаляйте старый ключ после того, как все пулы успешно переключились на новый ключ.

⚠️ Сбой выполнения этих предварительных требований может привести к тому, что пулы SQL становятся недоступными, или резервные копии данных становятся невосстановимыми.

Список смены ключей

Step Action Status
1 Убедитесь, что все пулы SQL находятся в Сети
2 Убедитесь, что старый ключ сохраняется и включен
3 Поворот CMK
4 Проверка повторного шифрования всех пулов
5 Безопасно отключите старый ключ или версию ключа, после завершения всех пулов.

Лучшие практики управления ключами

Important

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

Состояние пула SQL (в сети или автономном режиме) не влияет на процесс обновления управляемого клиентом ключа рабочей области (CMK), но автономные пулы останутся зашифрованными с прежней версией ключа или старого ключа.

Если старый ключ или версия ключа отключены или истекли, автономные пулы не возобновятся, так как расшифровка невозможна. После возобновления этих пулов старая версия ключа или ключа должна (1) быть включена, а (2) иметь дату окончания срока действия в будущем, чтобы разрешить расшифровку и последующее повторное шифрование с помощью новой версии ключа или ключа.

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

Не удаляйте старые ключи или версии ключей , пока все пулы и резервные копии не будут успешно зашифрованы и проверены. Отключите только старый ключ после выполнения всех требований.

Устранение неполадок с поворотом ключей

Если пул SQL зависает в режиме офлайн после смены ключа:

  1. Проверьте версию ключа пула SQL с помощью PowerShell, чтобы подтвердить, какой ключ или версия ключа ожидается пулом:

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName 'ContosoServer' -ResourceGroupName 'WORKSPACE_MANAGED_RESOURCE_GROUP'
    

Note

Это ResourceGroupName относится к управляемой группе ресурсов рабочей области. Это можно найти на портале Azure, выбрав рабочую область Synapse и просмотрев значение managedResourceGroup в виде JSON.

  1. Включите необходимый старый ключ или версию ключа в Azure Key Vault.

  2. Задайте дату окончания срока действия в будущем для старого ключа или его версии.

  3. Возобновите пул SQL.

  4. После восстановления пула в сети разрешите его повторно зашифровать с помощью нового ключа.

  5. Проверьте состояние шифрования каждой базы данных, выполнив следующий запрос T-SQL в пуле SQL:

    SELECT
        [name],
        [is_encrypted]
    FROM
        sys.databases;
    
    • Столбец is_encrypted будет отображать состояние шифрования (1 = зашифровано, 0 = не зашифровано).
  6. Убедившись, что все пулы и резервные копии доступны и зашифрованы, вы можете безопасно отключить (не удалить) старый ключ или версию ключа.

Доступ к ключам и активация рабочей области

В модели шифрования Azure Synapse с использованием ключей, управляемых пользователем, рабочая область при необходимости получает доступ к ключам для шифрования и расшифровки, хранящимся в Azure Key Vault. Доступ к ключам в рабочей области обеспечивается через политику доступа или с помощью ролей RBAC Azure Key Vault. При создании политики предоставления разрешений с помощью политики доступа Azure Key Vault выберите параметр "Только приложение" (выберите управляемую идентификацию рабочего пространства и не добавляйте его как авторизованное приложение).

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

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

Рабочие области можно настроить для использования удостоверения, назначаемого пользователем для доступа к управляемому клиентом ключу, хранящемуся в Azure Key Vault. Настройте назначаемое пользователем управляемое удостоверение, чтобы избежать поэтапной активации рабочей области Azure Synapse при использовании двойного шифрования с ключами, управляемыми клиентом. Встроенная роль Managed Identity Contributor требуется для назначения назначаемого пользователем управляемого удостоверения рабочей области Azure Synapse.

Note

Управляемое удостоверение, назначаемое пользователем, нельзя настроить для доступа к управляемому клиентом ключу, если Azure Key Vault находится за брандмауэром.

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

Permissions

Чтобы зашифровать или расшифровать данные в состоянии покоя, управляемое удостоверение должно иметь следующие разрешения. Аналогичным образом, если вы используете шаблон Resource Manager для создания нового ключа, параметр keyOps шаблона должен иметь следующие разрешения:

  • WrapKey (для вставки ключа в Key Vault при его создании);
  • UnwrapKey (для получения ключа расшифровки);
  • Get (для чтения открытой части ключа).

Активация рабочей области

Если вы не настроите назначаемое пользователем управляемое удостоверение для доступа к управляемым клиентом ключам во время создания рабочей области, ваше рабочее пространство останется в состоянии "Ожидание" до тех пор, пока активация не будет выполнена. Полноценное использование всех функций рабочей области возможно только после ее активации. Например, создать выделенный пул SQL можно только после успешной активации рабочей области. Предоставьте управляемому удостоверению рабочей области доступ к хранилищу ключей, а затем выберите ссылку для активации на баннере портала Azure этой рабочей области. После успешного завершения активации рабочая область будет готова к использованию, а все данные в ней будут гарантированно защищены с использованием ключа, управляемого клиентом. Как уже отмечалось, для успешной активации в хранилище ключей должна быть включена защита от очистки.

На этом снимке экрана показан баннер с ссылкой для активации рабочей области.

Управление ключом шифрования рабочей области, управляемым клиентом

Изменить управляемый клиентом ключ, который используется для шифрования данных, можно на странице Шифрование портала Azure. Здесь можно также выбрать новый ключ, указав идентификатор ключа или выбрав хранилище ключей, к которым у вас есть доступ, в том же регионе, где находится рабочая область. Если вы выберете ключ в другом хранилище ключей, отличном от ранее использованных, предоставьте управляемому удостоверению рабочей области разрешения "Get", "Wrap" и "Unwrap" для доступа к новому хранилищу ключей. Рабочая область проверит доступ к новому хранилищу ключей, и все данные в рабочей области будут повторно зашифрованы с использованием нового ключа.

На этом снимке экрана показан раздел

Политики Azure Key Vault, предусматривающие периодическую автоматическую ротацию или выполнение действий с ключами, могут привести к созданию новых версий ключей. Вы можете повторно зашифровать все данные в рабочей области с использованием последней версии активного ключа. Чтобы повторно зашифровать данные, смените ключ на временный на портале Azure, а затем снова смените ключ на тот, который хотите использовать для шифрования. Например, чтобы повторно зашифровать данные с помощью последней версии активного ключа Key1, смените управляемый клиентом ключ рабочей области на временный ключ Key2. Дождитесь, пока завершится шифрование с использованием Key2, а затем переключите управляемый клиентом ключ рабочей области обратно на Key1 — данные в рабочей области будут повторно зашифрованы с использованием последней версии Key1.

Note

Поворот ключа — это трехэтапный процесс:

  1. Измените ключ, управляемый клиентом рабочей области, с основного ключа на временный ключ.
  2. Подождите 15–30 минут , пока процесс повторного шифрования завершится.
  3. Измените клиентский управляемый ключ для рабочей области обратно на основной ключ (используя его новую версию).

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

Note

Azure Synapse Analytics не выполняет повторное шифрование данных автоматически при создании новых версий ключей. Для обеспечения согласованности в рабочей области выполняйте повторное шифрование данных, как описано выше.

Прозрачное шифрование данных SQL с использованием ключей, управляемых службой

Прозрачное шифрование данных SQL (TDE) доступно для выделенных пулов SQL в рабочих областях, для которых не включено двойное шифрование. В рабочей области этого типа ключ, управляемый службой, используется для двойного шифрования данных в выделенных пулах SQL. TDE с ключом, управляемым службой, можно включать и отключать для каждого выделенного пула SQL в отдельности.

Командлеты для базы данных SQL Azure и системы Azure Synapse

Для настройки TDE с помощью PowerShell нужно подключиться в качестве владельца Azure, участника или диспетчера безопасности SQL.

Используйте следующие командлеты для рабочей области Azure Synapse.

Cmdlet Description
Set-AzSynapseSqlPoolTransparentDataEncryption Включает или отключает прозрачное шифрование данных для пула SQL.
Get-AzSynapseSqlPoolTransparentDataEncryption Возвращает состояние прозрачного шифрования данных для пула SQL.
New-AzSynapseWorkspaceKey Добавляет ключ из Key Vault в рабочую область.
Get-AzSynapseWorkspaceKey Получает ключи Key Vault для рабочей области
Update-AzSynapseWorkspace Устанавливает протектор прозрачного шифрования данных для рабочей области.
Get-AzSynapseWorkspace Получение средства защиты прозрачного шифрования данных (TDE)
Remove-AzSynapseWorkspaceKey Удаляет ключ Key Vault из рабочей области.