Hinzufügen von Clusterprinzipalen für Azure Data Explorer
Azure-Daten-Explorer ist ein schneller und hochgradig skalierbarer Dienst zur Untersuchung von Daten (Protokoll- und Telemetriedaten). In diesem Artikel erfahren Sie, wie Sie Clusterprinzipale für Azure Data Explorer mithilfe von C#, Python oder einer Arm-Vorlage (Azure Resource Manager) hinzufügen.
Voraussetzungen
Die Voraussetzungen variieren je nach der Methode, die zum Hinzufügen des Prinzipals verwendet wird. Wählen Sie die relevante Registerkarte für Ihre bevorzugte Methode aus.
In der folgenden Liste werden die Voraussetzungen zum Hinzufügen eines Clusterprinzipals mit C# beschrieben.
- Ein Microsoft-Konto oder eine Azure Active Directory-Benutzer-ID. Ein Azure-Abonnement ist nicht erforderlich.
- Schnellstart: Erstellen eines Azure Data Explorer-Clusters und einer Datenbank. Erstellen eines Clusters und einer Datenbank
- Visual Studio 2022 Community Edition. Aktivieren Sie die Azure-Entwicklung während des Visual Studio-Setups.
- Gewusst wie: Erstellen einer Azure AD-Anwendung und eines Dienstprinzipals mit Ressourcenzugriff über das Portal. Speichern Sie die Verzeichnis-ID (Mandanten-ID),die Anwendungs-ID und den geheimen Clientschlüssel.
- Installieren Sie Microsoft.Azure.Management.kusto und Microsoft.Rest.ClientRuntime.Azure.Authentication.
Hinzufügen eines Clusterprinzipals
Führen Sie den folgenden Code aus, um einen Clusterprinzipal hinzuzufügen:
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
);
Einstellung | Empfohlener Wert | Feldbeschreibung |
---|---|---|
tenantId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Ihre Mandanten-ID. Wird auch als Verzeichnis-ID bezeichnet. |
subscriptionId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Die Abonnement-ID, die Sie für die Ressourcenerstellung verwenden. |
clientId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Die Client-ID der Anwendung, die auf Ressourcen in Ihrem Mandanten zugreifen kann. |
clientSecret | PlaceholderClientSecret | Das Clientgeheimnis der Anwendung, die auf Ressourcen in Ihrem Mandanten zugreifen kann. |
resourceGroupName | testrg | Der Name der Ressourcengruppe, die Ihren Cluster enthält. |
clusterName | mykustocluster | Der Name Ihres Clusters. |
principalAssignmentName | clusterPrincipalAssignment1 | Der Name Ihrer Clusterprinzipalressource. |
principalId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Die Prinzipal-ID. Dies kann die E-Mail-Adresse des Benutzers, die Anwendungs-ID oder der Name der Sicherheitsgruppe sein. |
Rolle (role) | AllDatabasesAdmin | Die Rolle Ihres Clusterprinzipals, die „AllDatabasesAdmin“, „AllDatabasesMonitor“ oder „AllDatabasesViewer“ sein kann. |
tenantIdForPrincipal | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Die Mandanten-ID des Prinzipals. |
principalType | App | Der Typ des Prinzipals, der „Benutzer“, „App“ oder „Gruppe“ sein kann. |