Escopos de segredos

O gerenciamento de segredos começa com a criação de um escopo de segredos. Um escopo de segredos é a coleção de segredos identificada por um nome.

Um workspace só pode ter no máximo 100 escopos de segredos. Entre em contato com a equipe de suporte do Azure Databricks se você precisar de mais informações.

Observação

A Databricks recomenda alinhar escopos secretos a funções ou aplicativos em vez de indivíduos.

Visão geral

Há dois tipos de escopo de segredos: com suporte do Azure Key Vault e com suporte do Databricks.

Escopos com suporte do Azure Key Vault

Para referenciar segredos armazenados em um Azure Key Vault, crie um escopo de segredos com suporte do Azure Key Vault. Assim, você pode aproveitar todos os segredos na instância do Key Vault correspondente desse escopo de segredos. Como o escopo de segredos com suporte do Azure Key Vault é uma interface somente leitura para o Key Vault, não há permissão para as operações PutSecret e DeleteSecret da API de Segredos. Para gerenciar segredos no Azure Key Vault, você deve usar a API REST Set Secret do Azure ou a interface do usuário do portal do Azure.

Escopos com suporte do Databricks

Um escopo de segredos com suporte do Databricks é armazenado em (tem suporte de) um banco de dados criptografado de propriedade e gerenciado pelo Azure Databricks. O nome do escopo de segredos:

  • Deve ser exclusivo dentro de um workspace.
  • Deve conter caracteres alfanuméricos, traços, sublinhados, @ e pontos e não pode exceder 128 caracteres.

Os nomes são considerados não confidenciais e podem ser lidos por todos os usuários no workspace.

Você cria um escopo de segredos com suporte do Databricks usando a CLI do Databricks (versão 0.205 e superior). Como alternativa, você pode usar a API de Segredos.

Permissões do escopo

Os escopos são criados com permissões controladas por ACLs secretas. Por padrão, os escopos são criados com a permissão MANAGE atribuída ao usuário que o criou (o "criador"), permitindo que ele leia e grave segredos no escopo e altere as ACLs do escopo. Se a sua conta tiver o plano Premium, você poderá atribuir permissões granulares a qualquer momento após a criação do escopo. Para obter detalhes, confira Controle de acesso secreto.

Durante a criação do escopo, você também pode substituir o padrão e conceder explicitamente a permissão MANAGE a todos os usuários. Na verdade, você precisará fazer isso se a sua conta não tiver o plano Premium.

Observação

As ACLs secretas estão no nível do escopo. Se você usar escopos com suporte Azure Key Vault, os usuários que recebem acesso ao escopo terão acesso a todos os segredos no Azure Key Vault. Para restringir o acesso, use instâncias separadas do Azure Key Vault.

Criar um escopo de segredo com backup Azure Key Vault

Crie um escopo de segredos com suporte do Azure Key Vault usando a interface do usuário ou a CLI do Databricks.

Requisitos

  • Você deve ter a função de Colaborador do Key Vault, Colaborador ou Proprietário na instância do cofre de chaves do Azure que você deseja usar para fazer o backup do escopo do segredo.

    Se você não tem uma instância do de cofre de chaves, siga as instruções em Criar um Key Vault usando o portal do Azure.

    Observação

    A criação de um escopo de segredo com suporte do Azure Key Vault requer a função Colaborador ou Proprietário na instância do cofre de chaves do Azure, mesmo que o serviço Azure Databricks tenha recebido acesso ao cofre de chaves.

    Se o cofre de chaves existir em um locatário diferente do workspace do Azure Databricks, o usuário do Azure AD que cria o escopo de segredos deverá ter permissão para criar entidades de serviço no locatário do cofre de chaves. Caso contrário, o seguinte erro ocorrerá:

    Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}
    

Configurar sua instância do cofre de chaves do Azure para o Azure Databricks

  1. Faça logon no Portal do Azure, localize e selecione a instância do cofre de chaves do Azure.

  2. Acesse a guia Configuração de Acesso em Configurações.

  3. Defina o Modelo de permissão como Política de acesso do key vault.

    Observação

    A criação de uma função de escopo de segredo com suporte do Azure Key Vault concede as permissões Obter e Listar à ID do aplicativo para o serviço Azure Databricks usando as políticas de acesso do cofre de chaves. Atualmente, o modelo de permissão de controle de acesso baseado em função do Azure não tem suporte no Azure Databricks.

  4. Selecione a guia Rede em Configurações.

  5. Em Firewalls e redes virtuais, defina Permitir acesso de: a Permitir acesso público de redes virtuais e endereços IP específicos.

    Em Exceção, selecione Permitir que serviços confiáveis da Microsoft contornem este firewall.

    Observação

    Você também pode definir Permitir acesso de: para Permitir acesso público de todas as redes.

