Segredos

Um segredo é um par de valores-chave que armazena material secreto, com um nome chave único dentro de um âmbito secreto. Cada âmbito está limitado a 1000 segredos. O tamanho máximo permitido é de 128 KB.

Criar um segredo

Os nomes dos segredos são sensíveis a maiúsculas e minúsculas.

O método para criar um segredo depende se está a usar um âmbito apoiado por Azure Key Vault ou um âmbito apoiado por Databricks.

Crie um segredo num miradouro apoiado por Azure Key Vault

Para criar um segredo no Azure Key Vault, utilize o AZure SetSecret REST API ou o portal Azure UI.

Cofre de Chaves do Azure

Criar um segredo num âmbito apoiado por Databricks

Para criar um segredo num âmbito apoiado por Databricks utilizando o Databricks CLI (versão 0.7.1 e superior):

databricks secrets put --scope <scope-name> --key <key-name>

Um editor abre e exibe conteúdos como este:

# ----------------------------------------------------------------------
# Do not edit the above line. Everything that follows it will be ignored.
# Please input your secret value above the line. Text will be stored in
# UTF-8 (MB4) form and any trailing new line will be stripped.
# Exit without saving will abort writing secret.

Cole o seu valor secreto acima da linha e poupe e saia do editor. A sua entrada é despojada dos comentários e armazenada associada à chave no âmbito.

Se emitir um pedido de escrita com uma chave que já existe, o novo valor substitui o valor existente.

Também pode fornecer um segredo a partir de um ficheiro ou da linha de comando. Para mais informações sobre a escrita de segredos, consulte Secrets CLI.

Listar segredos

Para listar segredos num determinado âmbito:

databricks secrets list --scope <scope-name>

A resposta exibe informações de metadados sobre o segredo, como o nome chave secreto e atualizado pela última vez em hora de marcação (em milissegundos desde época). Usas os serviços secretos num caderno ou trabalho para ler um segredo. Por exemplo:

databricks secrets list --scope jdbc
Key name    Last updated
----------  --------------
password    1531968449039
username    1531968408097

Ler segredos

Você cria segredos usando a API rest ou CLI, mas você deve usar os utilitários Secrets em um caderno ou trabalho para ler um segredo.

Caminhos secretos em propriedades de configuração de faíscas e variáveis ambientais

Importante

Esta funcionalidade está em Pré-visualização Pública.

Nota

Disponível em Databricks Runtime 6.1 e superior.

Você pode armazenar o caminho para um segredo em uma propriedade de configuração Spark ou variável ambiental. Os segredos recuperados são redigidos a partir da saída do portátil e dos registos do condutor e do executor da Spark.

Importante

Os segredos não são redigidos de Stdout e Stderr. Uma solução alternativa é definir a propriedade de configuração Spark spark.databricks.acl.needAdminPermissionToViewLogs true para permitir que apenas utilizadores que tenham permissão para ver a página de stdout.

Requisitos e limitações

  • Os proprietários do cluster devem ter a permissão de leitura no âmbito secreto.
  • Apenas os proprietários de clusters podem adicionar um caminho a um segredo numa configuração de faísca ou variável ambiental e editar o âmbito e o nome existentes. Os donos mudam um segredo usando a API secreta. Tens de reiniciar o teu agrupamento para ir buscar o segredo outra vez.
  • Os utilizadores com a permissão De Gestão Can no cluster podem eliminar propriedades secretas e variáveis ambientais.

Valor do caminho

A sintaxe da propriedade Spark ou do valor do percurso variável do ambiente deve ser {{secrets/<scope-name>/<secret-name>}} .

O valor deve começar {{secrets/ com e terminar com }} . As porções variáveis da variável propriedade ou ambiente são:

  • <secret-prop-name>: O nome da propriedade secreta na configuração Spark.
  • <scope-name>: O nome do âmbito em que o segredo está associado.
  • <secret-name>: O nome único do segredo no âmbito.

Nota

  • Não deve haver espaços entre os suportes encaracolados. Se existirem espaços, são tratados como parte do âmbito ou nome secreto.
  • Se o formato de valor estiver incorreto, por exemplo, existe apenas uma cinta inicial ou uma braçadeira de finalização, o valor é tratado como uma propriedade de configuração spark ou valor variável ambiental.

Armazenar o caminho para um segredo numa propriedade de configuração Spark

Especifica um caminho secreto numa configuração spark no seguinte formato:

spark.<secret-prop-name> <path-value>

spark.<secret-prop-name> é um nome de propriedade de configuração spark que mapeia para o caminho secreto. Pode adicionar vários segredos à configuração Spark desde que os nomes de propriedade secreta sejam únicos.

Exemplo

spark.password {{secrets/testScope/testKey1}}

Para pegar o segredo no caderno e usá-lo, spark.conf.get("spark.<secret-name>") corra:

spark.conf.get("spark.password")

Armazenar o caminho para um segredo em uma variável ambiental

Você especifica um caminho secreto em uma variável ambiental e usá-loem um script init com âmbito de cluster . Estas variáveis ambientais não são acessíveis a partir de um programa em execução em Spark.

SPARKPASSWORD=<path-value>

Para obter o segredo num roteiro init, $SPARKPASSWORD aceda:

if [[ $SPARKPASSWORD ]]; then
  use $SPARKPASSWORD
fi

Eliminar um segredo

Para eliminar um segredo de um âmbito apoiado pelo Azure Key Vault, utilize o Azure SetSecret REST API ou o portal Azure UI.