Share via


Configurar chaves geridas pelo cliente para discos geridos do Azure

O Azure Databricks computa cargas de trabalho no plano de computação e armazena dados temporários em discos gerenciados do Azure. Por predefinição, os dados armazenados em discos geridos são encriptados em repouso utilizando a encriptação do lado do servidor com chaves geridas pela Microsoft. Este artigo descreve como configurar uma chave gerenciada pelo cliente dos cofres do Cofre de Chaves do Azure para seu espaço de trabalho do Azure Databricks usar para criptografia de disco gerenciado. Para obter instruções sobre como usar uma chave do Azure Key Vault HSM, consulte Configurar chaves gerenciadas pelo cliente do HSM para discos gerenciados do Azure.

Importante

  • As chaves gerenciadas pelo cliente para armazenamento em disco gerenciado aplicam-se a discos de dados, mas não se aplicam a discos de sistema operacional (SO).
  • As chaves gerenciadas pelo cliente para armazenamento em disco gerenciado não se aplicam a recursos de computação sem servidor, como armazéns SQL sem servidor e serviço de modelo. Os discos utilizados nos recursos de computação sem servidor são de curta duração e estão associados ao ciclo de vida da carga de trabalho sem servidor. Quando os recursos de computação são interrompidos ou reduzidos, as VMs e seu armazenamento são destruídos.

Requisitos

  • Seu espaço de trabalho do Azure Databricks deve estar no plano Premium.

  • O Azure Key Vault e o espaço de trabalho do Azure Databricks devem estar na mesma região e no mesmo locatário do Microsoft Entra ID (anteriormente Azure Ative Directory). Podem estar em subscrições diferentes.

  • Se você quiser habilitar a rotação automática, apenas chaves de software e RSA HSM dos tamanhos 2048 bits, 3072 bits e 4096 bits são suportados.

  • Esta funcionalidade não é suportada para áreas de trabalho com conformidade FedRAMP. Entre em contato com sua equipe de conta do Azure Databricks para obter mais informações.

  • 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: Criar um cofre de chaves

Você pode criar um Cofre da Chave de várias maneiras, incluindo o portal do Azure, a CLI do Azure, o Powershell e, opcionalmente, usando modelos ARM. As seções a seguir fornecem procedimentos para usar a CLI do Azure e o Powershell. Para outras abordagens, consulte a documentação da Microsoft.

Utilizar a CLI do Azure

  1. Criar um Key Vault:

    az keyvault create --name <keyVaultName> --resource-group <resourceGroupName> --location <location> --sku <sku> --enable-purge-protection
    
  2. Obtenha o URI do cofre:

    az keyvault show --name <key-vault-name>
    

    Copie o vaultUri valor da resposta.

Utilizar o PowerShell

Crie um novo cofre:

$keyVault = New-AzKeyVault -Name <key-vault-name> -ResourceGroupName <resource-group-name> -Location <location> -Sku <sku> -EnablePurgeProtection

Obtenha um Cofre de Chaves existente:

$keyVault = Get-AzKeyVault -VaultName <key-vault-name>

Passo 2: Preparar uma chave

Você pode criar uma chave ou recuperar uma chave existente armazenada no Cofre de Chaves do Azure usando o portal do Azure, CLI do Azure, Powershell e, opcionalmente, usando modelos ARM. Esta seção fornece procedimentos para a CLI do Azure e o Powershell. Para outras maneiras, consulte a documentação de chaves do Azure.

Utilizar a CLI do Azure

Você pode criar uma chave ou recuperar uma chave existente.

Crie uma chave:

  1. Execute o seguinte comando:

    az keyvault key create \
    --name <key-name> \
    --vault-name <key-vault-name> \
    --protection software
    
  2. Anote os seguintes valores da saída:

    • Nome do Cofre da Chave: O nome do Cofre da Chave
    • Nome da chave: O nome da sua chave
    • Versão da chave: A versão da sua chave
    • Grupo de recursos do Cofre da Chave: O grupo de recursos do Cofre da Chave
  3. Obtenha informações importantes:

    az keyvault key show --vault-name <keyVaultName> --name <keyName>
    

    Copie o valor do campo, que é o kid ID 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.

