Configurar entrega logs de auditoria

Este artigo explica como configurar a entrega de log in formato de arquivo JSON para um bucket de armazenamento do Amazon S3.

Quando seus logs de auditoria são entregues a um bucket de armazenamento S3, você pode disponibilizar os dados para análise de uso. O Databricks fornece um arquivo JSON separado para cada espaço de trabalho da sua account e um arquivo separado para eventos no nível account . Para obter mais informações sobre o esquema de arquivos e eventos de auditoria, consulte Referência do log de auditoria.

Opcionalmente, você pode entregar logs para uma account da AWS diferente da account usada para a IAM role criada para entrega de log. Isso permite flexibilidade, por exemplo, configurar workspace de várias account da AWS para entregar no mesmo bucket do S3. Essa opção requer que você configure uma política de bucket do S3 que faça referência a umaIAM role entre account. Instruções e uma política padrão são fornecidas para você na Passo 3: Suporte entre contas.

Além da entrega de logs para workspace em execução, os logs são entregues para workspacecancelado para garantir que os logs que representam o último dia do workspace sejam entregues corretamente.

Requisitos

Para configurar a entrega logs de auditoria, você deve:

fluxo de alto nível

Esta seção descreve o fluxo de alto nível da entrega logs de auditoria.

  • Passo 1: Configure o armazenamento: Na AWS, crie um novo bucket S3. Usando APIs do Databricks, chame a API account para criar um objeto de configuração de armazenamento que usa o nome do depósito.

  • Passo 2: Configurar credenciais: Na AWS, crie a IAM role apropriada da AWS. Usando APIs do Databricks, chame a API da account para criar um objeto de configuração de credenciais que usa o ARN da IAM role .

  • (Opcional) Passo 3: Suporte entre contas: para entregar logs a uma conta da AWS diferente da conta da IAM role que você criou para entrega de log, adicione uma política de bucket do S3. Esta política faz referência a IDs para aIAM role entre account que você criou na passo anterior.

  • Passo 4: Chame a API de entrega logs : Chame a API de contas para criar uma configuração de entrega logs que use os objetos de configuração de credencial e armazenamento das passos anteriores.

Depois de concluir essas passos, você pode acessar os arquivos JSON. O local de entrega segue o seguinte formato:

<bucket-name>/<delivery-path-prefix>/workspaceId=<workspaceId>/date=<yyyy-mm-dd>/auditlogs_<internal-id>.json

Observação

Se você configurar a entrega logs de auditoria para toda a account, os eventos de auditoria no nível accountque não estiverem associados a nenhum workspace único serão entregues à partição workspaceId=0.

Considerações com base no número de espaços de trabalho

Sua configuração de entrega pode variar dependendo de quantos workspace você tem e onde eles estão localizados:

  • Se você tiver um workspace em sua account do Databricks: siga as instruções descritas no fluxo de alto nível, criando um único objeto de configuração para seu workspace.

  • Se você tiver vários workspace na mesma account do Databricks: siga um destes procedimentos:

    • Compartilhe a mesma configuração (balde S3 de entrega logs e IAM role) para todos os workspace na account. Essa é a única opção de configuração que também fornece logs de auditoria no nível account . É a opção default .

    • Use configurações separadas para cada workspace na account.

    • Use configurações separadas para diferentes grupos de workspace, cada um compartilhando uma configuração.

  • Se você tiver vários workspace, cada um associado a uma account separada do Databricks: Crie armazenamento exclusivo e objetos de configuração de credenciais para cada account. Você pode reutilizar um bucket do S3 ou IAM role entre esses objetos de configuração.

Observação

Você pode configurar a entrega logs com a API account , mesmo que o workspace não tenha sido criado usando a API da account .

Como autenticar na API da conta

Para se autenticar na API account, o senhor pode usar o Databricks OAuth para entidade de serviço, o Databricks OAuth para usuários ou o nome de usuário e a senha de um administrador do Databricks account. A Databricks recomenda enfaticamente que o senhor use o Databricks OAuth para usuários ou entidades de serviço. Uma entidade de serviço é uma identidade que o senhor cria no Databricks para uso com ferramentas, trabalhos e aplicativos automatizados. Consulte a autenticação OAuth máquina a máquina (M2M).

Use os exemplos a seguir para autenticar uma account do Databricks. Você pode usar OAuth para entidade de serviço, OAuth para usuários ou um nome de usuário e senha de usuário (legado). Para obter informações básicas, consulte:

