O Azure Data Explorer criptografa todos os dados em uma conta de armazenamento em repouso. Por padrão, os dados são criptografados com chaves gerenciadas pela Microsoft. Para obter controle adicional sobre as chaves de criptografia, você pode fornecer chaves gerenciadas pelo cliente para usar para criptografia de dados.
As chaves gerenciadas pelo cliente devem ser armazenadas em um Azure Key Vault. Você pode criar suas próprias chaves e armazená-las em um cofre de chaves ou pode usar as APIs do Azure Key Vault para gerar chaves. O cluster do Azure Data Explorer e o cofre de chaves devem estar na mesma região, mas podem estar em assinaturas diferentes. Para uma explicação detalhada sobre chaves gerenciadas pelo cliente, consulte Chaves gerenciadas pelo cliente com o Azure Key Vault.
Este artigo mostra como configurar chaves gerenciadas pelo cliente.
Configurar o Azure Key Vault
Para configurar as chaves gerenciadas pelo cliente com o Azure Data Explorer, você precisa definir duas propriedades no cofre de chaves: Exclusão Temporária e Não Limpar. Por padrão, essas propriedades não estão habilitadas. Para habilitar essas propriedades, execute Habilitar a exclusão temporária e Habilitar a proteção de limpeza no PowerShell ou na CLI do Azure em um cofre de chaves novo ou existente. Somente chaves RSA de tamanho 2048 possuem suporte. Para obter mais informações sobre chaves, confira chaves do Key Vault.
Observação
Não há suporte para a criptografia de dados usando chaves gerenciadas pelo cliente em clusters líder e seguidor.
Atribuir uma identidade gerenciada ao cluster
Para habilitar chaves gerenciadas pelo cliente para o cluster, primeiro atribua uma identidade gerenciada atribuída pelo sistema ou pelo usuário ao cluster. Você usará essa identidade gerenciada para conceder permissões do cluster para acessar o cofre de chaves. Para configurar identidades gerenciadas, confira identidades gerenciadas.
habilitar a criptografia com chaves gerenciadas pelo cliente
Estas etapas a seguir explicam como habilitar a criptografia de chaves gerenciadas pelo cliente usando o portal do Azure. Por padrão, a criptografia do Azure Data Explorer usa as chaves gerenciadas pela Microsoft. Configure o cluster do Azure Data Explorer para usar as chaves gerenciadas pelo cliente e especifique a chave a ser associada ao cluster.
Selecione Configurações>Criptografia no painel esquerdo do portal.
No painel Criptografia, selecione Ativado para a configuração de Chave gerenciada pelo cliente.
Clique em Selecionar chave.
Na janela Selecionar chave do Azure Key Vault, selecione um Key Vault existente na lista suspensa. Se você selecionar Criar novo para criar um novo Key Vault, você será encaminhado para a tela Criar Key Vault.
Selecione Chave.
Versão:
Para garantir que essa chave sempre use a versão mais recente da chave, marque a caixa de seleção Sempre usar versão atual da chave.
Caso contrário, selecione Versão.
Clique em Selecionar.
Em Tipo de identidade, selecione Atribuído pelo sistema ou Atribuído pelo usuário.
Se você selecionar Atribuído pelo usuário, escolha uma identidade atribuída pelo usuário na lista suspensa.
No painel Criptografia que agora contém sua chave, selecione Salvar. Quando a criação da CMK for bem-sucedida, você verá uma mensagem de êxito nas Notificações.
Se você selecionar a identidade atribuída pelo sistema ao habilitar chaves gerenciadas pelo cliente para o cluster do Azure Data Explorer, você criará uma identidade atribuída pelo sistema para o cluster caso não exista uma. Além disso, você 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 do Key Vault.
Observação
Selecione Desativado para remover a chave gerenciada pelo cliente depois que ela tiver sido criada.
As seções a seguir explicam como configurar a criptografia de chaves gerenciadas pelo cliente usando o cliente do Azure Data Explorer C#.
Para executar os exemplos neste artigo, crie um aplicativo do Azure AD e a entidade de serviço que pode acessar os recursos. Você pode adicionar a atribuição de função no escopo da assinatura e obter Azure AD Directory (tenant) ID, Application ID e Application Secret necessários.
O snippet de código a seguir demonstra como usar a MSAL (Biblioteca de Autenticação da Microsoft) para adquirir um token de aplicativo Azure AD para acessar o cluster. Para que o fluxo seja bem-sucedido, o aplicativo deve ser registrado com Azure AD e você deve ter as credenciais para autenticação de aplicativo, como uma chave de aplicativo emitida por Azure AD ou um certificado X.509v2 registrado Azure AD.
Configurar chaves gerenciadas pelo cliente
Por padrão, a criptografia do Azure Data Explorer usa as chaves gerenciadas pela Microsoft. Configure o cluster do Azure Data Explorer para usar as chaves gerenciadas pelo cliente e especifique a chave a ser associada ao cluster.
Atualize o cluster usando o código a seguir:
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 comando a seguir para verificar se o cluster foi atualizado com sucesso:
var clusterData = await kustoManagementClient.Clusters.GetAsync(resourceGroupName, clusterName);
Se o resultado contém ProvisioningState com o valor Succeeded, o cluster foi atualizado com sucesso.
As etapas a seguir explicam como habilitar a criptografia de chaves gerenciadas pelo cliente usando o cliente da CLI do Azure. Por padrão, a criptografia do Azure Data Explorer usa as chaves gerenciadas pela Microsoft. Configure o cluster do Azure Data Explorer para usar as chaves gerenciadas pelo cliente e especifique a chave a ser associada ao cluster.
Execute o comando a seguir para entrar no Azure:
az login
Defina a assinatura na qual o cluster está registrado. Substitua MyAzureSub pelo nome da assinatura do Azure que deseja usar.
az account set --subscription MyAzureSub
Execute o comando a seguir para definir a nova chave com a identidade atribuída do sistema do cluster
Execute o comando a seguir e verifique a propriedade 'keyVaultProperties' para verificar se o cluster foi atualizado com êxito.
az kusto cluster show --cluster-name "mytestcluster" --resource-group "mytestrg"
As etapas a seguir explicam como habilitar a criptografia de chaves gerenciadas pelo cliente usando o PowerShell. Por padrão, a criptografia do Azure Data Explorer usa as chaves gerenciadas pela Microsoft. Configure o cluster do Azure Data Explorer para usar as chaves gerenciadas pelo cliente e especifique a chave a ser associada ao cluster.
Execute o comando a seguir para entrar no Azure:
Connect-AzAccount
Defina a assinatura na qual o cluster está registrado.
As etapas a seguir explicam como configurar chaves gerenciadas pelo cliente usando modelos de Resource Manager do Azure. Por padrão, a criptografia do Azure Data Explorer usa as chaves gerenciadas pela Microsoft. Nesta etapa, configure o cluster do Azure Data Explorer para usar as chaves gerenciadas pelo cliente e especifique a chave a ser associada ao cluster.
Se você quiser usar uma identidade atribuída pelo sistema para acessar o cofre de chaves, deixe userIdentity em branco. Caso contrário, defina a ID do recurso da identidade.
Você pode implantar o modelo do Azure Resource Manager usando o portal do Azure ou o PowerShell.
Ao criar uma nova versão de uma chave, será necessário atualizar o cluster para usar a nova versão. Primeiro, chame Get-AzKeyVaultKey para obter a versão mais recente da chave. Em seguida, atualize as propriedades do cofre de chaves do cluster para usar a nova versão da chave, conforme mostrado em Habilitar criptografia com chaves gerenciadas pelo cliente.