Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Data Explorer to szybka i wysoce skalowalna usługa eksploracji danych na potrzeby danych dziennika i telemetrycznych. W tym artykule dowiesz się, jak dodawać jednostki klastra dla usługi Azure Data Explorer przy użyciu języka C#, Python lub szablonu usługi Azure Resource Manager (ARM).
Przykłady kodu oparte na poprzednich wersjach zestawu SDK można znaleźć w zarchiwizowanym artykule.
Wymagania wstępne
Wymagania wstępne różnią się w zależności od metody użytej do dodania podmiotu głównego. Wybierz odpowiednią kartę dla preferowanej metody.
Poniższa lista przedstawia wymagania wstępne dotyczące dodawania podmiotu zabezpieczeń klastra w języku C#.
- Konto Microsoft lub tożsamość użytkownika Microsoft Entra. Subskrypcja platformy Azure nie jest wymagana.
- Baza danych i klaster usługi Azure Data Explorer. Utwórz klaster i bazę danych.
- Visual Studio 2022 Community Edition. Włącz programowanie na platformie Azure podczas konfigurowania programu Visual Studio.
- Aplikacja Firmy Microsoft Entra i jednostka usługi, która może uzyskiwać dostęp do zasobów. Zapisz identyfikator katalogu (dzierżawy), identyfikator aplikacji i sekret klienta.
- Zainstaluj narzędzie Azure.ResourceManager.Kusto.
- Zainstaluj usługę Azure.Identity na potrzeby uwierzytelniania.
Dodawanie głównego podmiotu klastra
Uruchom następujący kod, aby dodać podmiot klastra:
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 subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var cluster = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value;
var clusterPrincipalAssignments = cluster.GetKustoClusterPrincipalAssignments();
var clusterPrincipalAssignmentName = "mykustoclusterprincipalassignment";
var principalId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //User email, application ID, or security group name
var role = KustoClusterPrincipalRole.AllDatabasesAdmin; //AllDatabasesAdmin or AllDatabasesViewer
var tenantIdForPrincipal = new Guid("xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx");
var principalType = KustoPrincipalAssignmentType.App; //User, App, or Group
var clusterPrincipalAssignmentData = new KustoClusterPrincipalAssignmentData
{
ClusterPrincipalId = principalId, Role = role, PrincipalType = principalType, TenantId = tenantIdForPrincipal
};
await clusterPrincipalAssignments.CreateOrUpdateAsync(
WaitUntil.Completed, clusterPrincipalAssignmentName, clusterPrincipalAssignmentData
);
| Ustawienie | Sugerowana wartość | Opis pola |
|---|---|---|
| tenantId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Identyfikator najemcy. Znany również jako identyfikator katalogu. |
| Identyfikator subskrypcji | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Identyfikator subskrypcji używany do tworzenia zasobów. |
| clientId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Identyfikator klienta aplikacji, która może uzyskiwać dostęp do zasobów w Twoim dzierżawcy. |
| clientSecret | Symbol zastępczyClientSecret | Klucz tajny klienta aplikacji, który może uzyskiwać dostęp do zasobów w dzierżawie. |
| resourceGroupName | testrg | Nazwa grupy zasobów zawierającej klaster. |
| nazwa klastra | mykustocluster | Nazwa klastra. |
| clusterPrincipalAssignmentName | mykustoclusterprincipalassignment | Nazwa zasobu głównego klastra. |
| principalId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Główny identyfikator, który może być adresem e-mail użytkownika, identyfikatorem aplikacji lub nazwą grupy zabezpieczeń. |
| rola | AllDatabasesAdmin | Rola podstawowa w klastrze, która może być "AllDatabasesAdmin", "AllDatabasesMonitor" lub "AllDatabasesViewer". |
| tenantIdForPrincipal | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Identyfikator dzierżawcy głównego podmiotu. |
| typ główny | Aplikacja | Typ podmiotu, który może być "Użytkownikiem", "Aplikacją" lub "Grupą" |