← Voltar ao blog
DatabricksAzureSegurança

Como proteger seu código Databricks sem depender do plano Premium da Azure

Chaves em texto puro num notebook são um risco. Veja o passo a passo para guardar credenciais com Secret Scopes e montar o Azure Data Lake com segurança, sem o plano Premium.

MA
Allen87Data Engineer
· 4 min de leitura
Notebook com código, cadeado laranja, nuvem e ícone do Databricks, ilustrando a proteção de credenciais

Você já passou pela situação de montar um Data Lake, tudo funcionando… até perceber que suas credenciais estavam expostas no código? 😬

Recentemente precisei montar containers do Azure Data Lake dentro de um notebook do Databricks — uma tarefa aparentemente simples. Mas, ao olhar o código com atenção, percebi que as chaves de acesso estavam em texto puro.

Foi aí que entendi: não basta o código rodar, ele precisa rodar com segurança.

E o melhor: existe uma maneira de fazer isso sem precisar do plano Premium da Azure, utilizando apenas Secret Scopes criados via Databricks CLI.

Neste artigo, compartilho o passo a passo completo e o que aprendi sobre como proteger credenciais no Databricks — um processo simples, mas que pode evitar grandes dores de cabeça no futuro.

Por que isso é importante

Em Engenharia de Dados, durante as etapas de desenvolvimento é comum armazenar chaves, tokens ou credenciais diretamente no código. Funciona? Funciona. Mas também abre brechas enormes de segurança: qualquer pessoa com acesso ao notebook pode visualizar dados sensíveis.

Foi justamente isso que me motivou a buscar uma solução que fosse: ✅ Segura ✅ Simples de implementar ✅ Compatível com o plano Standard da Azure

O resultado foi a configuração com Secret Scopes via CLI, que compartilho a seguir.

Entendendo os principais componentes

Antes de colocar a mão no código, vale entender o papel de cada parte dessa configuração:

  • Azure Data Lake → o repositório central de dados, com containers como bronze, silver e gold.
  • Storage Account → a conta de armazenamento onde os containers ficam hospedados.
  • Databricks CLI → ferramenta de linha de comando que permite automatizar ações no workspace (criar scopes, tokens, jobs, etc.).
  • Secret Scope → um “cofre interno” do Databricks usado para armazenar senhas, chaves ou tokens de forma segura.

E o que é o Azure Key Vault?

O Azure Key Vault é o serviço de armazenamento seguro de segredos da Microsoft. Ele guarda chaves, senhas, certificados e tokens de forma centralizada e criptografada, com controle de acesso e auditoria integrados.

Em outras palavras: é o cofre oficial da Azure — o lugar certo para manter qualquer credencial sensível.

Para criar um Key Vault é simples:

  1. No portal da Azure, vá em Criar Recurso → Segurança → Key Vault
  2. Escolha o Resource Group e o nome do cofre
  3. Defina a região e as políticas de acesso
  4. Depois, adicione seus segredos na seção Secrets

💡 Dica: no Databricks, você pode integrar o Key Vault diretamente criando um Key Vault-backed Secret Scope — o que permite acessar segredos automaticamente, sem armazená-los no Databricks.

Neste artigo, porém, o foco é o Databricks-backed Secret Scope, que funciona mesmo sem o plano Premium.

Passo a passo: acesso seguro ao Azure Data Lake no Databricks

Etapa 1: instalar e configurar o Databricks CLI

No seu terminal do Windows, instale e configure o Databricks CLI:

pip install databricks-cli
databricks configure --token
# Host: https://<sua-instancia>.azuredatabricks.net
# Token: <seu access token>

Como obter o Host e o Token

  1. Acesse o seu workspace do Azure Databricks
  2. No canto superior direito, clique no seu perfil (seu nome) → User Settings
  3. Vá até a aba Access Tokens
  4. Clique em Generate New Token, defina uma validade (ex: 90 dias) e copie o token
  5. O Host é simplesmente a URL do seu workspace:
https://<seu-workspace>.azuredatabricks.net
  1. Cole essas informações quando o CLI solicitar

Etapa 2: criar o Secret Scope local

Quando o plano Premium está desativado, é necessário usar o parâmetro --initial-manage-principal "users" para permitir a criação do scope local.

databricks secrets create-scope \
  --scope datalake-scope \
  --initial-manage-principal "users"

Etapa 3: adicionar os segredos manualmente

# Nome da Storage Account
databricks secrets put --scope datalake-scope --key STORAGE-NAME

# Chave de acesso da Storage
databricks secrets put --scope datalake-scope --key STORAGE-KEY

Esses comandos abrirão um editor no terminal para você digitar os valores com segurança.

Etapa 4: montar os containers no notebook

Função reutilizável para montar múltiplos containers (neste exemplo, as camadas bronze, silver e gold):

def mount_container(containerName):
    scope_name = "datalake-scope"
    storageAccountName = dbutils.secrets.get(scope=scope_name, key="STORAGE-NAME")
    storageAccountAccessKey = dbutils.secrets.get(scope=scope_name, key="STORAGE-KEY")
    blobContainerName = containerName
    mountPoint = "/mnt/" + blobContainerName

    if not any(m.mountPoint == mountPoint for m in dbutils.fs.mounts()):
        try:
            dbutils.fs.mount(
                source = f"wasbs://{blobContainerName}@{storageAccountName}.blob.core.windows.net",
                mount_point = mountPoint,
                extra_configs = {
                    f"fs.azure.account.key.{storageAccountName}.blob.core.windows.net": storageAccountAccessKey
                }
            )
            print(f"✅ Mount realizado com sucesso: {blobContainerName}")
        except Exception as e:
            print("❌ Erro ao montar:", e)
    else:
        print(f"ℹ️ Container já montado: {blobContainerName}")

containers = ["bronze", "silver", "gold"]
for c in containers:
    mount_container(c)

Etapa 5: testar o mount do container bronze

mount_path = "/mnt/bronze"
if any(m.mountPoint == mount_path for m in dbutils.fs.mounts()):
    print("✅ O container 'bronze' está montado.")
else:
    print("❌ O container 'bronze' não está montado.")

Lições que ficaram

  • 💡 1. Evite expor chaves diretamente no código. Use Secret Scopes ou, em produção, o Azure Key Vault.
  • 💡 2. Monte apenas o necessário. Menos montagens = menos riscos.
  • 💡 3. Evite logs com informações sensíveis. Um simples print() pode revelar mais do que deveria.

Conclusão

Embora montar um Data Lake possa parecer simples, fazê-lo com segurança transforma completamente a confiabilidade do ambiente. Pequenas decisões, como mover uma chave para um cofre, podem fazer toda a diferença.

E o melhor: você pode implementar tudo isso em poucos minutos, com as ferramentas que já usa no dia a dia.

Ficou com alguma dúvida? Entre em contato para a solucionarmos 😉

MA
Allen87 Data Engineer & Data Analyst

Escrevo sobre Power BI, engenharia de dados e IA aplicada. Veja o perfil completo, os 66 dashboards Power BI publicados e o GitHub.