Recupere uma chave existente:

  1. Execute o seguinte comando:

    az keyvault key show --name <key-name> --vault-name <key-vault-name>
    
  2. Anote os seguintes detalhes para a sua chave existente:

    • Nome do Cofre da Chave: O nome do Cofre da Chave.
    • Nome da chave: O nome da sua chave.
    • Versão da chave: A versão da sua chave.
    • Grupo de recursos do Cofre de Chaves: O grupo de recursos do Cofre de Chaves.
  3. Obtenha informações importantes:

    az keyvault key show --vault-name <keyVaultName> --name <keyName>
    

    Copie o valor do campo, que é o kid ID 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.

  4. Confirme se a chave existente está ativada antes de prosseguir executando az keyvault key show --name <key name> novamente. A saída exibe "enabled": true.

Utilizar o PowerShell

  1. 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>
    
  2. 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>
      

Etapa 3: Pare todos os recursos de computação se estiver atualizando um espaço de trabalho para adicionar inicialmente uma chave

Se você estiver adicionando uma chave gerenciada pelo cliente para discos gerenciados inicialmente em um espaço de trabalho existente, interrompa todos os seus recursos de computação (clusters, pools, armazéns SQL clássicos ou profissionais) antes da atualização.

Após a conclusão da atualização, você pode iniciar os recursos de computação que parou. Para um espaço de trabalho que já tenha uma chave gerenciada pelo cliente para discos gerenciados, você pode girar a chave sem encerrar os recursos de computação.

Etapa 4: Criar ou atualizar um espaço de trabalho

Para criar ou atualizar um espaço de trabalho com uma chave gerenciada pelo cliente para discos gerenciados, escolha uma das seguintes estratégias de implantação:

Usar o portal do Azure (sem modelo)

Esta seção descreve como usar o portal do Azure para criar ou atualizar um espaço de trabalho com chaves gerenciadas pelo cliente para discos gerenciados sem usar um modelo.

  1. Comece a criar ou atualizar um espaço de trabalho:

    Crie um novo espaço de trabalho com uma chave:

    1. Vá para a página inicial do Portal do Azure e clique em Criar um recurso no canto superior esquerdo da página.
    2. Na barra de pesquisa, digite Azure Databricks e clique em Azure Databricks.
    3. Selecione Criar no widget Azure Databricks.
    4. Insira valores nos campos de formulário nas guias Noções básicas e Rede.
    5. Na guia Criptografia, marque a caixa de seleção Usar sua própria chave na seção Discos gerenciados.

    Inicialmente, adicione uma chave a um espaço de trabalho existente:

    1. Encerre todos os recursos de computação (clusters, pools).
    2. Vá para a home page do portal do Azure para o Azure Databricks.
    3. Navegue até seu espaço de trabalho existente do Azure Databricks.
    4. Abra a guia Criptografia no painel esquerdo.
    5. Na seção Chaves gerenciadas pelo cliente, habilite Discos gerenciados.
  2. Defina os campos de criptografia.

    Show fields in the Managed Disks section of the Azure Databricks blade

    • 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.
    • Para ativar a rotação automática da sua chave, ative Ativar Rotação Automática de Chave.
  3. Preencha as guias restantes e clique em Revisar + Criar (para novo espaço de trabalho) ou Salvar (para atualizar um espaço de trabalho).

  4. Após a implantação do espaço de trabalho, navegue até o novo espaço de trabalho do Azure Databricks.

  5. Na guia Visão geral do seu espaço de trabalho do Azure Databricks, clique em Grupo de Recursos Gerenciados.

  6. No separador Descrição Geral do grupo de recursos geridos, procure o objeto do tipo Conjunto de Encriptação de Discos que foi criado neste grupo de recursos. Copie o nome do Conjunto de Criptografia de Disco.

  7. No portal do Azure, vá para o Cofre da Chave do Azure que foi usado para configurar a chave que você está usando para esse recurso.

  8. Abra o separador Políticas de acesso no painel do lado esquerdo. Quando a guia estiver aberta, clique em Criar na parte superior da página.

  9. Na guia Permissões, na seção Permissões de chave, habilite Get, Unwrap Key e Wrap key.

  10. Clique em Next.

  11. Na guia Principal, insira o nome do Conjunto de Criptografia de Disco dentro do grupo de recursos gerenciados do seu espaço de trabalho do Azure Databricks na barra de pesquisa. Selecione o resultado e clique em Avançar.

    Enter the name of disk encryption set and select the result

  12. Clique na guia Revisar + criar e clique em Criar.