Criar um escopo de segredo com suporte do Azure Key Vault usando a interface do usuário

  1. Vá para https://<databricks-instance>#secrets/createScope. Essa URL diferencia maiúsculas e minúsculas; o scope em createScope deve estar com letra maiúscula.

    Create scope

  2. Insira o nome do escopo de segredos. Os nomes de escopo secreto não diferenciam maiúsculas de minúsculas.

  3. Use a lista suspensa Gerenciar Entidade de Segurança para especificar se Todos os Usuários têm a permissão MANAGE para esse escopo de segredos ou apenas o Criador do escopo de segredos (ou seja, você).

    Com a permissão MANAGE, os usuários podem ler gravar nesse escopo de segredos e, no caso de contas no plano Premium, alterar as permissões do escopo.

    Sua conta precisa ter o plano Premium para que você possa selecionar Criador. Essa é a abordagem recomendada: conceda a permissão MANAGE ao Criador ao criar o escopo de segredos e atribua permissões de acesso mais granulares depois de testar o escopo. Para ver um exemplo de fluxo de trabalho, confira um exemplo de fluxo de trabalho de segredo.

    Se sua conta tiver o Plano Standard, você deverá definir a permissão MANAGE para o grupo "Todos os Usuários". Se você selecionar Criador aqui, verá uma mensagem de erro ao tentar salvar o escopo.

    Para saber mais sobre a permissão MANAGE, confira Controle de acesso ao segredo.

  4. Insira o Nome DNS (por exemplo, https://databrickskv.vault.azure.net/) e a ID do Recurso, por exemplo:

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    Essas propriedades estão disponíveis na guia Propriedades de um Azure Key Vault em seu portal do Azure.

    Azure Key Vault Properties tab

  5. Selecione o botão Criar.

  6. Use o comando databricks secrets list-scopes da CLI do Databricks para verificar se o escopo foi criado com êxito.

Para obter um exemplo de como usar segredos ao acessar o Armazenamento de Blobs do Azure, confira Montar o armazenamento de objetos de nuvem no Azure Databricks.

Criar um escopo de segredo com suporte do Azure Key Vault usando a interface de linha de comando do Databricks

  1. Instale ou atualize a CLI do Databricks e configure-a para utilizar um token do Azure Active Directory (Azure AD) para autenticação.

    Importante

    Você deve autenticar com um token Azure AD que pertence a uma entidade de serviço ou um usuário, ou um token de acesso pessoal do Azure Databricks pertencente a uma entidade de serviço, para criar um escopo de segredo com suporte do Azure Key Vault usando a CLI do Databricks. Observe que você não pode usar tokens de acesso pessoal que pertencem a um usuário.

    Se o cofre de chaves existir em um locatário diferente do workspace do Azure Databricks, o usuário ou a entidade de serviço do Azure AD que cria o escopo de segredos deverá ter permissão para criar entidades de serviço no locatário do cofre de chaves. Caso contrário, o seguinte erro ocorrerá:

    Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}
    
  2. Crie o escopo do Azure Key Vault:

    databricks secrets create-scope --scope <scope-name> --scope-backend-type AZURE_KEYVAULT --resource-id <azure-keyvault-resource-id> --dns-name <azure-keyvault-dns-name>
    

    Por padrão, os escopos são criados com a permissão MANAGE atribuída ao usuário que criou o escopo. Se sua conta não tiver o plano Premium, substitua o padrão e conceda explicitamente a permissão MANAGE ao grupo users (todos os usuários) durante a criação do escopo:

    databricks secrets create-scope --scope <scope-name> --scope-backend-type AZURE_KEYVAULT --resource-id <azure-keyvault-resource-id> --dns-name <azure-keyvault-dns-name> --initial-manage-principal users
    

    Se a sua conta tiver o plano Premium, você poderá substituir as permissões a qualquer momento após a criação do escopo. Para obter detalhes, confira Controle de acesso secreto.

    Depois de criar um escopo de segredos com suporte do Databricks, você poderá adicionar segredos.

Para obter um exemplo de como usar segredos ao acessar o Armazenamento de Blobs do Azure, confira Montar o armazenamento de objetos de nuvem no Azure Databricks.

Criar um escopo de segredo com suporte do Databricks

Os nomes de escopo secreto não diferenciam maiúsculas de minúsculas.

Para criar um escopo usando a CLI do Databricks:

databricks secrets create-scope <scope-name>

Por padrão, os escopos são criados com a permissão MANAGE atribuída ao usuário que criou o escopo. Se sua conta não tiver o plano Premium, será necessário substituir o padrão e conceder explicitamente a permissão MANAGE a "usuários" (todos os usuários) durante a criação do escopo:

databricks secrets create-scope <scope-name> --initial-manage-principal users

Também é possível criar um escopo de segredos com suporte do Databricks usando a API de Segredos.

Se a sua conta tiver o plano Premium, você poderá substituir as permissões a qualquer momento após a criação do escopo. Para obter detalhes, confira Controle de acesso secreto.

Depois de criar um escopo de segredos com suporte do Databricks, você poderá adicionar segredos.

Listar escopos de segredo

Para listar os escopos existentes em um workspace usando a CLI:

databricks secrets list-scopes

Você também pode listar escopos existentes usando a API de Segredos.

Excluir um escopo de segredo

A exclusão de um escopo de segredo exclui todos os segredos e ACLs aplicados ao escopo. Para excluir um escopo usando a CLI, execute o seguinte:

databricks secrets delete-scope <scope-name>

Você também pode excluir um escopo de segredos usando a API de Segredos.