다음을 통해 공유


Azure Data Explorer 대한 클러스터 보안 주체 추가

Azure 데이터 탐색기는 로그 및 원격 분석 데이터에 사용 가능한 빠르고 확장성이 우수한 데이터 탐색 서비스입니다. 이 문서에서는 C#, Python 또는 ARM(Azure Resource Manager) 템플릿을 사용하여 Azure Data Explorer 클러스터 보안 주체를 추가하는 방법을 알아봅니다.

이전 SDK 버전을 기반으로 하는 코드 샘플은 보관된 문서를 참조하세요.

사전 요구 사항

필수 구성 요소는 보안 주체를 추가하는 데 사용되는 메서드에 따라 달라집니다. 원하는 방법에 대한 관련 탭을 선택합니다.

다음 목록에서는 C#을 사용하여 클러스터 보안 주체를 추가하기 위한 필수 구성 요소를 간략하게 설명합니다.

클러스터 보안 주체 추가

다음 코드를 실행하여 클러스터 주체를 추가합니다.

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
);
설정 제안 값 필드 설명
tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 테넌트 ID 디렉터리 ID라고도 합니다.
subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 리소스를 만드는 데 사용하는 구독 ID입니다.
clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 테넌트의 리소스에 액세스할 수 있는 애플리케이션의 클라이언트 ID입니다.
clientSecret PlaceholderClientSecret 테넌트의 리소스에 액세스할 수 있는 애플리케이션의 클라이언트 암호입니다.
resourceGroupName testrg 클러스터가 포함된 리소스 그룹의 이름입니다.
clusterName mykustocluster 클러스터의 이름입니다.
clusterPrincipalAssignmentName mykustoclusterprincipalassignment 클러스터 보안 주체 리소스의 이름입니다.
principalId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 사용자 이메일, 애플리케이션 ID 또는 보안 그룹 이름이 될 수 있는 보안 주체 ID입니다.
역할(role) AllDatabasesAdmin 'AllDatabasesAdmin', 'AllDatabasesMonitor' 또는 'AllDatabasesViewer'일 수 있는 클러스터 보안 주체의 역할입니다.
tenantIdForPrincipal xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 보안 주체의 테넌트 ID입니다.
principalType '사용자', '앱' 또는 '그룹'이 될 수 있는 보안 주체의 유형입니다.