Usar a CLI do Azure (sem modelo)

Para espaços de trabalho novos e atualizados, adicione estes parâmetros ao comando:

  • disk-key-name: Nome da chave
  • disk-key-vault: Nome do cofre
  • disk-key-version: Versão chave
  • disk-key-auto-rotation: Ative a rotação automática da chave (true ou false). Este é um campo opcional. A predefinição é false.

Nos comandos a seguir, use o valor de URI do vault da resposta na etapa anterior no lugar de <key-vault-uri>. Além disso, o nome da chave e os valores da versão da chave podem ser encontrados dentro do kid valor na resposta da etapa anterior.

  1. Criar ou atualizar um espaço de trabalho:

    • Exemplo de criação de um espaço de trabalho usando estes parâmetros de disco gerenciado:

      az databricks workspace create --name <workspace-name> \
      --resource-group <resource-group-name> \
      --location <location> \
      --sku premium --disk-key-name <key-name> \
      --disk-key-vault <key-vault-uri> \
      --disk-key-version <key-version> \
      --disk-key-auto-rotation <true-or-false>
      
    • Exemplo de atualização de um espaço de trabalho usando estes parâmetros de disco gerenciado:

      az databricks workspace update \
      --name <workspace-name> \
      --resource-group <resource-group-name> \
      --disk-key-name <key-name> \
      --disk-key-vault <key-vault-uri> \
      --disk-key-version <key-version> \
      --disk-key-auto-rotation <true-or-false>
      

    Na saída de qualquer um desses comandos, há um managedDiskIdentity objeto. Salve o principalId valor da propriedade dentro deste objeto. Isso é usado em uma etapa posterior como o ID principal.

  2. Adicione uma política de acesso com permissão de chave ao Cofre da Chave. Use o nome do cofre e o ID principal das etapas anteriores:

    az keyvault set-policy \
    --name <key-vault-name> \
    --object-id <principal-id> \
    --key-permissions get wrapKey unwrapKey
    

Usar Powershell (sem modelo)

Para espaços de trabalho novos e atualizados, adicione estes parâmetros ao comando:

  • location: Localização do espaço de trabalho
  • ManagedDiskKeyVaultPropertiesKeyName: Nome da chave
  • ManagedDiskKeyVaultPropertiesKeyVaultUri: URI do Cofre da Chave
  • ManagedDiskKeyVaultPropertiesKeyVersion: Versão chave
  • ManagedDiskRotationToLatestKeyVersionEnabled: Ative a rotação automática da chave (true ou false). Este é um campo opcional. O padrão é false.
  1. Criar ou atualizar um espaço de trabalho:

    • Exemplo de criação de um espaço de trabalho usando parâmetros de disco gerenciado:

      $workspace = New-AzDatabricksWorkspace -Name <workspace-name> \
      -ResourceGroupName <resource-group-name> \
      -location $keyVault.Location \
      -Sku premium \
      -ManagedDiskKeyVaultPropertiesKeyName $key.Name \
      -ManagedDiskKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
      -ManagedDiskKeyVaultPropertiesKeyVersion $key.Version -ManagedDiskRotationToLatestKeyVersionEnabled
      
    • Exemplo de atualização de um espaço de trabalho usando parâmetros de disco gerenciado:

      $workspace = Update-AzDatabricksworkspace -Name <workspace-name> \
      -ResourceGroupName <resource-group-name> \
      -ManagedDiskKeyVaultPropertiesKeyName $key.Name \
      -ManagedDiskKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
      -ManagedDiskKeyVaultPropertiesKeyVersion $key.Version -ManagedDiskRotationToLatestKeyVersionEnabled
      
  2. Adicione uma política de acesso com permissões de chave ao Cofre da Chave:

    Set-AzKeyVaultAccessPolicy -VaultName $keyVault.VaultName \
    -ObjectId $workspace.ManagedDiskIdentityPrincipalId \
    -PermissionsToKeys wrapkey,unwrapkey,get
    

