O Azure Data Explorer encripta todos os dados numa conta de armazenamento inativo. Por predefinição, os dados são encriptados com chaves geridas pela Microsoft. Para um controlo adicional sobre chaves de encriptação, pode fornecer chaves geridas pelo cliente para utilizar para encriptação de dados.
As chaves geridas pelo cliente têm de ser armazenadas num Key Vault do Azure. Pode criar as suas próprias chaves e armazená-las num cofre de chaves ou utilizar uma API do Azure Key Vault para gerar chaves. O cluster do Azure Data Explorer e o cofre de chaves têm de estar na mesma região, mas podem estar em subscrições diferentes. Para obter uma explicação detalhada sobre as chaves geridas pelo cliente, veja Chaves geridas pelo cliente com o Azure Key Vault.
Este artigo mostra-lhe como configurar chaves geridas pelo cliente.
Para exemplos de código baseados em versões anteriores do SDK, veja o artigo arquivado.
Configurar o Azure Key Vault
Para configurar chaves geridas pelo cliente com o Azure Data Explorer, tem de definir duas propriedades no cofre de chaves: Eliminação Recuperável e Não Remover. Estas propriedades não estão ativadas por predefinição. Para ativar estas propriedades, execute Ativar a eliminação recuperável e Ativar a Proteção contra Remoção no PowerShell ou na CLI do Azure num cofre de chaves novo ou existente. Apenas são suportadas chaves RSA do tamanho 2048. Para obter mais informações sobre chaves, consulte Key Vault chaves.
Nota
Para obter informações sobre as limitações da utilização de chaves geridas pelo cliente em clusters de coordenadores e seguidores, veja Limitações.
Atribuir uma identidade gerida ao cluster
Para ativar as chaves geridas pelo cliente para o cluster, atribua primeiro uma identidade gerida atribuída pelo sistema ou atribuída pelo utilizador ao cluster. Irá utilizar esta identidade gerida para conceder ao cluster permissões para aceder ao cofre de chaves. Para configurar identidades geridas, veja identidades geridas.
Ativar a encriptação com chaves geridas pelo cliente
Os passos seguintes explicam como ativar a encriptação de chaves geridas pelo cliente com o portal do Azure. Por predefinição, a encriptação de Data Explorer do Azure utiliza chaves geridas pela Microsoft. Configure o cluster do Azure Data Explorer para utilizar chaves geridas pelo cliente e especifique a chave a associar ao cluster.
Selecione Definições>Encriptação no painel esquerdo do portal.
No painel Encriptação , selecione Ativado para a definição Chave gerida pelo cliente .
Selecione Selecionar Chave.
Na janela Selecionar chave do Azure Key Vault, selecione um cofre de chaves existente na lista pendente. Se selecionar Criar novo para criar um novo Key Vault, será encaminhado para o ecrã Criar Key Vault.
Selecione Chave.
Versão:
Para garantir que esta chave utiliza sempre a versão mais recente da chave, selecione a caixa de verificação Utilizar sempre a versão atual da chave .
Caso contrário, selecione Versão.
Selecione Selecionar.
Em Tipo de identidade, selecione Atribuído pelo Sistema ou Atribuído pelo Utilizador.
Se selecionar Utilizador Atribuído, selecione uma identidade atribuída pelo utilizador na lista pendente.
No painel Encriptação que agora contém a sua chave, selecione Guardar. Quando a criação da CMK for bem-sucedida, verá uma mensagem de êxito em Notificações.
Se selecionar a identidade atribuída pelo sistema ao ativar as chaves geridas pelo cliente para o cluster do Azure Data Explorer, irá criar uma identidade atribuída pelo sistema para o cluster se não existir. Além disso, irá fornecer as permissões get, wrapKey e unwrapKey necessárias para o cluster do Azure Data Explorer no Key Vault selecionado e obter as propriedades Key Vault.
Nota
Selecione Desativar para remover a chave gerida pelo cliente depois de ter sido criada.
As secções seguintes explicam como configurar a encriptação de chaves geridas pelo cliente com o cliente do Azure Data Explorer C#.
Para executar os exemplos neste artigo, crie uma aplicação Microsoft Entra e principal de serviço que possa aceder aos recursos. Pode adicionar a atribuição de função no âmbito da subscrição e obter os , Microsoft Entra Directory (tenant) IDApplication IDe Application Secret.
O fragmento de código seguinte demonstra como utilizar a Biblioteca de Autenticação da Microsoft (MSAL) para adquirir um token de aplicação Microsoft Entra para aceder ao cluster. Para que o fluxo seja bem-sucedido, a aplicação tem de ser registada com Microsoft Entra ID e tem de ter as credenciais para a autenticação da aplicação, como uma chave de aplicação emitida por Microsoft Entra ID ou um certificado X.509v2 registado Microsoft Entra.
Configurar chaves geridas pelo cliente
Por predefinição, a encriptação de Data Explorer do Azure utiliza chaves geridas pela Microsoft. Configure o cluster do Azure Data Explorer para utilizar chaves geridas pelo cliente e especifique a chave a associar ao cluster.
Atualize o cluster com o seguinte código:
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";
var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
var resourceManagementClient = new ArmClient(credentials, subscriptionId);
var resourceGroupName = "testrg";
var clusterName = "mykustocluster";
var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var clusters = resourceGroup.GetKustoClusters();
var cluster = (await clusters.GetAsync(clusterName)).Value;
var clusterPatch = new KustoClusterPatch(cluster.Data.Location)
{
KeyVaultProperties = new KustoKeyVaultProperties
{
KeyName = "<keyName>",
KeyVersion = "<keyVersion>", // Optional, leave as NULL for the latest version of the key.
KeyVaultUri = new Uri("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 cluster.UpdateAsync(WaitUntil.Completed, clusterPatch);
Execute o seguinte comando para verificar se o cluster foi atualizado com êxito:
var clusterData = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value.Data;
Se o resultado contiver ProvisioningState o valor, o Succeeded cluster foi atualizado com êxito.
Os passos seguintes explicam como ativar a encriptação de chaves geridas pelo cliente com o cliente da CLI do Azure. Por predefinição, a encriptação de Data Explorer do Azure utiliza chaves geridas pela Microsoft. Configure o cluster do Azure Data Explorer para utilizar chaves geridas pelo cliente e especifique a chave a associar ao cluster.
Execute o seguinte comando para iniciar sessão no Azure:
az login
Defina a subscrição onde o cluster está registado. Substitua MyAzureSub pelo nome da subscrição do Azure que pretende utilizar.
az account set --subscription MyAzureSub
Execute o seguinte comando para definir a nova chave com a identidade atribuída pelo sistema do cluster
Execute o seguinte comando e verifique a propriedade "keyVaultProperties" para verificar se o cluster foi atualizado com êxito.
az kusto cluster show --cluster-name "mytestcluster" --resource-group "mytestrg"
Os passos seguintes explicam como ativar a encriptação de chaves geridas pelo cliente com o PowerShell. Por predefinição, a encriptação de Data Explorer do Azure utiliza chaves geridas pela Microsoft. Configure o cluster do Azure Data Explorer para utilizar chaves geridas pelo cliente e especifique a chave a associar ao cluster.
Execute o seguinte comando para iniciar sessão no Azure:
Connect-AzAccount
Defina a subscrição onde o cluster está registado.
Os passos seguintes explicam como configurar chaves geridas pelo cliente com modelos do Azure Resource Manager. Por predefinição, a encriptação de Data Explorer do Azure utiliza chaves geridas pela Microsoft. Neste passo, configure o cluster do Azure Data Explorer para utilizar chaves geridas pelo cliente e especifique a chave a associar ao cluster.
Se quiser utilizar uma identidade atribuída pelo sistema para aceder ao cofre de chaves, deixe userIdentity em branco. Caso contrário, defina o ID de recurso da identidade.
Pode implementar o modelo Resource Manager do Azure com o portal do Azure ou com o PowerShell.
Quando criar uma nova versão de uma chave, terá de atualizar o cluster para utilizar a nova versão. Primeiro, ligue Get-AzKeyVaultKey para obter a versão mais recente da chave. Em seguida, atualize as propriedades do cofre de chaves do cluster para utilizar a nova versão da chave, conforme mostrado em Ativar encriptação com chaves geridas pelo cliente.