Ativer chaves geridas pelo cliente para serviços geridos.
Nota
Este recurso requer o plano Premium.
Para um controlo adicional dos seus dados, pode adicionar a sua própria chave para proteger e controlar o acesso a alguns tipos de dados. O Azure Databricks tem vários recursos principais gerenciados pelo cliente. Para comparar os recursos relacionados, consulte Chaves gerenciadas pelo cliente para criptografia.
Gorjeta
Este artigo descreve como configurar sua própria chave dos cofres do Cofre de Chaves do Azure para serviços gerenciados. Para obter instruções sobre como usar uma chave do HSM gerenciado do Azure Key Vault, consulte Habilitar chaves gerenciadas pelo cliente do HSM para serviços gerenciados.
Os dados de serviços gerenciados no plano de controle do Azure Databricks são criptografados em repouso. Você pode adicionar uma chave gerenciada pelo cliente para serviços gerenciados para ajudar a proteger e controlar o acesso aos seguintes tipos de dados criptografados:
- Origem do bloco de anotações no plano de controle do Azure Databricks.
- Os resultados do bloco de anotações para blocos de anotações são executados interativamente (não como trabalhos) armazenados no plano de controle. Por padrão, resultados maiores também são armazenados no bucket raiz do espaço de trabalho. Você pode configurar o Azure Databricks para armazenar todos os resultados do bloco de anotações interativo em sua conta na nuvem.
- Segredos armazenados pelas APIs do gerenciador de segredos.
- Consultas SQL Databricks e histórico de consultas.
- Tokens de acesso pessoal (PAT) ou outras credenciais usadas para configurar a integração do Git com pastas Databricks Git.
Depois de adicionar uma criptografia de chave gerenciada pelo cliente para um espaço de trabalho, o Azure Databricks usa sua chave para controlar o acesso à chave que criptografa operações de gravação futuras nos dados de serviços gerenciados do seu espaço de trabalho. Os dados existentes não são criptografados novamente. A chave de criptografia de dados é armazenada em cache na memória para várias operações de leitura e gravação e removida da memória em um intervalo regular. Novas solicitações para esses dados exigem outra solicitação para o sistema de gerenciamento de chaves do seu serviço de nuvem. Se você excluir ou revogar sua chave, a leitura ou gravação nos dados protegidos falhará no final do intervalo de tempo do cache.
Você pode girar (atualizar) a chave gerenciada pelo cliente posteriormente. Consulte Rodar a chave mais tarde.
Esse recurso não criptografa dados armazenados fora do plano de controle. Para outros recursos de chave gerenciados pelo cliente, consulte Chaves gerenciadas pelo cliente para criptografia
Requisitos
Para usar a CLI do Azure para essas tarefas, instale a ferramenta CLI do Azure e instale a extensão Databricks:
az extension add --name databricks
Para usar o Powershell para essas tarefas, instale o Azure PowerShell e instale o módulo Databricks Powershell. Você também deve fazer login:
Connect-AzAccount
Para iniciar sessão na sua conta do Azure como utilizador, consulte Início de sessão do PowerShell com uma conta de utilizador do Azure Databricks. Para iniciar sessão na sua conta do Azure como entidade de serviço, consulte Início de sessão do PowerShell com uma entidade de serviço do Microsoft Entra ID.
Etapa 1: configurar um cofre de chaves
Você deve criar uma instância do Azure Key Vault e definir suas permissões. Você pode fazer isso por meio do portal do Azure, CLI ou APIs.
Importante
O Cofre da Chave deve estar no mesmo locatário do Azure que seu espaço de trabalho do Azure Databricks.
Estas instruções oferecem detalhes sobre várias opções de implantação:
Usar o portal do Azure
- Crie ou selecione um Cofre de Chaves:
- Para criar um Cofre da Chave, vá para a página do portal do Azure para criar um Cofre da Chave. Clique em + Criar. Insira o nome do grupo de recursos, o nome do Cofre da Chave, a região e o nível de preço. Clique em Rever + criar e, em seguida, clique em Criar.
- Para usar um Cofre da Chave existente, copie o nome do Cofre da Chave para a próxima etapa.
- Obtenha a ID do objeto do aplicativo AzureDatabricks :
- No portal do Azure, aceda a Microsoft Entra ID.
- Selecione Aplicações Empresariais no menu lateral.
- Procure
AzureDatabricks
e clique no Aplicativo Empresarial nos resultados. - Em Propriedades, copie o ID do objeto.
- Adicione uma política de acesso ao Cofre da Chave usando o portal do Azure:
Navegue até o Cofre da Chave do Azure que você usará para configurar chaves gerenciadas pelo cliente para serviços gerenciados para seu espaço de trabalho.
Clique na guia Políticas de acesso no painel esquerdo.
Selecione o botão Criar localizado na parte superior da página.
Na secção Permissões de chaves do separador Permissões, ative Obter, Anular o Encapsulamento da Chave num Wrapper e Encapsular a Chave num Wrapper.
Clique em Next.
Na guia Principal, digite
AzureDatabricks
e role até o primeiro resultado do Aplicativo Empresarial que tenha uma ID do Aplicativo e2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
selecione-o.Continue para a guia Revisar + criar e clique em b.
Usar a CLI do Azure
Use a CLI do Azure para concluir as instruções a seguir.
Crie um Cofre de Chaves ou selecione um Cofre de Chaves existente:
Para criar um Cofre da Chave, use o seguinte comando da CLI do Azure e substitua os itens entre colchetes pela sua região, nome do Cofre da Chave, nome do grupo de recursos e local:
az keyvault create --location <region> \ --name <key-vault-name> \ --resource-group <resource-group-name> \ --location <location> \ --enable-purge-protection
Para usar um Cofre da Chave existente, copie o nome do Cofre da Chave para a próxima etapa.
Obtenha a ID do objeto do aplicativo AzureDatabricks com a CLI do Azure.
az ad sp show --id "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d" \ --query "id" \ --output tsv
Confirme se você está usando a assinatura correta do Azure:
az account set --subscription {subscription_id}
Usar o Azure Powershell
Você pode criar um novo Cofre da Chave ou usar um existente.
Criar um Key Vault:
$keyVault = New-AzKeyVault -Name <key-vault-name> \
-ResourceGroupName <resource-group-name> \
-Location <location> \
-sku <sku> \
-EnablePurgeProtection
Use um Cofre de Chaves existente:
$keyVault = Get-AzKeyVault -VaultName <key-vault-name>
Passo 2: Preparar uma chave
Você pode criar uma chave ou usar uma chave existente. Use qualquer ferramenta que preferir usar: portal do Azure, CLI do Azure ou outras ferramentas.
Utilizar a CLI do Azure
Crie uma chave no Cofre da Chave. O KeyType deve ser RSA.
Para criar a chave na CLI, execute este comando:
az keyvault key create --name <key-name> \
--vault-name <key-vault-name> \
--protection software
Anote os seguintes valores, que você pode obter do ID da chave na kid
propriedade na resposta. Você os usará nas etapas subsequentes:
- URL do Cofre da Chave: a parte inicial do ID da chave que inclui o nome do Cofre da Chave. Tem a forma
https://<key-vault-name>.vault.azure.net
. - Nome da chave: Nome da sua chave.
- Versão da chave: Versão da chave.
O ID de chave completo geralmente tem o formulário https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>
. As chaves do Azure Key Vault que estão em uma nuvem não pública têm uma forma diferente.
Para usar uma chave existente em vez de criar uma, obtenha e copie esses valores para sua chave para que você possa usá-los nas próximas etapas. Verifique se a chave existente está ativada antes de continuar.
Utilizar o Azure Powershell
Se você planeja criar uma chave, talvez seja necessário definir a política de acesso, dependendo de como e quando você a criou. Por exemplo, se você criou recentemente o Cofre da Chave usando o PowerShell, o novo Cofre da Chave pode não ter a política de acesso necessária para criar uma chave. O exemplo a seguir usa o
EmailAddress
parâmetro para definir a política. Para obter detalhes relacionados, consulte o artigo da Microsoft sobre Set-AzKeyVaultAccessPolicy.Defina a política de acesso em um novo Cofre de Chaves:
Set-AzKeyVaultAccessPolicy \ -VaultName $keyVault.VaultName \ -PermissionsToKeys all \ -EmailAddress <email-address>
Você pode criar uma chave ou recuperar uma chave existente:
Crie uma chave:
$key = Add-AzKeyVaultKey \ -VaultName $keyVault.VaultName \ -Name <key-name> \ -Destination 'Software'
Recupere uma chave existente:
$key = Get-AzKeyVaultKey \ -VaultName $keyVault.VaultName \ -Name <key-name>
Adicione uma política de acesso com permissões ao Cofre da Chave:
$managedService = Get-AzureADServicePrincipal \ -Filter "appId eq '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d'" Set-AzKeyVaultAccessPolicy -VaultName $keyVault.VaultName \ -ObjectId $managedService.ObjectId \ -PermissionsToKeys wrapkey,unwrapkey,get
Etapa 3: adicionar uma chave a um espaço de trabalho
Você pode implantar um novo espaço de trabalho com uma chave gerenciada pelo cliente para serviços gerenciados ou adicionar uma chave a um espaço de trabalho existente. Você pode fazer as duas coisas com a CLI do Azure, Powershell, modelos ARM, portal do Azure ou outras ferramentas. Esta seção inclui detalhes para várias opções de implantação:
- Usar o portal do Azure sem modelo
- Usar a CLI do Azure sem modelo
- Usar o Powershell sem modelo
- Aplicar alterações com um modelo ARM
Usar o portal do Azure sem modelo
Vá para a página inicial do Portal do Azure.
Clique em Criar um recurso no canto superior esquerdo da página.
Na barra de pesquisa, digite
Azure Databricks
e clique na opção Azure Databricks .Clique em Criar no widget Azure Databricks.
Insira valores para os campos de entrada nas guias Noções básicas e Rede .
Depois de chegar à guia Criptografia :
- Para criar um espaço de trabalho, habilite Usar sua própria chave na seção Serviços gerenciados.
- Para atualizar um espaço de trabalho, habilite os Serviços Gerenciados.
Defina os campos de criptografia.
- No campo Identificador de Chave, cole o Identificador de Chave da sua chave do Cofre da Chave do Azure.
- No menu pendente Subscrição, introduza o nome da subscrição da sua chave do Cofre da Chave do Azure.
Preencha as guias restantes e clique em Revisar + Criar (para novo espaço de trabalho) ou Salvar (para atualizar um espaço de trabalho).
Importante
Se você girar a chave, você deve manter a chave antiga disponível por 24 horas.
Usar a CLI do Azure sem modelo
Adicione uma política de acesso ao Cofre da Chave com o seguinte comando. Substitua
<key-vault-name>
pelo nome do cofre que você usou na etapa anterior e substitua<object-id>
pelo ID do objeto doAzureDatabricks
aplicativo.az keyvault set-policy -n <key-vault-name> \ --key-permissions get wrapKey unwrapKey \ --object-id <object-id>
Criar ou atualizar um espaço de trabalho:
Para criação e atualização, adicione estes campos ao comando:
managed-services-key-name
: Nome da chavemanaged-services-key-vault
: URI do cofre da chavemanaged-services-key-version
: Versão chave. Use a versão de chave específica e nãolatest
.
Exemplo de criação de um espaço de trabalho usando estes campos:
az databricks workspace create --name <workspace-name> \ --resource-group <resource-group-name> \ --location <location> \ --sku premium \ --managed-services-key-name <key-name> \ --managed-services-key-vault <key-vault-uri> \ --managed-services-key-version <key-version>
Exemplo de atualização de um espaço de trabalho usando estes campos:
az databricks workspace update --name <workspace-name> \ --resource-group <resource-group-name> \ --managed-services-key-name <key-name> \ --managed-services-key-vault <key-vault-uri> \ --managed-services-key-version <key-version>
Importante
Se você girar a chave, você deve manter a chave antiga disponível por 24 horas.
Usar o Powershell sem modelo
Para criar ou atualizar um espaço de trabalho, adicione os seguintes parâmetros ao comando da sua nova chave:
ManagedServicesKeyVaultPropertiesKeyName
: Nome da chaveManagedServicesKeyVaultPropertiesKeyVaultUri
: URI de chaveManagedServicesKeyVaultPropertiesKeyVersion
: Versão chave. Use a versão de chave específica e nãolatest
.
Exemplo de criação de espaço de trabalho com estes campos:
New-AzDatabricksWorkspace -Name <workspace-name> \
-ResourceGroupName <resource-group-name> \
-location $keyVault.Location \
-sku premium \
-ManagedServicesKeyVaultPropertiesKeyName $key.Name \
-ManagedServicesKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
-ManagedServicesKeyVaultPropertiesKeyVersion $key.Version
Exemplo de atualização do espaço de trabalho com estes campos:
Update-AzDatabricksWorkspace -Name <workspace-name> \
-ResourceGroupName <resource-group-name> \
-sku premium \
-ManagedServicesKeyVaultPropertiesKeyName $key.Name \
-ManagedServicesKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
-ManagedServicesKeyVaultPropertiesKeyVersion $key.Version
Importante
Se você girar a chave, você deve manter a chave antiga disponível por 24 horas.
Aplicar alterações com um modelo ARM
O modelo ARM a seguir cria um novo espaço de trabalho com uma chave gerenciada pelo cliente, usando a versão 2023-02-01
da API para o recurso Microsoft.Databricks/workspaces
. Salve este texto localmente em um arquivo chamado databricks-cmk-template.json
.
Este modelo de exemplo não inclui todos os recursos possíveis do Azure Databricks, como fornecer sua própria VNet na qual implantar o espaço de trabalho.
Importante
Se você já usa um modelo, mescle os parâmetros, recursos e saídas extras desse modelo em seu modelo existente.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"metadata": {
"description": "The name of the Azure Databricks workspace to create."
}
},
"pricingTier": {
"type": "string",
"defaultValue": "premium",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "The pricing tier of workspace."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"apiVersion": {
"type": "string",
"defaultValue": "2023-02-01",
"allowedValues":[
"2023-02-01",
"2021-04-01-preview"
],
"metadata": {
"description": "The api version to create the workspace resources"
}
},
"keyvaultUri": {
"type": "string",
"metadata": {
"description": "The Key Vault URI for customer-managed key for managed services"
}
},
"keyName": {
"type": "string",
"metadata": {
"description": "The key name used for customer-managed key for managed services"
}
},
"keyVersion": {
"type": "string",
"metadata": {
"description": "The key version used for customer-managed key for managed services. Use the specific key version and not `latest`."
}
}
},
"variables": {
"managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Databricks/workspaces",
"name": "[parameters('workspaceName')]",
"location": "[parameters('location')]",
"apiVersion": "[parameters('apiVersion')]",
"sku": {
"name": "[parameters('pricingTier')]"
},
"properties": {
"ManagedResourceGroupId": "[concat(subscription().id, '/resourceGroups/', variables('managedResourceGroupName'))]",
"encryption": {
"entities": {
"managedServices": {
"keySource": "Microsoft.Keyvault",
"keyVaultProperties": {
"keyVaultUri": "[parameters('keyvaultUri')]",
"keyName": "[parameters('keyName')]",
"keyVersion": "[parameters('keyVersion')]"
}
}
}
}
}
}
],
"outputs": {
"workspace": {
"type": "object",
"value": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')))]"
}
}
}
Se você já usa outro modelo, pode mesclar os parâmetros, recursos e saídas desse modelo em seu modelo existente.
Para usar esse modelo para criar ou atualizar um espaço de trabalho, escolha uma destas opções de implantação:
Aplicar um modelo com a CLI do Azure
Para criar um novo espaço de trabalho com a CLI do Azure, execute o seguinte comando:
az deployment group create --resource-group <resource-group-name> \
--template-file <file-name>.json \
--parameters workspaceName=<new-workspace-name> \
keyvaultUri=<keyvaultUrl> \
keyName=<keyName> keyVersion=<keyVersion>
Nota
Use a versão de chave específica e não latest
.
Para atualizar um espaço de trabalho existente para usar um espaço de trabalho de chave gerenciado pelo cliente (ou para girar a chave existente) usando a CLI do Azure:
Se o modelo ARM que implantou o espaço de trabalho nunca adicionou chaves gerenciadas pelo cliente, adicione a
resources.properties.encryption
seção e seus parâmetros relacionados. Consulte o modelo anteriormente neste artigo.- Adicione a
resources.properties.encryption
seção do modelo. parameters
Na seção, adicione três novos parâmetroskeyvaultUri
,keyName
ekeyVersion
a partir do modelo.parameters
Na seção , remova"type": "string",
do modelo.
- Adicione a
Execute o mesmo comando que para criar um novo espaço de trabalho. Desde que o nome do grupo de recursos e o nome do espaço de trabalho sejam idênticos ao espaço de trabalho existente, este comando atualiza o espaço de trabalho existente em vez de criar um novo espaço de trabalho.
az deployment group create --resource-group <existing-resource-group-name> \ --template-file <file-name>.json \ --parameters workspaceName=<existing-workspace-name> \ keyvaultUri=<keyvaultUrl> \ keyName=<keyName> keyVersion=<keyVersion>
Além das alterações nos parâmetros relacionados à chave, use os mesmos parâmetros que foram usados para criar o espaço de trabalho.
Importante
Se você girar a chave, você deve manter a chave antiga disponível por 24 horas.
Aplicar um modelo com o portal do Azure
Para usar o modelo no portal do Azure para criar ou atualizar um espaço de trabalho:
Vá para a página Implantação personalizada.
Clique em Criar seu próprio modelo no editor.
Cole no JSON.
Clique em Guardar.
Preencha os parâmetros.
Para atualizar um espaço de trabalho existente, use os mesmos parâmetros que você usou para criar o espaço de trabalho. Para adicionar uma chave pela primeira vez, adicione os três parâmetros relacionados à chave. Para girar a chave, altere alguns ou todos os parâmetros relacionados à chave. Verifique se o nome do grupo de recursos e o nome do espaço de trabalho são idênticos ao espaço de trabalho existente. Se forem iguais, este comando atualiza o espaço de trabalho existente em vez de criar um novo espaço de trabalho.
Além das alterações nos parâmetros relacionados à chave, use os mesmos parâmetros que foram usados para criar o espaço de trabalho.
Clique em Rever + Criar.
Se não houver problemas de validação, clique em Criar.
Importante
Se você girar a chave, você deve manter a chave antiga disponível por 24 horas.
Para obter mais detalhes, consulte o artigo do Azure Guia de início rápido: criar e implantar modelos ARM usando o portal do Azure.
Etapa 4 (opcional): Reimportar blocos de anotações
Depois de adicionar inicialmente uma chave para serviços gerenciados para um espaço de trabalho existente, somente operações de gravação futuras usarão sua chave. Os dados existentes não são criptografados novamente.
Pode exportar todos os blocos de notas e, em seguida, voltar a importá-los para que a chave que encripta os dados seja protegida e controlada pela sua chave. Você pode usar as APIs de espaço de trabalho de exportação e importação.
Rodar a chave mais tarde
Se você já estiver usando uma chave gerenciada pelo cliente para serviços gerenciados, poderá atualizar o espaço de trabalho com uma nova versão de chave ou uma chave totalmente nova. Isso é chamado de rotação de chaves.
Crie uma nova chave ou gire a chave existente no Cofre da Chave. Consulte Passo 1: Configurar um Key Vault.
Verifique se a nova chave tem as permissões adequadas.
Confirme se o modelo tem a versão correta da API. Deve ser igual ou superior
2021-04-01-preview
a .Atualize o espaço de trabalho com sua nova chave usando o portal, CLI ou PowerShell. Consulte Etapa 3: Adicionar uma chave a um espaço de trabalho e siga as instruções para atualização do espaço de trabalho. Certifique-se de usar os mesmos valores para o nome do grupo de recursos e o nome do espaço de trabalho para que ele atualize o espaço de trabalho existente, em vez de criar um novo espaço de trabalho. Além das alterações nos parâmetros relacionados à chave, use os mesmos parâmetros que foram usados para criar o espaço de trabalho.
Importante
Se você girar a chave, você deve manter a chave antiga disponível por 24 horas.
Opcionalmente, exporte e reimporte blocos de notas existentes para garantir que todos os blocos de notas existentes utilizam a sua nova chave.
Resolução de Problemas
Eliminação acidental de uma chave
Se você excluir sua chave no Cofre de Chaves do Azure, o logon do espaço de trabalho começará a falhar e nenhum bloco de anotações poderá ser lido pelo Azure Databricks. Para evitar isso, recomendamos que você habilite as exclusões suaves. Se uma chave for eliminada, esta opção garante que pode ser recuperada num período de 30 dias. Se a eliminação recuperável estiver ativada, só tem de reativar a chave para resolver o problema.
Falha na atualização da chave devido às permissões do Key Vault
Se tiver problemas em criar a sua área de trabalho, verifique se o Key Vault tem as permissões corretas. O erro que é devolvido pelo Azure pode não indicar corretamente isto como a causa raiz. Além disso, as permissões necessárias são get
, wrapKey
e unwrapKey
. Consulte Passo 1: Configurar um Key Vault.
As chaves perdidas são irrecuperáveis
Se perder a chave e não conseguir recuperá-la, todos os dados do bloco de notas encriptados pela chave serão irrecuperáveis.