Para exemplos de autenticação, escolha entre os seguintes:

  1. Instale a CLI do Databricks versão 0.205 ou acima. Consulte Instalar ou atualizar a CLI do Databricks.

  2. Conclua os passos para configurar a autenticação OAuth M2M para entidade de serviço na account. Consulte Autenticação máquina a máquina (M2M) OAuth.

  3. Identifique ou crie manualmente um perfil de configuração do Databricks em seu arquivo .databrickscfg , com os campos do perfil definidos corretamente para o mapeamento host, account_id e client_id e client_secret relacionado para a entidade de serviço. Consulte Autenticação máquina a máquina (M2M) OAuth.

  4. execução do comando CLI do databricks de destino, em que <profile-name> representa o nome do perfil de configuração em seu arquivo .databrickscfg :

    databricks account <command-name> <subcommand-name> -p <profile-name>
    

    Por exemplo, para listar todos os usuários na account:

    databricks account users list -p MY-AWS-ACCOUNT
    
    • Para obter uma lista de comandos account disponíveis, execute o comando databricks account -h.

    • Para obter uma lista de subcomandos disponíveis para um comando account , execute o comando databricks account <command-name> -h.

  1. Instale a CLI do Databricks versão 0.205 ou acima. Consulte Instalar ou atualizar a CLI do Databricks.

  2. Conclua os passos para configurar a autenticação OAuth U2M para usuários na account. Consulte Autenticação usuário-máquina (U2M) OAuth.

  3. comece o processo de autenticação do usuário executando o seguinte comando da CLI do Databricks:

    databricks auth login --host <account-console-url> --account-id <account-id>
    

    Por exemplo:

    databricks auth login --host https://accounts.cloud.databricks.com --account-id 00000000-0000-0000-0000-000000000000
    

    Observação

    Se você tiver um perfil de configuração do Databricks existente com os campos host e account_id já definidos, poderá substituir --host <account-console-url> --account-id <account-id> por --profile <profile-name>.

  4. Siga as instruções na tela para que a CLI do Databricks crie automaticamente o perfil de configuração do Databricks relacionado em seu arquivo .databrickscfg .

  5. Continue seguindo as instruções na tela para entrar na sua account do Databricks por meio do navegador da web.

  6. execução do comando CLI do databricks de destino, em que <profile-name> representa o nome do perfil de configuração em seu arquivo .databrickscfg :

    databricks account <command-name> <subcommand-name> -p <profile-name>
    

    Por exemplo, para listar todos os usuários na account:

    databricks account users list -p ACCOUNT-00000000-0000-0000-0000-000000000000
    
    • Para obter uma lista de comandos account disponíveis, execute o comando databricks account -h.

    • Para obter uma lista de subcomandos disponíveis para um comando account , execute o comando databricks account <command-name> -h.

  1. Instale a CLI do Databricks versão 0.205 ou acima. Consulte Instalar ou atualizar a CLI do Databricks.

  2. Identifique ou crie manualmente um perfil de configuração do Databricks em seu arquivo .databrickscfg, com os campos do perfil definidos corretamente para o mapeamento host, account_id e username e password relacionado à sua account de usuário do Databricks. Consulte Autenticação básica (herdada).

  3. execução do comando CLI do databricks de destino, em que <profile-name> representa o nome do perfil de configuração em seu arquivo .databrickscfg :

    databricks account <command-name> <subcommand-name> -p <profile-name>
    

    Por exemplo, para listar todos os usuários na account:

    databricks account users list -p MY-AWS-ACCOUNT
    
    • Para obter uma lista de comandos account disponíveis, execute o comando databricks account -h.

    • Para obter uma lista de subcomandos disponíveis para um comando account , execute o comando databricks account <command-name> -h.

Detalhes de entrega de auditoria

Depois que o log é habilitado para sua account, o Databricks envia automaticamente log in formato legível por humanos para seu local de entrega periodicamente.

  • Latência: após a configuração inicial ou outras alterações de configuração, espere algum atraso antes que suas alterações entrem em vigor. Para configuração inicial de entrega logs de auditoria, leva até uma hora para começar a entrega logs . Após o início da entrega logs , os eventos auditáveis geralmente são logs s dentro de 15 minutos. Mudanças de configuração adicionais geralmente levam uma hora para entrar em vigor.

  • Criptografia: Databricks criptografa logs de auditoria usando criptografia do lado do servidor Amazon S3.

  • Formato: Databricks fornece log in formato JSON.

  • Local: O local de entrega é <bucket-name>/<delivery-path-prefix>/workspaceId=<workspaceId>/date=<yyyy-mm-dd>/auditlogs_<internal-id>.json. Novos arquivos JSON são entregues a cada poucos minutos, possivelmente substituindo os arquivos existentes. O caminho de entrega é definido como parte da configuração. eventos de auditoria em nível de accountque não estão associados a nenhum workspace único são entregues à partição workspaceId=0, se você configurou a entrega de logs de auditoria para toda a account.

    • O Databricks pode substituir os arquivos logs entregues em seu bucket a qualquer momento. Se um arquivo for substituído, o conteúdo existente permanecerá, mas pode haver linhas adicionais para eventos mais auditáveis.

    • A substituição garante a semântica exatamente uma vez sem exigir acesso de leitura ou exclusão à sua account.

Use as APIs de entrega logs

As APIs de entregalogs possuem o seguinte recurso adicional:

o status da configuração de entrega logs pode ser encontrado no objeto log_delivery_status da resposta da API. Com log_delivery_status, você pode verificar o status (sucesso ou falha) e a última tentativa ou entrega bem-sucedida.

Limitações de entrega logs de auditoria

Há um limite para o número de configurações de entrega de log disponíveis por account (cada limite se aplica separadamente a cada tipo de log, incluindo uso faturável e logs de auditoria). Você pode criar no máximo duas configurações de entrega em nível de accounthabilitadas (configurações sem um filtro de workspace ) por tipo. Além disso, você pode criar e habilitar duas configurações de entrega em nível workspace por workspace para cada tipo de logs , o que significa que o mesmo ID workspace pode ocorrer no filtro workspace para não mais que duas configurações de entrega por tipo logs .

Você não pode excluir uma configuração de entrega logs , mas pode desativá-la. Você pode reativar uma configuração desativada, mas a solicitação falhará se violar os limites descritos anteriormente.