Usar um modelo ARM (portal do Azure ou CLI)

Você pode explorar os modelos de início rápido do Azure na documentação do Azure. Para obter uma lista de opções de implantação de modelo ARM, consulte a documentação do modelo ARM.

Quando você cria um espaço de trabalho, um recurso de conjunto de criptografia de disco também é criado dentro do grupo de recursos gerenciados do seu espaço de trabalho. Ele tem uma identidade gerenciada atribuída pelo sistema que é usada para acessar seu Cofre de Chaves. Antes que a computação do Azure Databricks possa usar essa chave para criptografar seus dados, você deve recuperar a ID principal do conjunto de criptografia de disco e, em seguida, conceder à identidade as GETpermissões , WRAPe UNWRAP chave para o Cofre da Chave.

O Databricks recomenda que você crie ou atualize o espaço de trabalho e conceda permissões do Cofre da Chave na mesma implantação de modelo. Você deve criar ou atualizar o espaço de trabalho antes de conceder permissões do Cofre da Chave, com uma exceção. Se você atualizar um espaço de trabalho de chave gerenciado pelo cliente de disco gerenciado existente para usar uma nova chave em um novo Cofre de Chaves, deverá conceder permissão ao conjunto de criptografia de disco existente para acessar o novo Cofre de Chaves e, em seguida, atualizar o espaço de trabalho com a nova configuração de chave.

O modelo de exemplo nesta seção faz o seguinte:

  • Cria ou atualiza um espaço de trabalho para adicionar configurações de chave gerenciadas pelo cliente do disco gerenciado
  • Concede ao conjunto de criptografia de disco acesso ao Cofre da Chave

Você pode usar o seguinte modelo ARM de exemplo, que faz duas coisas:

  • Crie ou atualize um espaço de trabalho com um disco gerenciado chave gerenciada pelo cliente.
  • Crie uma política de acesso de chave.

Se você já usa um modelo ARM, pode mesclar os parâmetros, recursos e saídas do modelo de exemplo 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": [
               "premium"
           ],
           "metadata": {
               "description": "The pricing tier of workspace"
           }
       },
       "apiVersion": {
           "type": "string",
           "defaultValue": "2023-02-01",
           "allowedValues": [
               "2023-02-01",
               "2022-04-01-preview"
           ],
           "metadata": {
               "description": "The API version to use to create the workspace resources"
           }
       },
       "keyVaultName": {
           "type": "string",
           "metadata": {
               "description": "The Key Vault name used for CMK"
           }
       },
       "keyName": {
           "type": "string",
           "metadata": {
               "description": "The key name used for CMK"
           }
       },
       "keyVersion": {
           "type": "string",
           "metadata": {
               "description": "The key version used for CMK"
           }
       },
       "keyVaultResourceGroupName": {
           "type": "string",
           "metadata": {
               "description": "The resource group name of the Key Vault used for CMK"
           }
       },
       "enableAutoRotation": {
           "type": "bool",
           "defaultValue": false,
           "allowedValues": [
               true,
               false
           ],
           "metadata": {
               "description": "Whether managed disk picks up new key versions automatically"
           }
       }
   },
   "variables": {
       "managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]"
   },
   "resources": [
       {
           "type": "Microsoft.Databricks/workspaces",
           "name": "[parameters('workspaceName')]",
           "location": "[resourceGroup().location]",
           "apiVersion": "[parameters('apiVersion')]",
           "sku": {
               "name": "[parameters('pricingTier')]"
           },
           "properties": {
               "managedResourceGroupId": "[concat(subscription().id, '/resourceGroups/', variables('managedResourceGroupName'))]",
               "encryption": {
                   "entities": {
                       "managedDisk": {
                           "keySource": "Microsoft.Keyvault",
                           "keyVaultProperties": {
                               "keyVaultUri": "[concat('https://', parameters('keyVaultName'), environment().suffixes.keyvaultDns)]",
                               "keyName": "[parameters('keyName')]",
                               "keyVersion": "[parameters('keyVersion')]"
                           },
                           "rotationToLatestKeyVersionEnabled": "[parameters('enableAutoRotation')]"
                       }
                   }
               }
           }
       },
       {
           "type": "Microsoft.Resources/deployments",
           "apiVersion": "2020-06-01",
           "name": "addAccessPolicy",
           "resourceGroup": "[parameters('keyVaultResourceGroupName')]",
           "dependsOn": [
               "[resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName'))]"
           ],
           "properties": {
               "mode": "Incremental",
               "template": {
                   "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
                   "contentVersion": "0.9.0.0",
                   "resources": [
                       {
                           "type": "Microsoft.KeyVault/vaults/accessPolicies",
                           "apiVersion": "2019-09-01",
                           "name": "[concat(parameters('keyVaultName'), '/add')]",
                           "properties": {
                               "accessPolicies": [
                                   {
                                       "objectId": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')), '2023-02-01').managedDiskIdentity.principalId]",
                                       "tenantId": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')), '2023-02-01').managedDiskIdentity.tenantId]",
                                       "permissions": {
                                           "keys": [
                                               "get",
                                               "wrapKey",
                                               "unwrapKey"
                                           ]
                                       }
                                   }
                               ]
                           }
                       }
                   ]
               }
           }
       }
   ],
   "outputs": {
       "workspace": {
           "type": "object",
           "value": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')))]"
       }
   }
}

