Adición de entidades de seguridad de base de datos para Azure Data Explorer
El Explorador de datos de Azure es un servicio de exploración de datos altamente escalable y rápido para datos de telemetría y registro. En este artículo, aprenderá a agregar entidades de seguridad de base de datos para Azure Data Explorer mediante C#, Python o una plantilla de Azure Resource Manager (ARM).
Requisitos previos
Los requisitos previos varían en función del método usado para agregar la entidad de seguridad. Elija la pestaña correspondiente para su método preferido.
En la lista siguiente se describen los requisitos previos para agregar una entidad de seguridad de clúster con C#.
- Una cuenta de Microsoft o una identidad de usuario Microsoft Entra. No se necesita una suscripción a Azure.
- Un clúster y la base de datos de Azure Data Explorer. Cree un clúster y una base de datos.
- Visual Studio 2022 Community Edition. Active el desarrollo de Azure durante la instalación de Visual Studio.
- Una Microsoft Entra aplicación y entidad de servicio que puede acceder a los recursos. Guarde el identificador de directorio (inquilino), el identificador de aplicación y el secreto de cliente.
- Instale Azure.ResourceManager.Kusto.
- Instale el paquete NuGet Azure.Identity para la autenticación.
Incorporación de una entidad de seguridad de base de datos
Ejecute el código siguiente para agregar una entidad de seguridad de base de datos:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
var resourceManagementClient = new ArmClient(credentials, subscriptionId);
var resourceGroupName = "testrg";
//The cluster that is created as part of the Prerequisites
var clusterName = "mykustocluster";
var databaseName = "mykustodatabase";
var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var cluster = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value;
var database = (await cluster.GetKustoDatabaseAsync(databaseName)).Value;
var databasePrincipalAssignments = database.GetKustoDatabasePrincipalAssignments();
var databasePrincipalAssignmentName = "mykustodatabaseprincipalassignment";
var principalId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //User email, application ID, or security group name
var role = KustoDatabasePrincipalRole.Admin; //Admin, Ingestor, Monitor, User, UnrestrictedViewers, Viewer
var tenantIdForPrincipal = new Guid("xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx");
var principalType = KustoPrincipalAssignmentType.App; //User, App, or Group
var databasePrincipalAssignmentData = new KustoDatabasePrincipalAssignmentData
{
DatabasePrincipalId = principalId, Role = role, PrincipalType = principalType, TenantId = tenantIdForPrincipal
};
await databasePrincipalAssignments.CreateOrUpdateAsync(
WaitUntil.Completed, databasePrincipalAssignmentName, databasePrincipalAssignmentData
);
Configuración | Valor sugerido | Descripción del campo |
---|---|---|
tenantId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | El identificador de inquilino. También conocido como identificador de directorio. |
subscriptionId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Identificador de suscripción que se usa para la creación de recursos. |
clientId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Identificador del cliente de la aplicación que puede acceder a los recursos del inquilino. |
clientSecret | PlaceholderClientSecret | Secreto del cliente de la aplicación que puede acceder a los recursos del inquilino. |
resourceGroupName | testrg | Nombre del grupo de recursos que contiene el clúster. |
clusterName | mykustocluster | Nombre del clúster. |
databaseName | mykustodatabase | Nombre de la base de datos. |
databasePrincipalAssignmentName | mykustodatabaseprincipalassignment | Nombre del recurso principal de base de datos. |
principalId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | El identificador de la entidad de seguridad, que puede ser el correo electrónico del usuario, el identificador de la aplicación o el nombre del grupo de seguridad. |
rol | Administrador | El rol de la entidad de seguridad de base de datos, que puede ser "Admin" (Administrador), "Ingestor" (Agente de ingesta), "Monitor" (Monitor), "User" (Usuario), "UnrestrictedViewers" (Visores no restringidos) o "Viewer" (Visor). |
tenantIdForPrincipal | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | El identificador de inquilino de la entidad de seguridad. |
principalType | Aplicación | El tipo de la entidad de seguridad, que puede ser "User" (Usuario), "App" (Aplicación) o "Group" (Grupo) |