Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece detalhes sobre como fazer referência a um segredo em uma propriedade de configuração ou variável de ambiente do Spark. Os segredos recuperados são ocultados na saída do notebook e nos logs do driver e do executor do Spark.
Importante
Esse recurso está em uma versão prévia.
Considerações de segurança
O Databricks não recomenda armazenar segredos em variáveis de ambiente de cluster se elas não estiverem disponíveis para todos os usuários no cluster. Lembre-se das seguintes implicações de segurança ao referenciar segredos em uma propriedade de configuração ou variável de ambiente do Spark:
Qualquer usuário com permissão CAN ATTACH TO em um cluster ou permissão de execução em um notebook pode ler as variáveis de ambiente do cluster de dentro dele.
Se o controle de acesso à tabela não estiver habilitado em um cluster, qualquer usuário com permissões CAN ATTACH TO em um cluster ou permissões de execução em um notebook poderá ler as propriedades de configuração do Spark de dentro do notebook. Isso inclui usuários que não têm permissão direta para ler um segredo.
Os segredos não são ocultados dos fluxos de log
stdoutestderrdo driver do Spark. Para proteger dados confidenciais, por padrão, os logs de driver do Spark só podem ser exibidos por usuários com a permissão "CAN MANAGE" no job, em clusters com modo de acesso dedicado e modo de acesso padrão.Nos clusters no modo de acesso compartilhado sem isolamento, os logs do driver do Spark podem ser visualizados por usuários que tenham a permissão CAN ATTACH TO ou CAN MANAGE. Para limitar quem pode ler os logs apenas aos usuários com a permissão PODE GERENCIAR, defina
spark.databricks.acl.needAdminPermissionToViewLogscomotrue.
Aviso
Não coloque valores confidenciais, como credenciais, tokens ou chaves, diretamente em propriedades de configuração do Spark ou variáveis de ambiente como texto sem formatação. Armazene o valor confidencial em um escopo secreto e faça referência a ele, conforme descrito acima. Qualquer pessoa com acesso ao cluster, um notebook anexado a ele ou os logs de driver do cluster pode ler valores de texto sem formatação em propriedades de configuração do Spark e variáveis de ambiente.
Requisitos
Os seguintes requisitos se aplicam à referência de segredos nas propriedades de configuração e nas variáveis de ambiente do Spark:
- Os proprietários do cluster devem ter permissão CAN READ no escopo de segredo.
- Você deve ser um proprietário de cluster para adicionar ou editar um segredo em uma propriedade de configuração ou variável de ambiente do Spark.
- Se um segredo for atualizado, você deverá reiniciar o cluster para buscá-lo novamente.
- Você deve ter a permissão CAN MANAGE no cluster para excluir uma propriedade de configuração secreta do Spark ou uma variável de ambiente.
Fazer referência a um segredo com uma propriedade de configuração do Spark
Especifique uma referência a um segredo em uma propriedade de configuração do Spark no seguinte formato:
spark.<property-name> {{secrets/<scope-name>/<secret-name>}}
Substitua:
-
<scope-name>pelo nome do escopo secreto. -
<secret-name>pelo nome exclusivo do segredo dentro do escopo. -
<property-name>com a propriedade de configuração do Spark
Cada propriedade de configuração do Spark pode referenciar apenas um segredo, mas você pode configurar várias propriedades do Spark para referenciar segredos.
Por exemplo:
spark.password {{secrets/scope1/key1}}
Para buscar o segredo no notebook e usá-lo:
Python
spark.conf.get("spark.password")
SQL
SELECT ${spark.password};
Referenciar um segredo em uma variável de ambiente
Especifique um caminho secreto em uma variável de ambiente no seguinte formato:
<variable-name>={{secrets/<scope-name>/<secret-name>}}
Você pode usar qualquer nome de variável válido ao referenciar um segredo. O acesso a segredos referenciados em variáveis de ambiente é determinado pelas permissões do usuário que configurou o cluster. Embora os segredos armazenados em variáveis de ambiente sejam acessíveis a todos os usuários do cluster, eles são ocultados na exibição em texto simples, de forma semelhante a outras referências a segredos.
Variáveis de ambiente que fazem referência a segredos podem ser acessadas por meio de um script de inicialização com escopo de cluster. Confira como Definir e usar variáveis de ambiente com scripts de inicialização.
Por exemplo:
Defina uma variável de ambiente para referenciar um segredo:
SPARKPASSWORD={{secrets/scope1/key1}}
Para buscar o segredo em um script de inicialização, acesse $SPARKPASSWORD usando o seguinte padrão:
if [ -n "$SPARKPASSWORD" ]; then
# code to use ${SPARKPASSWORD}
fi