Use o modelo com qualquer ferramenta desejada, incluindo o portal do Azure, CLI ou outras ferramentas. Os detalhes estão incluídos para as seguintes estratégias de implantação de modelo:

Aplicar um modelo ARM usando o portal do Azure

Para criar ou atualizar um espaço de trabalho usando um modelo ARM no portal do Azure, faça o seguinte:

  1. Somente se você estiver adicionando inicialmente uma chave a um espaço de trabalho existente, encerre todos os recursos de computação (clusters, pools). Se você não conseguir fazer essa etapa, os recursos serão encerrados automaticamente durante a atualização, o que pode causar problemas para alguns tipos de cargas de trabalho. Planeje o tempo de inatividade para encerrar todos os recursos de computação antes de adicionar a chave. Após a conclusão da atualização, você iniciará os recursos de computação que parou. Para um espaço de trabalho que já tenha uma chave gerenciada pelo cliente para discos gerenciados, você pode girar a chave sem encerrar os recursos de computação.

  2. Inicie sessão no portal do Azure.

  3. Clique em Criar um recurso e, em seguida, clique em Implantação de modelo (implantar usando modelos personalizados).

  4. Na página Implantação personalizada, clique em Criar seu próprio modelo no editor.

  5. Cole o conteúdo do modelo de exemplo no editor.

    Edit deployment page of the Azure custom deployment portal

  6. Clique em Guardar.

  7. Insira os valores dos 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 gerenciada pelo cliente pela primeira vez, adicione os parâmetros relacionados à chave em abaixo resources.properties.encryption.entities.managedDisk , conforme mostrado no modelo acima. Para girar a chave, altere alguns ou todos os parâmetros relacionados à chave.

    Importante

    Se você atualizar um espaço de trabalho, o nome do grupo de recursos e o nome do espaço de trabalho no modelo deverão ser idênticos ao nome do grupo de recursos e ao nome do espaço de trabalho existente.

    Project details page of the Azure custom deployment portal

  8. Clique em Rever + Criar.

  9. Resolva quaisquer problemas de validação e clique em Criar.

Importante

Se você girar uma chave, não exclua a chave antiga até que a atualização do espaço de trabalho seja concluída.

Aplicar um modelo ARM usando a CLI do Azure

