Azure Data Explorer chiffre toutes les données dans un compte de stockage au repos. Par défaut, les données sont chiffrées avec des clés managées par Microsoft Pour plus de contrôle sur les clés de chiffrement, vous pouvez fournir des clés gérées par le client à utiliser pour le chiffrement des données.
Les clés gérées par le client doivent être stockées dans Azure Key Vault. Vous pouvez créer vos propres clés et les stocker dans un coffre de clés, ou utiliser une API d’Azure Key Vault pour générer des clés. Le cluster Azure Data Explorer et le coffre de clés doivent se trouver dans la même région, mais ils peuvent appartenir à des abonnements différents. Pour obtenir une explication détaillée sur les clés gérées par le client, consultez Clés gérées par le client avec Azure Key Vault.
Cet article vous montre comment configurer des clés gérées par le client.
Configurer Azure Key Vault
Pour configurer des clés gérées par le client avec Azure Data Explorer, vous devez définir deux propriétés sur le coffre de clés : Suppression réversible et Ne pas vider. Ces propriétés ne sont pas activées par défaut. Pour activer ces propriétés, vous pouvez procéder par Activation de la suppression réversible et Activation de la protection contre le vidage dans PowerShell ou Azure CLI sur un coffre de clés nouveau ou existant. Seules les clés RSA de taille de 2048 sont prises en charge. Pour plus d'informations sur les clés, consultez Clés Key Vault.
Notes
Le chiffrement des données à l’aide de clés gérées par le client n’est pas pris en charge sur les clusters leader et suiveur.
Affecter une identité managée au cluster
Pour activer des clés gérées par le client pour votre cluster, attribuez tout d’abord au cluster une identité managée affectée par le système ou par l’utilisateur. Cette identité managée vous sera utile pour autoriser le cluster à accéder au coffre de clés. Pour configurer des identités managées, consultez Identités managées.
Activer le chiffrement avec des clés gérées par le client
Les étapes suivantes expliquent comment activer le chiffrement des clés gérées par le client à l’aide du Portail Azure. Par défaut, le chiffrement Azure Data Explorer utilise des clés gérées par Microsoft. Configurez votre cluster Azure Data Explorer pour utiliser des clés gérées par le client et spécifiez la clé à lui associer.
Sélectionnez Paramètres>Chiffrement dans le volet gauche du portail.
Dans le volet Chiffrement, sélectionnez Activé pour le paramètre Clé gérée par le client.
Cliquez sur Sélectionner une clé.
Dans la fenêtre Sélectionner une clé à partir d’Azure Key Vault, sélectionnez un Coffre de clés existant dans la liste déroulante. Si vous sélectionnez Créer nouveau pour créer un nouveau Coffre de clés, vous êtes dirigé vers l’écran Créer un coffre de clés.
Sélectionner Clé.
Version :
Pour garantir que cette clé utilise toujours la dernière version de la clé, cochez la case Toujours utiliser la version actuelle de la clé.
Sinon, sélectionnez Version.
Cliquez sur Sélectionner.
Sous Type d’identité, sélectionnez Affecté(e) par le système ou Affecté(e) par l’utilisateur.
Si vous sélectionnez Affecté(e) par l’utilisateur, choisissez une identité affectée par l’utilisateur dans la liste déroulante.
Dans le volet Chiffrement qui contient maintenant votre clé, sélectionnez Enregistrer. Lorsque la création de CMK réussit, un message de réussite s’affiche dans Notifications.
Si vous sélectionnez une identité affectée par le système lorsque vous activez des clés gérées par le client pour votre cluster Azure Data Explorer, vous allez créer une identité affectée par le système pour le cluster, si celle-ci n’existe pas déjà. De plus, vous devez fournir les autorisations get, wrapKey et unwrapKey requises à votre cluster Azure Data Explorer sur le Key Vault sélectionné et obtenir les propriétés du Key Vault.
Notes
Sélectionnez Désactivé pour supprimer la clé gérée par le client après sa création.
Les sections suivantes expliquent comment configurer le chiffrement des clés gérées par le client à l’aide du client Azure Data Explorer C#.
Pour exécuter les exemples de cet article, créez une application Azure AD et un principal de service pouvant accéder aux ressources. Vous pouvez ajouter l’attribution de rôle à l’étendue de l’abonnement et récupérer les Azure AD Directory (tenant) ID, Application ID et Application Secret requis.
L’extrait de code suivant montre comment utiliser la bibliothèque d’authentification Microsoft (MSAL) pour acquérir un jeton d’application Azure AD pour accéder à votre cluster. Pour que le flux réussisse, l’application doit être inscrite auprès d’Azure AD et vous devez disposer des informations d’identification pour l’authentification de l’application, telles qu’une clé d’application émise par Azure AD ou un certificat X.509v2 inscrit dans Azure AD.
Configurer des clés gérées par le client
Par défaut, le chiffrement Azure Data Explorer utilise des clés gérées par Microsoft. Configurez votre cluster Azure Data Explorer pour utiliser des clés gérées par le client et spécifiez la clé à lui associer.
Mettez à jour votre cluster en utilisant le code suivant :
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";
// Create a confidential authentication client for Azure AD:
var authClient = ConfidentialClientApplicationBuilder.Create(clientId)
.WithAuthority($"https://login.microsoftonline.com/{tenantId}")
.WithClientSecret(clientSecret) // can be replaced by .WithCertificate to authenticate with an X.509 certificate
.Build();
// Acquire application token
var result = authClient.AcquireTokenForClient(
new[] { "https://management.core.windows.net/.default" } // Define scopes for accessing Azure management plane
).ExecuteAsync().Result;
var credentials = new TokenCredentials(result.AccessToken, result.TokenType);
var kustoManagementClient = new KustoManagementClient(credentials) { SubscriptionId = subscriptionId };
var resourceGroupName = "testrg";
var clusterName = "mykustocluster";
var clusterPatch = new ClusterUpdate(
keyVaultProperties: new KeyVaultProperties(
keyName: "<keyName>",
keyVersion: "<keyVersion>", // Optional, leave as NULL for the latest version of the key.
keyVaultUri: "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 kustoManagementClient.Clusters.UpdateAsync(resourceGroupName, clusterName, clusterPatch);
Exécutez la commande suivante pour vérifier si votre cluster a bien été mis à jour :
var clusterData = await kustoManagementClient.Clusters.GetAsync(resourceGroupName, clusterName);
Si le résultat contient ProvisioningState avec la valeur Succeeded, alors votre cluster a correctement été mis à jour.
Les étapes suivantes expliquent comment activer le chiffrement des clés gérées par le client à l’aide du client Azure CLI. Par défaut, le chiffrement Azure Data Explorer utilise des clés gérées par Microsoft. Configurez votre cluster Azure Data Explorer pour utiliser des clés gérées par le client et spécifiez la clé à lui associer.
Exécutez la commande ci-après pour vous connecter à Azure :
az login
Définissez l’abonnement auprès duquel lequel votre cluster est inscrit. Remplacez MyAzureSub par le nom de l’abonnement Azure que vous voulez utiliser.
az account set --subscription MyAzureSub
Exécutez la commande suivante pour définir la nouvelle clé avec l’identité attribuée par le système du cluster.
Exécutez la commande suivante et examinez la propriété « keyVaultProperties » pour vérifier que le cluster a été mis à jour.
az kusto cluster show --cluster-name "mytestcluster" --resource-group "mytestrg"
Les étapes suivantes expliquent comment activer le chiffrement des clés gérées par le client à l’aide de PowerShell. Par défaut, le chiffrement Azure Data Explorer utilise des clés gérées par Microsoft. Configurez votre cluster Azure Data Explorer pour utiliser des clés gérées par le client et spécifiez la clé à lui associer.
Exécutez la commande ci-après pour vous connecter à Azure :
Connect-AzAccount
Définissez l’abonnement auprès duquel lequel votre cluster est inscrit.
Les étapes suivantes expliquent comment configurer des clés gérées par le client à l’aide de modèles Azure Resource Manager. Par défaut, le chiffrement Azure Data Explorer utilise des clés gérées par Microsoft. À cette étape, configurez votre cluster Azure Data Explorer pour utiliser des clés gérées par le client et spécifiez la clé à lui associer.
Si vous souhaitez utiliser une identité attribuée par le système pour accéder au coffre de clés, laissez userIdentity vide. Sinon, définissez l’ID de ressource de l’identité.
Vous pouvez déployer le modèle Azure Resource Manager à l’aide du Portail Azure ou à l’aide de PowerShell.
Lors de la création de la nouvelle version d’une clé, vous devez mettre à jour le cluster afin qu’il utilise cette nouvelle version. Tout d’abord, appelez la commande Get-AzKeyVaultKey pour obtenir la dernière version de la clé. Ensuite, mettez à jour les propriétés du coffre de clés du cluster pour utiliser la nouvelle version de la clé, comme indiqué dans Activer le chiffrement avec des clés gérées par le client.