Menambahkan prinsip kluster untuk Azure Data Explorer
Azure Data Explorer adalah layanan eksplorasi data yang cepat dan sangat dapat diskalakan untuk data log dan telemetri. Dalam artikel ini, Anda akan mempelajari cara menambahkan prinsipal kluster untuk Azure Data Explorer dengan menggunakan templat C#, Python, atau Azure Resource Manager (ARM).
Untuk sampel kode berdasarkan versi SDK sebelumnya, lihat artikel yang diarsipkan.
Prasyarat
Prasyarat bervariasi berdasarkan metode yang digunakan untuk menambahkan prinsipal. Pilih tab yang relevan untuk metode pilihan Anda.
Daftar berikut menguraikan prasyarat untuk menambahkan prinsipal kluster dengan C#.
- Akun Microsoft atau identitas pengguna Microsoft Entra. Langganan Azure tidak diperlukan.
- Kluster dan database Azure Data Explorer. Membuat kluster dan database.
- Visual Studio 2022 Community Edition. Aktifkan pengembangan Azure selama penyiapan Visual Studio.
- Aplikasi Microsoft Entra dan perwakilan layanan yang dapat mengakses sumber daya. Simpan ID Direktori (penyewa),ID Aplikasi, dan Rahasia Klien.
- Instal Azure.ResourceManager.Kusto.
- Instal Azure.Identity untuk autentikasi.
Menambahkan prinsipal kluster
Jalankan kode berikut untuk menambahkan perwakilan kluster:
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
);
Pengaturan | Nilai yang disarankan | Deskripsi bidang |
---|---|---|
tenantId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | ID penyewa Anda. Juga dikenal sebagai ID direktori. |
subscriptionId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | ID langganan yang Anda gunakan untuk pembuatan sumber daya. |
clientId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | ID klien aplikasi yang dapat mengakses sumber daya di penyewa Anda. |
clientSecret | PlaceholderClientSecret | Rahasia klien aplikasi yang dapat mengakses sumber daya di penyewa Anda. |
resourceGroupName | testrg | Nama grup sumber daya yang berisi kluster Anda. |
clusterName | mykustocluster | Nama kluster Anda. |
clusterPrincipalAssignmentName | mykustoclusterprincipalassignment | Nama sumber daya utama kluster Anda. |
principalId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | ID utama, yang dapat berupa email pengguna, ID aplikasi, atau nama grup keamanan. |
peran | AllDatabasesAdmin | Peran perwakilan kluster Anda, yang dapat berupa 'AllDatabasesAdmin', 'AllDatabasesMonitor', atau 'AllDatabasesViewer'. |
tenantIdForPrincipal | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | ID penyewa utama. |
principalType | Aplikasi | Jenis prinsipal, yang dapat berupa 'Pengguna', 'Aplikasi', atau 'Grup' |