Azure Data Explorer шифрует все данные в неактивных учетных записях хранения. По умолчанию данные шифруются с помощью ключей, управляемых корпорацией Майкрософт. Для дополнительного контроля над ключами шифрования можно предоставить управляемые клиентом ключи для шифрования данных.
Ключи, управляемые клиентом, должны быть сохранены в Azure Key Vault. Можно либо создать собственные ключи и хранить их в хранилище ключей, либо использовать для их генерации API-интерфейсы Azure Key Vault. Кластер и хранилище ключей Azure Data Explorer должны быть расположены в одном регионе, но могут находиться в разных подписках. Подробное описание ключей, управляемых клиентом, см. в статье Управляемые клиентом ключи с использованием Azure Key Vault.
В этой статье показано, как настроить ключи, управляемые клиентом.
Примеры кода на основе предыдущих версий пакета SDK см. в архивной статье.
Настройка Azure Key Vault
Для настройки управляемых клиентом ключей с Azure Data Explorer необходимо задать для хранилища ключей два свойства: Обратимое удаление и Не очищать. По умолчанию эти свойства отключены. Чтобы включить эти свойства, включите обратимое удаление и защиту от очистки в PowerShell или Azure CLI в новом или существующем хранилище ключей. Поддерживаются только ключи RSA размером 2048. Дополнительные сведения о ключах см. в статье Ключи Key Vault.
Примечание
Сведения об ограничениях использования ключей, управляемых клиентом, в кластерах лидеров и последователей см. в разделе Ограничения.
Назначение управляемого удостоверения кластеру
Чтобы включить для кластера управляемые клиентом ключи, сначала назначьте кластеру назначаемое системой или назначаемое пользователем управляемое удостоверение. Вы будете использовать это управляемое удостоверение, чтобы предоставлять кластеру разрешения на доступ к хранилищу ключей. Сведения о настройке управляемых удостоверений см. в статье Управляемые удостоверения.
Включение шифрования с использованием управляемых клиентом ключами
Ниже описано, как включить шифрование ключей, управляемых клиентом, с помощью портал Azure. По умолчанию для шифрования Azure Data Explorer используются ключи, управляемые корпорацией Майкрософт. Настройте свой кластер Azure Data Explorer на использование ключей, управляемых клиентом, и укажите ключ, который нужно связать с кластером.
На левой панели портала выберите Параметры >Шифрование.
В области Шифрование выберите значение Вкл. для параметра Ключ, управляемый клиентом.
Выберите Выбрать ключ.
В окне Выбор ключа из Azure Key Vault выберите существующее хранилище ключей из раскрывающегося списка. Если выбрать Создать для создания нового хранилища ключей, откроется экран Создание хранилища ключей.
Выберите Ключ.
Версия:
Чтобы этот ключ всегда использовал последнюю версию ключа, установите флажок Всегда использовать текущую версию ключа.
В противном случае выберите версию.
Щелкните Выбрать.
В разделе Тип удостоверения выберите Назначенное системой или Назначенное пользователем.
Если выбрано значение Назначенное пользователем, выберите в раскрывающемся списке удостоверение, назначенное пользователем.
В области Шифрование, которая теперь содержит ваш ключ, нажмите кнопку Сохранить. После успешного создания ключа, управляемого клиентом, в уведомлениях появится сообщение об успехе.
Если при включении ключей, управляемых клиентом, для кластера Azure Data Explorer вы выбрали удостоверение, назначаемое системой, вы создадите для кластера удостоверение, назначаемое системой, если его не существует. Кроме того, вы будете предоставлять необходимые разрешения Get, wrapKey и unwrapKey для кластера Azure Data Explorer на выбранном Key Vault и получать свойства Key Vault.
Примечание
Выберите Выкл. , чтобы удалить ключ, управляемый клиентом, после его создания.
В следующих разделах объясняется, как настроить шифрование ключей, управляемых клиентом, с помощью клиента Azure Data Explorer C#.
Чтобы выполнить примеры, приведенные в этой статье, создайте приложение Microsoft Entra и субъект-службу, которые могут обращаться к ресурсам. Вы можете добавить назначение ролей в рамках подписки и получить необходимые Microsoft Entra Directory (tenant) ID, Application ID, и Application Secret.
В следующем фрагменте кода показано, как использовать библиотеку проверки подлинности Майкрософт (MSAL) для получения маркера Microsoft Entra приложения для доступа к кластеру. Для успешного выполнения потока приложение должно быть зарегистрировано с идентификатором Microsoft Entra и иметь учетные данные для проверки подлинности приложения, например ключ приложения, выданный Microsoft Entra идентификатором, или сертификат Microsoft Entra зарегистрированного X.509v2.
Настройка ключей, управляемых клиентом
По умолчанию для шифрования Azure Data Explorer используются ключи, управляемые корпорацией Майкрософт. Настройте свой кластер Azure Data Explorer на использование ключей, управляемых клиентом, и укажите ключ, который нужно связать с кластером.
Обновите свой кластер, используя следующий код:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; // Azure AD Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; // Application ID
var clientSecret = "PlaceholderClientSecret"; // Application secret
var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
var resourceManagementClient = new ArmClient(credentials, subscriptionId);
var resourceGroupName = "testrg";
var clusterName = "mykustocluster";
var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var clusters = resourceGroup.GetKustoClusters();
var cluster = (await clusters.GetAsync(clusterName)).Value;
var clusterPatch = new KustoClusterPatch(cluster.Data.Location)
{
KeyVaultProperties = new KustoKeyVaultProperties
{
KeyName = "<keyName>",
KeyVersion = "<keyVersion>", // Optional, leave as NULL for the latest version of the key.
KeyVaultUri = new Uri("https://<keyVaultName>.vault.azure.net/"),
UserIdentity = "/subscriptions/<identitySubscriptionId>/resourcegroups/<identityResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityName>" // Use NULL if you want to use system assigned identity.
}
};
await cluster.UpdateAsync(WaitUntil.Completed, clusterPatch);
Выполните следующую команду, чтобы проверить, был ли ваш кластер успешно обновлен:
var clusterData = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value.Data;
Если результат содержит ProvisioningState со значением Succeeded, значит, ваш кластер успешно обновлен.
Ниже описано, как включить шифрование ключей, управляемых клиентом, с помощью клиента Azure CLI. По умолчанию для шифрования Azure Data Explorer используются ключи, управляемые корпорацией Майкрософт. Настройте свой кластер Azure Data Explorer на использование ключей, управляемых клиентом, и укажите ключ, который нужно связать с кластером.
Выполните следующую команду, чтобы войти в Azure:
az login
Укажите подписку, в которой зарегистрирован кластер. Замените MyAzureSub именем подписки Azure, которую вы хотите использовать.
az account set --subscription MyAzureSub
Выполните следующую команду, чтобы задать новый ключ с назначаемым системой удостоверением кластера.
Выполните следующую команду и проверьте свойство keyVaultProperties, чтобы убедиться в успешном обновлении кластера.
az kusto cluster show --cluster-name "mytestcluster" --resource-group "mytestrg"
Ниже описано, как включить шифрование ключей, управляемых клиентом, с помощью PowerShell. По умолчанию для шифрования Azure Data Explorer используются ключи, управляемые корпорацией Майкрософт. Настройте свой кластер Azure Data Explorer на использование ключей, управляемых клиентом, и укажите ключ, который нужно связать с кластером.
Выполните следующую команду, чтобы войти в Azure:
Connect-AzAccount
Укажите подписку, в которой зарегистрирован кластер.
Ниже описано, как настроить ключи, управляемые клиентом, с помощью шаблонов Azure Resource Manager. По умолчанию для шифрования Azure Data Explorer используются ключи, управляемые корпорацией Майкрософт. На этом шаге настройте свой кластер Azure Data Explorer на использование ключей, управляемых клиентом, и укажите ключ, который нужно связать с кластером.
Если вы хотите использовать для доступа к хранилищу ключей удостоверение, назначаемое системой, оставьте поле userIdentity пустым. В противном случае задайте идентификатор ресурса удостоверения.
Вы можете развернуть шаблон Azure Resource Manager с помощью портала или PowerShell.
Когда вы создаете новую версию ключа, вам необходимо обновить кластер, чтобы использовать новую версию. Сначала позвоните Get-AzKeyVaultKey, чтобы получить последнюю версию ключа. Затем обновите свойства хранилища ключей кластера, чтобы использовать новую версию ключа, как показано в разделе Включение шифрования с помощью ключей, управляемых клиентом.