Esta seção descreve como criar ou atualizar um espaço de trabalho com sua chave usando um modelo ARM com a CLI do Azure.

  1. Somente se você estiver adicionando inicialmente uma chave a um espaço de trabalho existente, encerre todos os recursos de computação (clusters, pools). Se você não conseguir fazer essa etapa, os recursos serão encerrados automaticamente durante a atualização, o que pode causar problemas para alguns tipos de cargas de trabalho. Você pode considerar agendar essa atualização e planejar o tempo de inatividade. Este passo não é necessário se estiver apenas a rodar a chave.

  2. Verifique se o modelo inclui a seção para resources.properties.encryption.entities.managedDisk e seus parâmetros keyvaultNamerelacionados, , keyVersionkeyName, e keyVaultResourceGroupName. Se eles não estiverem lá, consulte anteriormente nesta seção para obter um modelo de exemplo e mesclar nessa seção e os parâmetros em seu modelo.

  3. Execute o comando az deployment group create. Se o nome do grupo de recursos e o nome do espaço de trabalho forem idênticos ao nome do grupo de recursos e ao nome do espaço de trabalho de um espaço de trabalho existente, este comando atualiza o espaço de trabalho existente em vez de criar um novo espaço de trabalho. Se você estiver atualizando uma implantação existente, certifique-se de usar o mesmo grupo de recursos e nome de espaço de trabalho que foi usado anteriormente.

    az deployment group create --resource-group <existing-resource-group-name>  \
                               --template-file <file-name>.json \
                               --parameters workspaceName=<workspace-name> \
                                            keyvaultName=<key-vault-name> \
                                            keyName=<key-name> keyVersion=<key-version> \
                                            keyVaultResourceGroupName=<key-vault-resource-group>
    

    Importante

    Se você girar uma chave, só poderá excluir a chave antiga após a conclusão da atualização do espaço de trabalho.

Etapa 5: Confirme se seus recursos de computação usam sua chave (opcional)

