Gerenciar identidades, permissões e privilégios para pipelines

Identidades, permissões e privilégios controlam quem pode executar, gerenciar e consultar pipelines e os dados que produzem.

O Databricks recomenda usar o Catálogo do Unity para todos os novos pipelines. Por padrão, exibições materializadas e tabelas de streaming criadas por pipelines configurados com o Catálogo do Unity só podem ser consultadas pelo proprietário do pipeline. Consulte Usar o Unity Catalog com pipelines.

Se os pipelines publicarem conjuntos de dados no metastore herdado do Hive, consulte Usar pipelines do Lakeflow com o metastore herdado do Hive.

Para obter práticas recomendadas gerais sobre configurações de identidade, consulte as práticas recomendadas de identidade.

Qual identidade é usada para atualizações de pipeline?

Os pipelines processam atualizações usando a identidade do usuário configurado em Executar como. Por padrão, o usuário configurado em Executar como é o criador do pipeline, mas você pode alterá-lo para outro usuário ou uma entidade de serviço. Consulte Definir o usuário com permissão de execução.

A Databricks recomenda definir o usuário de execução como um principal de serviço, para que as atualizações do pipeline não fiquem vinculadas à conta de um usuário específico. Confira Entidades de serviço.

Conceda a essa entidade de serviço somente os privilégios do Unity Catalog de que o pipeline precisa, em vez de acesso amplo no nível da conta. Por exemplo, conceder USE CATALOG no catálogo de destino, USE SCHEMA e o privilégio apropriado CREATE (CREATE MATERIALIZED VIEW ou CREATE TABLE) no esquema de saída e SELECT em suas respectivas origens. Para o conjunto completo de privilégios necessários para publicar no Catálogo Unity, veja Requisitos.

Quem pode executar uma atualização de pipeline?

As atualizações de pipeline podem ser executadas por qualquer usuário ou principal de serviço com permissões CAN RUN, CAN MANAGE ou IS OWNER.

Quem pode ver um pipeline e sua saída?

Para abrir um pipeline e ver seus detalhes, um usuário precisa de pelo menos a permissão CAN VIEW no pipeline. Para obter a lista completa dos níveis de permissão dos pipelines e das habilidades concedidas por cada um, consulte ACLs dos pipelines do Lakeflow.

Para ver o pipeline que dá suporte a uma tabela de streaming ou exibição materializada, um usuário que não é administrador também precisa do privilégio REFRESH nessa tabela de streaming ou exibição materializada, além das permissões no pipeline. Sem REFRESH privilégio, a URL do pipeline mostra Pipeline não disponível.

Configurar permissões de pipeline

Você deve ter a permissão CAN MANAGE ou IS OWNER no pipeline para gerenciar permissões. Os pipelines usam ACLs (listas de controle de acesso) para controlar permissões. Para obter uma lista completa das permissões e do que cada uma permite, consulte ACLs para pipelines do Lakeflow.

  1. Na barra lateral, clique em Jobs & Pipelines.
  2. Selecione o Nome de um pipeline.
  3. Clique em Compartilhar. A caixa de diálogo Configurações de Permissões é exibida.
  4. Clique em Selecionar Usuário, Grupo ou Entidade de Serviço... e selecione um usuário, grupo ou entidade de serviço.
  5. Selecione uma permissão no menu suspenso de permissões.
  6. Clique em Adicionar.
  7. Clique em Salvar.

Alterar o proprietário do pipeline

Por padrão, o proprietário do pipeline também é o usuário configurado em Executar como, sob cuja identidade as atualizações do pipeline são executadas. Alterar o proprietário altera a identidade usada em atualizações futuras.

Se você quiser alterar a identidade sob a qual as atualizações do pipeline são executadas sem alterar o proprietário, configure o usuário em Executar como. Consulte Definir o usuário com permissão de execução.

Para alterar o proprietário de um pipeline, você deve ser um administrador do metastore e um administrador do workspace. Altere o proprietário usando a interface do usuário ou a API REST.

Usar a interface do usuário

  1. Na barra lateral, clique em Jobs & Pipelines.
  2. Selecione o Nome do pipeline.
  3. Clique em Compartilhar. A caixa de diálogo Configurações de Permissões é exibida.
  4. Desmarque o proprietário atual e selecione o novo proprietário. O proprietário pode ser um usuário ou uma entidade de serviço. A Databricks recomenda uma entidade de serviço. Confira Entidades de serviço.
  5. Clique em Salvar.

Usar a API REST

Se o controle de proprietário não estiver disponível na interface do usuário, como para alguns pipelines gerenciados internamente, altere o proprietário com a operação definir permissões de pipeline da API REST. Especifique o user_name (ou service_principal_name para uma entidade de serviço) do novo proprietário com o IS_OWNER nível de permissão:

{
  "access_control_list": [
    {
      "user_name": "new.owner@example.com",
      "permission_level": "IS_OWNER"
    }
  ]
}

Se nenhum usuário for ao mesmo tempo administrador do metastore e administrador do workspace

Se ninguém na sua organização for administrador de metastore e administrador de workspace, entre em contato com seu representante da Databricks para alterar o proprietário do pipeline.

Permitir que usuários não administradores exibam os logs de driver de um pipeline habilitado para Unity Catalog

Por padrão, somente o proprietário do pipeline e os administradores do workspace podem exibir os logs de driver do cluster que executa um pipeline habilitado para Catálogo do Unity. Você pode permitir o acesso aos logs do driver para qualquer usuário que possua permissões CAN MANAGE, CAN VIEW ou CAN RUN ao adicionar o seguinte parâmetro de configuração do Spark ao objeto nas configurações do pipeline:

{
  "configuration": {
    "spark.databricks.acl.needAdminPermissionToViewLogs": "false"
  }
}

Credenciais de referência direto de um escopo secreto

Nunca codifique chaves de API, senhas de banco de dados ou tokens no código-fonte do seu pipeline. Armazene-as em um escopo secreto e faça referência a elas em runtime:

api_token = dbutils.secrets.get(scope="orders-pipeline-secrets", key="external_api_token")

O Azure Databricks oculta automaticamente valores secretos ([REDACTED]) em qualquer lugar em que, de outra forma, apareceriam na saída do notebook ou do log, e você pode restringir quem pode ler um escopo usando uma ACL de segredo. Confira Gerenciamento de segredos.

Proteger dados sensíveis na saída do pipeline

Para colunas que contenham informações pessoais identificáveis (PII), aplique a governança do Unity Catalog às tabelas que seu pipeline produz, em vez de escrever lógica de mascaramento personalizada no código do pipeline:

  • Máscaras de coluna ocultam ou aplicam hash ao valor de uma coluna com base no grupo ao qual pertence o usuário que faz a consulta.
  • Filtros de linha restringem quais linhas o usuário pode ver.

Aplicar esses controles na tabela do Unity Catalog protege informações de identificação pessoal de forma consistente para cada consumidor da tabela, incluindo painéis, consultas ad hoc e trabalhos downstream, e não apenas dentro do pipeline. Veja Filtros de linha e máscaras de coluna. Como passo adicional, mantenha as informações de identificação pessoal (PII) isoladas em colunas ou tabelas específicas, em um schema claramente identificado, para que as permissões de acesso e as auditorias sejam mais simples de analisar.