Azure Data Explorer는 미사용 스토리지 계정의 모든 데이터를 암호화합니다. 기본적으로 데이터는 Microsoft 관리형 키로 암호화됩니다. 암호화 키를 추가로 제어하기 위해 데이터 암호화에 사용할 고객 관리형 키를 제공할 수 있습니다.
고객 관리형 키는 Azure Key Vault에 저장해야 합니다. 고유한 키를 만들어 키 자격 증명 모음에 저장할 수도 있고, Azure Key Vault API를 사용하여 키를 생성할 수도 있습니다. Azure Data Explorer 클러스터와 키 자격 증명 모음은 동일한 지역에 있어야 하지만 서로 다른 구독에 있을 수 있습니다. 고객 관리형 키에 관한 자세한 설명은 Azure Key Vault를 사용하는 고객 관리형 키를 참조하세요.
이 문서에서는 고객 관리형 키를 구성하는 방법을 보여 줍니다.
Azure Key Vault 구성
Azure Data Explorer을 사용하여 고객 관리형 키를 구성하려면 일시 삭제 및 제거 안 함이라는 키 자격 증명 모음의 두 가지 속성을 설정해야 합니다. 이 속성은 기본적으로 사용되지 않습니다. 이 속성을 사용하도록 설정하려면 새롭거나 기존의 키 자격 증명 모음에 대해 PowerShell 또는 Azure CLI에서 일시 삭제를 사용하도록 설정하고 제거 방지를 사용하도록 설정합니다. 2048 크기의 RSA 키만 지원됩니다. 키에 관한 자세한 내용은 Key Vault 키를 참조하세요.
클러스터에 대해 고객 관리형 키를 사용하도록 설정하려면 먼저 시스템이 할당하거나 사용자가 할당한 관리 ID를 클러스터에 할당합니다. 이 관리 ID를 사용하여 키 자격 증명 모음에 액세스할 수 있는 권한을 클러스터에 부여합니다. 관리 ID를 구성하려면 관리 ID를 참조하세요.
다음 단계에서는 Azure Portal 사용하여 고객 관리형 키 암호화를 사용하도록 설정하는 방법을 설명합니다. 기본적으로 Azure Data Explorer 암호화는 Microsoft 관리형 키를 사용합니다. 고객 관리형 키를 사용하도록 Azure Data Explorer 클러스터를 구성하고 클러스터와 연결할 키를 지정합니다.
Azure Key Vault에서 키 선택 창의 드롭다운 목록에서 기존 키 자격 증명 모음을 선택합니다.
새로 만들기를 선택하여 새 Key Vault를 만드는 경우 키 자격 증명 모음 만들기 화면으로 라우팅됩니다.
키를 선택합니다.
버전:
이 키가 항상 최신 키 버전을 사용하게 하려면 항상 현재 키 버전 사용 확인란을 선택합니다.
그렇지 않으면 버전을 선택합니다.
선택을 클릭합니다.
ID 유형에서 시스템 할당 또는 사용자 할당을 선택합니다.
사용자 할당을 선택하는 경우 드롭다운에서 사용자가 할당한 ID를 선택합니다.
이제 키가 포함된 암호화 창에서 저장을 선택합니다. CMK 만들기에 성공하면 알림에 성공 메시지가 표시됩니다.
Azure Data Explorer 클러스터에 고객 관리형 키를 사용하도록 설정할 때 시스템이 할당한 ID를 선택하는 경우에는 클러스터에 대해 시스템이 할당한 ID를 만듭니다(없는 경우). 또한 선택한 Key Vault에서 Azure Data Explorer 클러스터에 필요한 get, wrapKey, unwrapKey 권한을 제공하고 Key Vault 속성을 가져옵니다.
참고
고객 관리형 키를 만든 후 제거하려면 끄기를 선택합니다.
다음 섹션에서는 Azure Data Explorer C# 클라이언트를 사용하여 고객 관리형 키 암호화를 구성하는 방법을 설명합니다.
이 문서의 예를 실행하려면 리소스에 액세스할 수 있는 Azure AD 애플리케이션 및 서비스 주체를 만듭니다. 구독 범위에서 역할 할당을 추가하고 필수 Azure AD Directory (tenant) ID, Application ID 및 Application Secret을 가져올 수 있습니다.
다음 코드 조각에서는 MSAL(Microsoft 인증 라이브러리)을 사용하여 클러스터에 액세스하는 Azure AD 애플리케이션 토큰을 획득하는 방법을 보여 줍니다. 흐름이 성공하려면 애플리케이션을 Azure AD 등록해야 하며 Azure AD 발급된 애플리케이션 키 또는 Azure AD 등록된 X.509v2 인증서와 같은 애플리케이션 인증을 위한 자격 증명이 있어야 합니다.
고객 관리형 키 구성
기본적으로 Azure Data Explorer 암호화는 Microsoft 관리형 키를 사용합니다. 고객 관리형 키를 사용하도록 Azure Data Explorer 클러스터를 구성하고 클러스터와 연결할 키를 지정합니다.
다음 코드를 사용하여 클러스터를 업데이트합니다.
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; // Azure AD Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; // Application ID
var clientSecret = "PlaceholderClientSecret"; // Application secret
var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
// Create a confidential authentication client for Azure AD:
var authClient = ConfidentialClientApplicationBuilder.Create(clientId)
.WithAuthority($"https://login.microsoftonline.com/{tenantId}")
.WithClientSecret(clientSecret) // can be replaced by .WithCertificate to authenticate with an X.509 certificate
.Build();
// Acquire application token
var result = authClient.AcquireTokenForClient(
new[] { "https://management.core.windows.net/.default" } // Define scopes for accessing Azure management plane
).ExecuteAsync().Result;
var credentials = new TokenCredentials(result.AccessToken, result.TokenType);
var kustoManagementClient = new KustoManagementClient(credentials) { SubscriptionId = subscriptionId };
var resourceGroupName = "testrg";
var clusterName = "mykustocluster";
var clusterPatch = new ClusterUpdate(
keyVaultProperties: new KeyVaultProperties(
keyName: "<keyName>",
keyVersion: "<keyVersion>", // Optional, leave as NULL for the latest version of the key.
keyVaultUri: "https://<keyVaultName>.vault.azure.net/",
userIdentity: "/subscriptions/<identitySubscriptionId>/resourcegroups/<identityResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityName>" // Use NULL if you want to use system assigned identity.
)
);
await kustoManagementClient.Clusters.UpdateAsync(resourceGroupName, clusterName, clusterPatch);
다음 명령을 실행하여 클러스터가 성공적으로 업데이트되었는지 확인합니다.
var clusterData = await kustoManagementClient.Clusters.GetAsync(resourceGroupName, clusterName);
결과에 값이 Succeeded인 ProvisioningState가 있으면 클러스터가 성공적으로 업데이트된 것입니다.
다음 단계에서는 Azure CLI 클라이언트를 사용하여 고객 관리형 키 암호화를 사용하도록 설정하는 방법을 설명합니다. 기본적으로 Azure Data Explorer 암호화는 Microsoft 관리형 키를 사용합니다. 고객 관리형 키를 사용하도록 Azure Data Explorer 클러스터를 구성하고 클러스터와 연결할 키를 지정합니다.
다음 명령을 실행하여 Azure에 로그인합니다.
az login
클러스터가 등록된 구독을 설정합니다.
MyAzureSub를 사용할 Azure 구독의 이름으로 바꿉니다.
다음 명령을 실행하고 ‘keyVaultProperties’ 속성을 확인하여 클러스터가 성공적으로 업데이트되었는지 확인합니다.
az kusto cluster show --cluster-name "mytestcluster" --resource-group "mytestrg"
다음 단계에서는 PowerShell을 사용하여 고객 관리형 키 암호화를 사용하도록 설정하는 방법을 설명합니다. 기본적으로 Azure Data Explorer 암호화는 Microsoft 관리형 키를 사용합니다. 고객 관리형 키를 사용하도록 Azure Data Explorer 클러스터를 구성하고 클러스터와 연결할 키를 지정합니다.
다음 단계에서는 Azure Resource Manager 템플릿을 사용하여 고객 관리형 키를 구성하는 방법을 설명합니다. 기본적으로 Azure Data Explorer 암호화는 Microsoft 관리형 키를 사용합니다. 이 단계에서는 고객 관리형 키를 사용하도록 Azure Data Explorer 클러스터를 구성하고 클러스터와 연결할 키를 지정합니다.
시스템이 할당한 ID를 사용하여 키 자격 증명 모음에 액세스하려는 경우 userIdentity를 비워 둡니다. 그렇지 않으면 ID의 리소스 ID를 설정합니다.
Azure Portal을 사용하여 또는 PowerShell을 사용하여 Azure Resource Manager 템플릿을 배포할 수 있습니다.
새 버전의 키를 만들 때 새 버전을 사용하도록 클러스터를 업데이트해야 합니다. 먼저 Get-AzKeyVaultKey를 호출하여 최신 버전의 키를 가져옵니다. 그런 다음 고객 관리형 키로 암호화 사용에서와 같이 새 버전의 키를 사용하도록 클러스터의 키 자격 증명 모음 속성을 업데이트합니다.