Para confirmar se o recurso de chave gerenciada pelo cliente do disco gerenciado está habilitado para o espaço de trabalho:

  1. Recupere os detalhes do espaço de trabalho do Azure Databricks seguindo um destes procedimentos:

    • Portal do Azure

      1. No portal do Azure, clique em Espaços de Trabalho e, em seguida, clique no nome do seu espaço de trabalho.
      2. Na página do espaço de trabalho, clique no modo JSON.
      3. Clique em uma versão da API igual ou superior à versão da 2022-04-01-preview API.
    • CLI do Azure

      Execute o seguinte comando:

      az databricks workspace show --resource-group <resource group name> --name <workspace name>
      

      Os parâmetros de criptografia de disco gerenciado estão em properties. Por exemplo:

      "properties": {
           "encryption": {
               "entities": {
                   "managedDisk": {
                     "keySource": "Microsoft.Keyvault",
                     "keyVaultProperties": {
                         "keyVaultUri": "<key-vault-uri>",
                         "keyName": "<key-name>",
                         "keyVersion": "<key-version>"
                     },
                     "rotationToLatestKeyVersionEnabled": "<rotation-enabled>"
                 }
            }
        }
      
    • PowerShell

      Get-AzDatabricksWorkspace -Name <workspace-name> -ResourceGroupName <resource-group-name> |
        Select-Object -Property ManagedDiskKeySource,
         ManagedDiskKeyVaultPropertiesKeyVaultUri,
         ManagedServicesKeyVaultPropertiesKeyName,
         ManagedServicesKeyVaultPropertiesKeyVersion,
         ManagedDiskRotationToLatestKeyVersionEnabled
      

      Analise os valores das propriedades retornadas na saída:

      ManagedDiskKeySource                           : Microsoft.Keyvault
      ManagedDiskKeyVaultPropertiesKeyVaultUri       : <key-vault-uri>
      ManagedServicesKeyVaultPropertiesKeyName       : <key-name>
      ManagedServicesKeyVaultPropertiesKeyVersion    : <key-version>
      ManagedDiskRotationToLatestKeyVersionEnabled   : <rotation-enabled>
      
  2. Crie qualquer recurso de computação para seu espaço de trabalho usar para teste:

  3. No portal do Azure, clique em Espaços de Trabalho e, em seguida, clique no nome do seu espaço de trabalho.

  4. Na página do espaço de trabalho, clique no nome do grupo de recursos gerenciados no qual o espaço de trabalho está.

  5. Na página do grupo de recursos, em Recursos, clique no nome de uma máquina virtual.

  6. No lado esquerdo da página da máquina virtual, em Configurações, clique em Discos.

    Na página discos, em Discos de dados, confirme se o campo Encriptação do disco tem o valor SSE with CMK.

Etapa 6: Iniciar recursos de computação encerrados anteriormente

Esta etapa é necessária somente se você atualizou um espaço de trabalho para adicionar uma chave pela primeira vez, caso em que você encerrou todos os recursos de computação em execução em uma etapa anterior. Se você criou um novo espaço de trabalho ou está apenas girando a chave, os recursos de computação não foram encerrados nas etapas anteriores, caso em que você pode ignorar esta etapa.

  1. Verifique se a atualização do espaço de trabalho está concluída. Se a chave foi a única alteração no modelo, isso normalmente é concluído em menos de cinco minutos, caso contrário, pode levar mais tempo.
  2. Inicie manualmente todos os recursos de computação que você encerrou anteriormente.

Se algum recurso de computação falhar ao iniciar com êxito, geralmente é porque você precisa conceder permissão ao conjunto de criptografia de disco para acessar seu Cofre de Chaves.

Rodar a chave mais tarde

Há dois tipos de rotações de chave em um espaço de trabalho existente que já tem uma chave:

  • Rotação automática: se rotationToLatestKeyVersionEnabled for true para o seu espaço de trabalho, o conjunto de encriptação de disco deteta a alteração da versão da chave e aponta para a versão da chave mais recente.
  • Rotação manual: você pode atualizar um espaço de trabalho de chave gerenciado pelo cliente existente com uma nova chave. Siga as instruções acima como se estivesse adicionando inicialmente uma chave ao espaço de trabalho existente, com a diferença importante é que você não precisa encerrar nenhum recurso de computação em execução.

Para ambos os tipos de rotação, o serviço de armazenamento de Máquina Virtual do Azure seleciona automaticamente a nova chave e a usa para criptografar a chave de criptografia de dados. Seus recursos de computação do Azure Databricks não são afetados. Para obter mais informações, consulte Chaves gerenciadas pelo cliente na documentação do Azure.

Não é necessário encerrar os recursos de computação antes de girar a chave.

Resolução de Problemas

O cluster falha com KeyVaultAccessForbidden

O problema é que um cluster não consegue iniciar com o seguinte erro:

Cloud Provider Launch Failure: KeyVaultAccessForbidden

Conceda permissão ao conjunto de encriptação de discos criado no grupo de recursos geridos da sua área de trabalho para aceder ao Key Vault. Permissões necessárias: GET, WRAPKEY, UNWRAPKEY.

Releia a subsecção do Passo 4: Criar ou atualizar uma área de trabalho para o seu tipo de implementação e preste atenção especial à atualização da política de acesso do Key Vault com permissões específicas.

Faltam parâmetros-chave

O problema é que os parâmetros de chave gerenciados pelo cliente do disco gerenciado estão faltando.

Confirme se o seu modelo ARM utiliza a versão correta da API para o recurso Microsoft.Databricks/workspaces. A funcionalidade de chave gerida pelo cliente do disco gerido só está disponível com a versão da API igual ou superior a 2022-04-01-preview. Se utilizar outras versões da API, a área de trabalho será criada ou atualizada, mas os parâmetros do disco gerido serão ignorados.

A atualização do espaço de trabalho falha com ApplicationUpdateFail

O problema é que uma operação de atualização ou patch do espaço de trabalho falha para um espaço de trabalho habilitado para disco gerenciado com o seguinte erro:

Failed to update application: `<workspace name>`, because patch resource group failure. (Code: ApplicationUpdateFail)

Conceda ao conjunto de criptografia de disco acesso ao Cofre da Chave e execute operações de atualização do espaço de trabalho, como adicionar tags.

Política de acesso ausente

O problema é o seguinte erro:

ERROR CODE: BadRequest MESSAGE: Invalid value found at accessPolicies[14].ObjectId: <objectId>

A política de acesso com o ID do objeto acima é inválida no Cofre da Chave. Tem de removê-lo para adicionar novas políticas de acesso ao Cofre da Chave.

As chaves perdidas são irrecuperáveis

As chaves perdidas não são recuperáveis. Se perder ou revogar a sua chave e não a conseguir recuperar, os recursos de computação do Azure Databricks deixam de funcionar. As outras funções da área de trabalho não são afetadas.

Recursos