O Azure Data Explorer encripta todos os dados numa conta de armazenamento inativa. Por predefinição, os dados são encriptados com chaves geridas pela Microsoft. Para obter 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 pode 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.
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 chaves de Key Vault.
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 permissões de cluster para aceder ao cofre de chaves. Para configurar identidades geridas, veja identidades geridas.
Ativar a encriptação com chaves geridas pelo cliente
Estes 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 .
Clique em 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.
Clique em Selecionar.
Em Tipo de identidade, selecione Atribuído pelo Sistema ou Utilizador Atribuído.
Se selecionar Utilizador Atribuído, escolha 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, caso não exista uma. 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 um Azure AD aplicação e o principal de serviço que possam aceder aos recursos. Pode adicionar a atribuição de função no âmbito da subscrição e obter os necessários Azure AD Directory (tenant) ID, Application 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 Azure AD para aceder ao cluster. Para que o fluxo seja bem-sucedido, a aplicação tem de ser registada com Azure AD e tem de ter as credenciais para a autenticação da aplicação, como uma chave de aplicação emitida Azure AD ou um certificado X.509v2 registado Azure AD.
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";
// 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);
Execute o seguinte comando para verificar se o cluster foi atualizado com êxito:
var clusterData = await kustoManagementClient.Clusters.GetAsync(resourceGroupName, clusterName);
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 de Resource Manager do Azure com o portal do Azure ou com o PowerShell.
Quando cria 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 a encriptação com chaves geridas pelo cliente.