Configuración de claves administradas por el cliente
Artículo
Azure Data Explorer cifra todos los datos en una cuenta de almacenamiento en reposo. De manera predeterminada, los datos se cifran con claves administradas por Microsoft. Para tener un mayor control sobre las claves de cifrado, puede proporcionar claves administradas por el cliente para el cifrado de datos.
Las claves administradas por el cliente se deben almacenar 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 generarlas. El clúster de Azure Data Explorer y el almacén de claves deben estar en la misma región, pero pueden estar en distintas suscripciones. 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 las claves administradas por el cliente.
Configuración de Azure Key Vault
Para configurar las 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, realice Enabling soft-delete (Habilitación de la eliminación temporal) y Enabling Purge Protection (Habilitación de la protección de purgas) en PowerShell o la CLI de Azure en un almacén de claves nuevo o existente. Solo se admiten claves RSA de tamaño de 2048. Para obtener más información sobre las claves, consulte Claves en Key Vault.
Asignación de una identidad administrada al clúster
Para habilitar claves administradas por el cliente para el clúster, primero asigne una identidad administrada asignada por el sistema o por el usuario al clúster. Usará esta identidad administrada para conceder los permisos del clúster para obtener acceso 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 el Azure Portal. De forma predeterminada, el cifrado de Azure Data Explorer usa claves que administra Microsoft. Configure la cuenta de Azure Data Explorer para usar las claves administradas por el cliente y especifique la clave para la asociación al clúster.
Seleccione Configuración>Cifrado en el panel izquierdo del portal.
En el panel Cifrado, seleccione Activar para la opción Clave administrada por el cliente.
Haga clic en Seleccionar clave.
En la ventana Seleccione 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 última versión de la clave, active la casilla Always use current key version (Usar siempre la versión actual de la clave).
En caso contrario, seleccione la versión.
Haga clic en Seleccionar.
En Tipo de identidad, seleccione Asignada por el sistema o Asignada por el usuario.
Si selecciona Asignada por el usuario, seleccione una identidad asignada por el usuario en la lista desplegable.
En el panel Cifrado que ahora contiene la clave, seleccione Guardar. Cuando se complete la creación de CMK, se mostrará un mensaje que lo indique en Notificaciones.
Si selecciona identidades asignadas por el sistema, al habilitar las 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 ninguna. Además, proporcionará los permisos get, wrapKey y unwrapKey necesarios para el clúster de Azure Data Explorer en la instancia de Key Vault seleccionada y obtendrá las propiedades de Key Vault.
Nota
Seleccione Desactivar para quitar la clave administrada por el cliente después de crearla.
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.
Para ejecutar los ejemplos de este artículo, cree una aplicación de Azure AD y una entidad de servicio con acceso a los recursos. Puede agregar una asignación de roles en el ámbito de la suscripción y obtener los objetos Azure AD Directory (tenant) ID, Application ID y Application Secretnecesarios.
En el fragmento de código siguiente se 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 en Azure AD y debe tener las credenciales para la autenticación de la aplicación, como una clave de aplicación emitida por Azure AD o un certificado X.509v2 registrado en Azure AD.
Configuración de claves administradas por el cliente
De forma predeterminada, el cifrado de Azure Data Explorer usa claves que administra Microsoft. Configure la cuenta de Azure Data Explorer para usar las claves administradas por el cliente y especifique la clave para la asociación al clúster.
Actualice el clúster mediante el siguiente código:
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 valor Succeeded, significa que el clúster se ha actualizado 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 que administra Microsoft. Configure la cuenta de Azure Data Explorer para usar las claves administradas por el cliente y especifique la clave para la asociación al clúster.
Ejecute el siguiente comandos para iniciar sesión en Azure:
az login
Establezca la suscripción en el que está registrado el clúster. Reemplace MyAzureSub por el nombre de la suscripción de Azure que quiere 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.
Ejecute el siguiente comando y compruebe la propiedad "keyVaultProperties" para comprobar que el clúster se ha actualizado 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 que administra Microsoft. Configure la cuenta de Azure Data Explorer para usar las claves administradas por el cliente y especifique la clave para la asociación al clúster.
Ejecute el siguiente comandos para iniciar sesión en Azure:
Connect-AzAccount
Establezca la suscripción en el que está registrado el clúster.
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 que administra Microsoft. En este paso, configure la cuenta de Azure Data Explorer para usar las claves administradas por el cliente y especifique la clave para la asociación 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.
Al crear una nueva versión de una clave, tendrá que actualizar el clúster para que utilice la versión nueva. En primer lugar, llame a Get-AzKeyVaultKey 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.