Azure Data Explorer는 미사용 스토리지 계정의 모든 데이터를 암호화합니다. 기본적으로 데이터는 Microsoft 관리형 키로 암호화됩니다. 암호화 키에 대한 추가 제어를 위해 데이터 암호화에 사용할 고객 관리형 키를 제공할 수 있습니다.
고객 관리형 키는 Azure Key Vault에 저장해야 합니다. 고유한 키를 만들어 키 자격 증명 모음에 저장하거나 Azure Key Vault API를 사용하여 키를 생성할 수 있습니다. Azure Data Explorer 클러스터와 키 보관소는 동일한 지역에 있어야 하지만 서로 다른 구독에 있을 수 있습니다. 고객 관리형 키에 대한 자세한 설명은 Azure Key Vault를 사용하여 고객 관리형 키를 참조하세요.
이 문서에서는 고객 관리형 키를 구성하는 방법을 보여줍니다.
Azure Data Explorer에서 고객 관리형 키를 구성하려면 키 자격 증명 모음에 일시 삭제 및 제거 안 함이라는 두 가지 속성을 설정해야 합니다. 이러한 속성은 기본적으로 사용하도록 설정되지 않습니다. 이러한 속성을 사용하려면 새 키 자격 증명 모음 또는 기존 키 자격 증명 모음에서 일시 삭제 사용 및 PowerShell 또는 Azure CLI에서 제거 보호를 사용하도록 설정합니다. 2048 크기의 RSA 키만 지원됩니다. 키에 대한 자세한 내용은 Key Vault 키를 참조하세요.
클러스터에 관리 ID 할당
클러스터에 고객 관리형 키를 사용하도록 설정하려면 먼저 시스템 할당 또는 사용자 할당 관리 ID를 클러스터에 할당합니다. 이 관리 ID를 사용하여 클러스터에 키 자격 증명 모음에 액세스할 수 있는 권한을 부여합니다. 관리 ID를 구성하려면 관리 ID를 참조하세요.
고객 관리형 키를 사용하여 암호화 사용
다음 단계에서는 Azure Portal을 사용하여 고객 관리형 키 암호화를 사용하도록 설정하는 방법을 설명합니다. 기본적으로 Azure Data Explorer 암호화는 Microsoft 관리형 키를 사용합니다. 고객 관리형 키를 사용하도록 Azure Data Explorer 클러스터를 구성하고 클러스터와 연결할 키를 지정합니다.
Azure Portal에서 Azure Data Explorer 클러스터 리소스로 이동합니다.
포털의 왼쪽 창에서 설정>암호화 를 선택합니다.
암호화 창에서 고객 관리형 키 설정에 대해 켜기를 선택합니다.
키 선택을 클릭합니다.
Azure Key Vault에서 키 선택 창에서 드롭다운 목록에서 기존 키 자격증명 보관소를 선택합니다.
새로 만들기를 선택하여 새 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);
결과에 값이 ProvisioningStateSucceeded 포함된 경우 클러스터가 성공적으로 업데이트되었습니다.
다음 단계에서는 Azure CLI 클라이언트를 사용하여 고객 관리형 키 암호화를 사용하도록 설정하는 방법을 설명합니다. 기본적으로 Azure Data Explorer 암호화는 Microsoft 관리형 키를 사용합니다. 고객 관리형 키를 사용하도록 Azure Data Explorer 클러스터를 구성하고 클러스터와 연결할 키를 지정합니다.
다음 명령을 실행하여 Azure에 로그인합니다.
az login
클러스터가 등록된 구독을 설정합니다.
MyAzureSub를 사용하려는 Azure 구독의 이름으로 바꿉니다.
az account set --subscription MyAzureSub
다음 명령을 실행하여 클러스터의 시스템 할당 ID로 새 키를 설정합니다.
az kusto cluster update --cluster-name "mytestcluster" --resource-group "mytestrg" --key-vault-properties key-name="<key-name>" key-version="<key-version>" key-vault-uri="<key-vault-uri>"
또는 사용자 할당 ID를 사용하여 새 키를 설정합니다.
az kusto cluster update --cluster-name "mytestcluster" --resource-group "mytestrg" --key-vault-properties key-name="<key-name>" key-version="<key-version>" key-vault-uri="<key-vault-uri>" key-user-identity="<user-identity-resource-id>"
다음 명령을 실행하고 'keyVaultProperties' 속성을 확인하여 클러스터가 성공적으로 업데이트되었는지 확인합니다.
az kusto cluster show --cluster-name "mytestcluster" --resource-group "mytestrg"
다음 단계에서는 PowerShell을 사용하여 고객 관리형 키 암호화를 사용하도록 설정하는 방법을 설명합니다. 기본적으로 Azure Data Explorer 암호화는 Microsoft 관리형 키를 사용합니다. 고객 관리형 키를 사용하도록 Azure Data Explorer 클러스터를 구성하고 클러스터와 연결할 키를 지정합니다.
다음 명령을 실행하여 Azure에 로그인합니다.
Connect-AzAccount
클러스터가 등록된 구독을 설정하십시오.
Set-AzContext -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
다음 명령을 실행하여 시스템 할당 ID를 사용하여 새 키를 설정합니다.
Update-AzKustoCluster -ResourceGroupName "mytestrg" -Name "mytestcluster" -KeyVaultPropertyKeyName "<key-name>" -KeyVaultPropertyKeyVaultUri "<key-vault-uri>" -KeyVaultPropertyKeyVersion "<key-version>"
또는 사용자 할당 ID를 사용하여 새 키를 설정합니다.
Update-AzKustoCluster -ResourceGroupName "mytestrg" -Name "mytestcluster" -KeyVaultPropertyKeyName "<key-name>" -KeyVaultPropertyKeyVaultUri "<key-vault-uri>" -KeyVaultPropertyKeyVersion "<key-version>" -KeyVaultPropertyUserIdentity "user-assigned-identity-resource-id"
다음 명령을 실행하고 'KeyVaultProperty...' 속성을 확인하여 클러스터가 성공적으로 업데이트되었는지 검증합니다.
Get-AzKustoCluster -Name "mytestcluster" -ResourceGroupName "mytestrg" | Format-List
다음 단계에서는 Azure Resource Manager 템플릿을 사용하여 고객 관리형 키를 구성하는 방법을 설명합니다. 기본적으로 Azure Data Explorer 암호화는 Microsoft 관리형 키를 사용합니다. 이 단계에서는 고객 관리형 키를 사용하도록 Azure Data Explorer 클러스터를 구성하고 클러스터와 연결할 키를 지정합니다.
시스템에서 할당된 ID를 사용하여 키 자격 증명 모음에 액세스하려면 userIdentity을(를) 비워 두세요. 그렇지 않으면 ID의 리소스 ID를 설정합니다.
Azure Portal을 사용하거나 PowerShell을 사용하여 Azure Resource Manager 템플릿을 배포할 수 있습니다.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"clusterName": {
"type": "string",
"defaultValue": "[concat('kusto', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Name of the cluster to create"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {},
"resources": [
{
"name": "[parameters('clusterName')]",
"type": "Microsoft.Kusto/clusters",
"sku": {
"name": "Standard_E8ads_v5",
"tier": "Standard",
"capacity": 2
},
"apiVersion": "2019-09-07",
"location": "[parameters('location')]",
"properties": {
"keyVaultProperties": {
"keyVaultUri": "<keyVaultUri>",
"keyName": "<keyName>",
"keyVersion": "<keyVersion>",
"userIdentity": "<userIdentity>"
}
}
}
]
}
키 버전 업데이트
새 버전의 키를 만들 때 새 버전을 사용하도록 클러스터를 업데이트해야 합니다. 먼저 키의 최신 버전을 가져오기 위해 호출 Get-AzKeyVaultKey 합니다. 그런 다음 고객 관리형 키를 사용하여 암호화 사용과 같이 새 버전의 키를 사용하도록 클러스터의 키 자격 증명 모음 속성을 업데이트합니다.
다음 단계