Adicionar entidades de segurança de cluster para o Azure Data Explorer
O Azure Data Explorer é um serviço de exploração de dados rápido e altamente escalonável para dados de log e telemetria. Neste artigo, você aprenderá a adicionar entidades de cluster para o Azure Data Explorer usando C#, Python ou um modelo do ARM (Azure Resource Manager).
Pré-requisitos
Os pré-requisitos variam de acordo com o método usado para adicionar a entidade de segurança. Escolha a guia relevante para seu método preferido.
A lista a seguir descreve os pré-requisitos para adicionar uma entidade de cluster com C#.
- Uma conta Microsoft ou uma identidade de usuário do Azure Active Directory. Uma assinatura do Azure não é necessária.
- Um cluster e um banco de dados do Azure Data Explorer. Crie um cluster e um banco de dados.
- Visual Studio 2022 Community Edition. Ative o desenvolvimento do Azure durante a instalação do Visual Studio.
- Um aplicativo do Azure AD e a entidade de serviço que pode acessar os recursos. Salve a ID do diretório (locatário),a ID do aplicativo e o segredo do cliente.
- Instale Microsoft.Azure.Management.kusto e Microsoft.Rest.ClientRuntime.Azure.Authentication.
Adicionar uma entidade de segurança do cluster
Execute o seguinte código para adicionar uma entidade de cluster:
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 = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret);
var kustoManagementClient = new KustoManagementClient(credentials) { SubscriptionId = subscriptionId };
var resourceGroupName = "testrg";
//The cluster that is created as part of the Prerequisites
var clusterName = "mykustocluster";
var clusterPrincipalAssignmentName = "mykustoclusterprincipalassignment";
var principalId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //User email, application ID, or security group name
var role = "AllDatabasesAdmin"; //AllDatabasesAdmin or AllDatabasesViewer
var tenantIdForPrincipal = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var principalType = "App"; //User, App, or Group
var clusterPrincipalAssignmentData = new ClusterPrincipalAssignment(
principalId: principalId, role: role, principalType: principalType, tenantId: tenantIdForPrincipal
);
await kustoManagementClient.ClusterPrincipalAssignments.CreateOrUpdateAsync(
resourceGroupName, clusterName, clusterPrincipalAssignmentName, clusterPrincipalAssignmentData
);
Configuração | Valor sugerido | Descrição do campo |
---|---|---|
tenantId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | ID do locatário. Também conhecida como ID do diretório. |
subscriptionId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | A ID da assinatura que você usa para a criação de recursos. |
clientId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | A ID do cliente do aplicativo que pode acessar recursos em seu locatário. |
clientSecret | PlaceholderClientSecret | O segredo do cliente do aplicativo que pode acessar recursos em seu locatário. |
resourceGroupName | testrg | O nome do grupo de recursos que contém o seu cluster. |
clusterName | mykustocluster | O nome do seu cluster. |
principalAssignmentName | clusterPrincipalAssignment1 | O nome do recurso da entidade de segurança do cluster. |
principalId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | A ID da entidade de segurança, que pode ser o email do usuário, a ID do aplicativo ou o nome do grupo de segurança. |
função | AllDatabasesAdmin | A função da entidade de segurança do cluster, que pode ser 'AllDatabasesAdmin', 'AllDatabasesMonitor' ou 'AllDatabasesViewer'. |
tenantIdForPrincipal | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | A ID do locatário da entidade de segurança. |
principalType | Aplicativo | O tipo da entidade de segurança, que pode ser 'User', 'App' ou 'Group' |