Azure Data Explorer cifra todos los datos de una cuenta de almacenamiento en reposo. De manera predeterminada, los datos se cifran con claves administradas por Microsoft. Para un control adicional sobre las claves de cifrado, puede proporcionar claves administradas por el cliente para usarlas para el cifrado de datos.
Las claves administradas por el cliente deben almacenarse en una instancia de Azure Key Vault. Puede crear sus propias claves y almacenarlas en un almacén de claves, o puede usar una API de Azure Key Vault para generar claves. El clúster de Azure Data Explorer y el almacén de claves deben estar en la misma región, pero pueden estar en suscripciones diferentes. Para obtener una explicación detallada sobre las claves administradas por el cliente, consulte Claves administradas por el cliente con Azure Key Vault.
En este artículo se muestra cómo configurar claves administradas por el cliente.
Para configurar claves administradas por el cliente con Azure Data Explorer, debe establecer dos propiedades en el almacén de claves: Eliminación temporal y No purgar. Estas propiedades no están habilitadas de forma predeterminada. Para habilitar estas propiedades, habilite la eliminación temporal y la protección contra purgas en PowerShell o Azure CLI en un almacén de claves nuevo o existente. Solo se admiten claves RSA de tamaño 2048. Para más información sobre las claves, consulte Claves de Key Vault.
Asignación de una identidad administrada al clúster
Para habilitar las claves administradas por el cliente para el clúster, asigne primero una identidad administrada asignada por el sistema o asignada por el usuario al clúster. Utilizará esta identidad administrada para otorgar permisos al clúster para acceder al almacén de claves. Para configurar identidades administradas, consulte Identidades administradas.
Habilitación del cifrado con claves administradas por el cliente
En estos pasos se explica cómo habilitar el cifrado de claves administradas por el cliente mediante Azure Portal. De forma predeterminada, el cifrado de Azure Data Explorer usa claves administradas por Microsoft. Configure el clúster de Azure Data Explorer para usar claves administradas por el cliente y especifique la clave que se va a asociar al clúster.
En Azure Portal, vaya al recurso de clúster de Azure Data Explorer .
Seleccione Configuración>Cifrado en el panel izquierdo del portal.
En el panel Cifrado , seleccione Activado para la configuración clave administrada por el cliente .
Haga clic en Seleccionar clave.
En la ventana Seleccionar clave de Azure Key Vault , seleccione un almacén de claves existente en la lista desplegable. Si selecciona Crear nuevo para crear un nuevo Almacén de Claves, se le redirigirá a la pantalla Crear Almacén de Claves.
Seleccione Clave.
Versión:
- Para asegurarse de que esta clave siempre usa la versión más reciente de la clave, active la casilla Usar siempre la versión de la clave actual .
- De lo contrario, seleccione Versión.
Haga clic en Seleccionar.
En Tipo de identidad, seleccione Sistema asignado o Asignado por el usuario.
Si selecciona Usuario asignado, elija una identidad asignada por el usuario en la lista desplegable.
En el panel Cifrado que ahora contiene la clave, seleccione Guardar. Cuando la creación de una CMK se realice correctamente, verá un mensaje de éxito en Notificaciones.
Si selecciona la identidad asignada por el sistema al habilitar claves administradas por el cliente para el clúster de Azure Data Explorer, creará una identidad asignada por el sistema para el clúster si no existe. Además, proporcionará los permisos get, wrapKey y unwrapKey necesarios para el clúster de Azure Data Explorer en el almacén de claves seleccionado y obtendrá las propiedades de Key Vault.
Nota:
Seleccione Desactivar para quitar la clave administrada por el cliente una vez creada.
En las secciones siguientes se explica cómo configurar el cifrado de claves administradas por el cliente mediante el cliente de C# de Azure Data Explorer.
Instalación de paquetes
Autenticación
Para ejecutar los ejemplos de este artículo, cree una aplicación de Azure AD y una entidad de servicio que pueda acceder a los recursos. Puede agregar la asignación de roles en el ámbito de la suscripción y obtener los valores necesarios Azure AD Directory (tenant) ID, Application IDy Application Secret.
El siguiente fragmento de código muestra cómo usar la Biblioteca de autenticación de Microsoft (MSAL) para adquirir un token de aplicación de Azure AD para acceder al clúster. Para que el flujo se realice correctamente, la aplicación debe registrarse con Azure AD y debe tener las credenciales para la autenticación de aplicaciones, como una clave de aplicación emitida por Azure AD o un certificado X.509v2 registrado en Azure AD.
De forma predeterminada, el cifrado de Azure Data Explorer usa claves administradas por Microsoft. Configure el clúster de Azure Data Explorer para usar claves administradas por el cliente y especifique la clave que se va a asociar al clúster.
Actualice el clúster mediante el código siguiente:
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);
Ejecute el siguiente comando para comprobar si el clúster se actualizó correctamente:
var clusterData = await kustoManagementClient.Clusters.GetAsync(resourceGroupName, clusterName);
Si el resultado contiene ProvisioningState con el Succeeded valor , el clúster se actualizó correctamente.
En los pasos siguientes se explica cómo habilitar el cifrado de claves administradas por el cliente mediante el cliente de la CLI de Azure. De forma predeterminada, el cifrado de Azure Data Explorer usa claves administradas por Microsoft. Configure el clúster de Azure Data Explorer para usar claves administradas por el cliente y especifique la clave que se va a asociar al clúster.
Ejecute el siguiente comandos para iniciar sesión en Azure:
az login
Establezca la suscripción donde está registrado el clúster. Reemplace MyAzureSub por el nombre de la suscripción de Azure que desea usar.
az account set --subscription MyAzureSub
Ejecute el siguiente comando para establecer la nueva clave con la identidad asignada por el sistema del clúster.
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>"
Como alternativa, establezca la nueva clave con una identidad asignada por el usuario.
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>"
Ejecute el siguiente comando y compruebe la propiedad "keyVaultProperties" para comprobar que el clúster se actualizó correctamente.
az kusto cluster show --cluster-name "mytestcluster" --resource-group "mytestrg"
En los pasos siguientes se explica cómo habilitar el cifrado de claves administradas por el cliente mediante PowerShell. De forma predeterminada, el cifrado de Azure Data Explorer usa claves administradas por Microsoft. Configure el clúster de Azure Data Explorer para usar claves administradas por el cliente y especifique la clave que se va a asociar al clúster.
Ejecute el siguiente comandos para iniciar sesión en Azure:
Connect-AzAccount
Establezca la suscripción donde está registrado el clúster.
Set-AzContext -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Ejecute el siguiente comando para establecer la nueva clave mediante una identidad asignada por el sistema.
Update-AzKustoCluster -ResourceGroupName "mytestrg" -Name "mytestcluster" -KeyVaultPropertyKeyName "<key-name>" -KeyVaultPropertyKeyVaultUri "<key-vault-uri>" -KeyVaultPropertyKeyVersion "<key-version>"
Como alternativa, establezca la nueva clave mediante una identidad asignada por el usuario.
Update-AzKustoCluster -ResourceGroupName "mytestrg" -Name "mytestcluster" -KeyVaultPropertyKeyName "<key-name>" -KeyVaultPropertyKeyVaultUri "<key-vault-uri>" -KeyVaultPropertyKeyVersion "<key-version>" -KeyVaultPropertyUserIdentity "user-assigned-identity-resource-id"
Ejecute el siguiente comando y compruebe "KeyVaultProperty...". propiedades para comprobar que el clúster se actualizó correctamente.
Get-AzKustoCluster -Name "mytestcluster" -ResourceGroupName "mytestrg" | Format-List
En los pasos siguientes se explica cómo configurar claves administradas por el cliente mediante plantillas de Azure Resource Manager. De forma predeterminada, el cifrado de Azure Data Explorer usa claves administradas por Microsoft. En este paso, configure el clúster de Azure Data Explorer para que use claves administradas por el cliente y especifique la clave que se va a asociar al clúster.
Si desea usar una identidad asignada por el sistema para acceder al almacén de claves, deje userIdentity vacío. De lo contrario, establezca el identificador de recurso de la identidad.
Puede implementar la plantilla de Azure Resource Manager mediante Azure Portal o 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>"
}
}
}
]
}
Actualizar la versión de la clave
Al crear una nueva versión de una clave, deberá actualizar el clúster para usar la nueva versión. En primer lugar, llame Get-AzKeyVaultKey a para obtener la versión más reciente de la clave. A continuación, actualice las propiedades del almacén de claves del clúster para usar la nueva versión de la clave, como se muestra en Habilitación del cifrado con claves administradas por el cliente.
Pasos siguientes