Azure Data Explorer chiffre toutes les données d’un compte de stockage au repos. Par défaut, les données sont chiffrées avec des clés managées par Microsoft Pour un contrôle supplémentaire 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 un coffre de clés Azure. Vous pouvez créer vos propres clés et les stocker dans un coffre de clés, ou vous pouvez utiliser une API 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 se trouver dans différents abonnements. Pour obtenir une explication détaillée sur les clés gérées par le client, consultez les clés gérées par le client avec Azure Key Vault.
Cet article explique comment configurer des clés gérées par le client.
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 purger. Ces propriétés ne sont pas activées par défaut. Pour activer ces propriétés, procédez à l'activation de la suppression douce et de la protection contre la purge dans PowerShell ou Azure CLI sur un coffre de clés existant ou nouveau. Seules les clés RSA de taille 2048 sont prises en charge. Pour plus d’informations sur les clés, consultez Key Vault - clés.
Attribuer une identité managée au cluster
Pour activer les clés gérées par le client pour votre cluster, attribuez d’abord une identité managée affectée par le système ou affectée par l’utilisateur au cluster. Vous allez utiliser cette identité gérée pour accorder les autorisations du cluster pour accéder au coffre de clés. Pour configurer des identités managées, consultez les 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é à associer au cluster.
Dans le portail Azure, accédez à votre ressource de cluster Azure Data Explorer .
Sélectionnez Paramètres>Chiffrement dans le volet gauche du portail.
Dans le volet Chiffrement , sélectionnez Activé pour le paramètre de clé gérée par le client .
Cliquez sur Sélectionner une clé.
Dans la fenêtre Sélectionner une clé dans Azure Key Vault , sélectionnez un coffre de clés existant dans la liste déroulante. Si vous sélectionnez Créer pour créer un coffre de clés, vous serez routé vers l’écran Créer un coffre de clés .
Sélectionnez Clé.
Version:
- Pour vous assurer 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é par le système ou l’utilisateur affecté.
Si vous sélectionnez Utilisateur affecté, choisissez une identité utilisateur affectée dans la liste déroulante.
Dans le volet Chiffrement qui contient maintenant votre clé, sélectionnez Enregistrer. Une fois la création de CMK réussie, un message de réussite s’affiche dans Notifications.
Si vous sélectionnez l’identité affectée par le système lors de l’activation 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 elle n’existe pas. En outre, vous fournirez les autorisations get, wrapKey et unwrapKey requises pour votre cluster Azure Data Explorer sur le Key Vault sélectionné, et obtiendrez les propriétés du Key Vault.
Remarque
Sélectionnez Désactivé pour supprimer la clé gérée par le client une fois qu’elle a été créée.
Les sections suivantes expliquent comment configurer le chiffrement des clés gérées par le client à l'aide du client C# d'Azure Data Explorer.
Installer des packages
Authentification
Pour exécuter les exemples de cet article, créez une application Azure AD et un principal de service qui peuvent accéder aux ressources. Vous pouvez ajouter une attribution de rôle à l’étendue de l’abonnement et obtenir les éléments requis Azure AD Directory (tenant) ID, Application IDet Application Secret.
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 auprès d’Azure AD.
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é à associer au cluster.
Mettez à jour votre cluster à l’aide du 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 été correctement mis à jour :
var clusterData = await kustoManagementClient.Clusters.GetAsync(resourceGroupName, clusterName);
Si le résultat contient ProvisioningState avec la Succeeded valeur, votre cluster a été mis à jour avec succès.
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é à associer au cluster.
Exécutez la commande ci-après pour vous connecter à Azure :
az login
Définissez l’abonnement dans lequel votre cluster est inscrit. Remplacez MyAzureSub par le nom de l’abonnement Azure que vous souhaitez utiliser.
az account set --subscription MyAzureSub
Exécutez la commande suivante pour définir la nouvelle clé avec l’identité affectée par le système du cluster
az kusto cluster update --cluster-name "mytestcluster" --resource-group "mytestrg" --key-vault-properties key-name="<key-name>" key-version="<key-version>" key-vault-uri="<key-vault-uri>"
Vous pouvez définir la nouvelle clé avec une identité assignée par l'utilisateur.
az kusto cluster update --cluster-name "mytestcluster" --resource-group "mytestrg" --key-vault-properties key-name="<key-name>" key-version="<key-version>" key-vault-uri="<key-vault-uri>" key-user-identity="<user-identity-resource-id>"
Exécutez la commande suivante et vérifiez la propriété « keyVaultProperties » pour vérifier que le cluster a été mis à jour avec succès.
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é à associer au cluster.
Exécutez la commande ci-après pour vous connecter à Azure :
Connect-AzAccount
Définissez l’abonnement dans lequel votre cluster est inscrit.
Set-AzContext -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Exécutez la commande suivante pour définir la nouvelle clé à l’aide d’une identité affectée par le système.
Update-AzKustoCluster -ResourceGroupName "mytestrg" -Name "mytestcluster" -KeyVaultPropertyKeyName "<key-name>" -KeyVaultPropertyKeyVaultUri "<key-vault-uri>" -KeyVaultPropertyKeyVersion "<key-version>"
Vous pouvez également définir la nouvelle clé à l’aide d’une identité affectée par l’utilisateur.
Update-AzKustoCluster -ResourceGroupName "mytestrg" -Name "mytestcluster" -KeyVaultPropertyKeyName "<key-name>" -KeyVaultPropertyKeyVaultUri "<key-vault-uri>" -KeyVaultPropertyKeyVersion "<key-version>" -KeyVaultPropertyUserIdentity "user-assigned-identity-resource-id"
Exécutez la commande suivante et vérifiez « KeyVaultProperty... » propriétés pour vérifier que le cluster a été mis à jour avec succès.
Get-AzKustoCluster -Name "mytestcluster" -ResourceGroupName "mytestrg" | Format-List
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. Dans cette étape, configurez votre cluster Azure Data Explorer pour utiliser des clés gérées par le client et spécifiez la clé à associer au cluster.
Si vous souhaitez utiliser une identité affecté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 de PowerShell.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"clusterName": {
"type": "string",
"defaultValue": "[concat('kusto', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Name of the cluster to create"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {},
"resources": [
{
"name": "[parameters('clusterName')]",
"type": "Microsoft.Kusto/clusters",
"sku": {
"name": "Standard_E8ads_v5",
"tier": "Standard",
"capacity": 2
},
"apiVersion": "2019-09-07",
"location": "[parameters('location')]",
"properties": {
"keyVaultProperties": {
"keyVaultUri": "<keyVaultUri>",
"keyName": "<keyName>",
"keyVersion": "<keyVersion>",
"userIdentity": "<userIdentity>"
}
}
}
]
}
Mettre à jour la version de la clé
Lorsque vous créez une nouvelle version d’une clé, vous devez mettre à jour le cluster pour utiliser la nouvelle version. Tout d’abord, appelez 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.
Étapes suivantes