Pular para o conteúdo principal

Logs de auditoria do GitHub

info

Visualização

O Lakewatch está na Pré-visualização privada. Para solicitar acesso, entre em contato com a equipe de account do Databricks.

O Lakewatch fornece um conector de API para ingerir logs de auditoria da organização do GitHub. Este artigo aborda pré-requisitos, instruções de configuração, o esquema do conector e observáveis do analisador do Lakewatch.

Pré-requisitos​

O conector requer:

  1. Serverless Lakeflow Spark Declarative Pipelines ativado no seu workspace.
  2. Unity Catalog, com privilégios para criar ou usar uma conexão Unity Catalog. Consulte Permissões de conexão.
  3. Uma account do GitHub com acesso à organização da qual você deseja ingerir logs de auditoria.
  4. Permissão para criar aplicativos OAuth nas configurações de desenvolvedor da sua account do GitHub.

Limitações conhecidas​

  • A tabela audit_logs está disponível apenas para account da organização.
  • No plano gratuito do GitHub, a história de logs de auditoria no github.com é limitada a 90 dias.
  • A busca retroativa histórica não pode exceder 180 dias. Consulte Escolher até onde retroceder na ingestão.
  • O conector suporta apenas access tokens OAuth user-to-machine (U2M) de longa duração. Se o aplicativo OAuth emitir tokens access token de usuário com prazo de validade, a ingestão falhará após o access token expirar.
  • O GitHub inclui endereços IP de atores em eventos de auditoria apenas quando a exibição de endereços IP está habilitada nas configurações da organização ou enterprise do GitHub.

Configurar o GitHub para ingestão​

  1. Faça login na sua account do GitHub.

  2. No canto superior direito de qualquer página, clique em sua foto de perfil para abrir o menu de navegação do usuário.

  3. Clique em Configurações .

  4. Clique em Configurações do desenvolvedor .

  5. Na seção Aplicativos OAuth , clique em Novo aplicativo OAuth .

  6. Insira um nome memorável para o aplicativo no campo Nome do aplicativo .

  7. No campo URL da página inicial , insira o URL principal da sua instância do Databricks. Por exemplo, https://my-databricks-account.cloud.databricks.com. Opcionalmente, insira uma descrição do aplicativo.

  8. Defina o URL de retorno de chamada de autorização da seguinte forma:

    https://<your_workspace_domain>/login/oauth/lakehousefederation.html

    Por exemplo:

    https://my-databricks-account.cloud.databricks.com/login/oauth/lakehousefederation.html

  9. Clique em registro aplicativo . Isso o levará à página de detalhes do aplicativo.

  10. Observe o ID do Cliente . Você precisará dele ao criar sua conexão do Unity Catalog.

  11. Clique em Gerar um novo segredo do cliente para gerar um segredo do cliente para o seu aplicativo.

  12. Observe o Segredo do Cliente gerado. Este valor é exibido apenas uma vez.

dica

Ao criar uma conexão através da UI do Lakewatch, insira o ID do Cliente e o Segredo do Cliente coletados acima. Para o GitHub Enterprise Server, insira também o domínio Enterprise opcional. Você será redirecionado para o GitHub para autorizar os escopos solicitados.

Para obter mais informações, consulte Configurar OAuth U2M para ingestão do GitHub.

Os passos seguintes​

Após concluir a configuração acima, crie uma fonte de dados com o conector do GitHub na interface do usuário do Lakewatch. Veja conectores de API para obter instruções.


Esquemas do Conector e do Lakewatch​

O Lakewatch ingere a seguinte tabela de origem do esquema de origem default do conector do GitHub:

Tabela de origem

Dados do GitHub

Analisador Lakewatch integrado

audit_logs

Ações da organização realizadas por usuários, integrações e sistemas

github_audit_lfc

Tabela de origem

Dados do GitHub

Analisador Lakewatch integrado

audit_logs

Ações da organização realizadas por usuários, integrações e sistemas

github_audit_lfc

O conector grava a tabela de origem no destino bruto da fonte de dados. O analisador integrado grava uma tabela analisada separada nomeada após o analisador, a menos que você defina um destino analisado ao configurar a fonte de dados.

Colunas gerenciadas pelo Lakewatch​

O conector adiciona as seguintes colunas a cada linha de origem bruta:

  • lw_id: Uma string não nula que o Lakewatch usa como key primária. O conector deriva um ID estável e classificável por tempo dos campos @timestamp e _document_id de origem.
  • time: Um timestamp UTC não nulo convertido do valor @timestamp de origem, que o GitHub reporta como milissegundos da época Unix. O conector usa time como o campo de cursor para ingestão incremental.

A tabela analisada leva lw_id adiante. O analisador também atribui a coluna time analisada e adiciona:

  • lw_meta: Metadados de processamento padrão do Lakewatch.
  • lw_observables: Valores extraídos de campos marcados como observáveis de segurança no analisador.

Para mais informações, consulte a Referência do analisador.

Esquema de tabela de conector bruto​

O conector extrai campos comuns de eventos de auditoria do GitHub para colunas tipadas e preserva o evento de origem completo em payload.

Esquema

Coluna

Tipo de dados

lw_id

STRING

_document_id

STRING

time

TIMESTAMP

action

STRING

actor

STRING

org

STRING

repo

STRING

payload

VARIANT

Coluna

Tipo de dados

lw_id

STRING

_document_id

STRING

time

TIMESTAMP

action

STRING

actor

STRING

org

STRING

repo

STRING

payload

VARIANT

Para definições de campo, consulte a API de log de auditoria do GitHub.

Observáveis do analisador​

O analisador github_audit_lfc mantém o evento de origem completo como VARIANT em payload e extrai os seguintes campos para lw_observables.

Observáveis

campo

Observável

actor

username

payload.actor_ip

ip

payload.email

email

payload.invitee_email

email

payload.user

username

payload.blocked_user

username

payload.external_identity_nameid

username

payload.external_identity_username

username

payload.user_programmatic_access_name

username

payload.invitee

username

payload.inviter

username

payload.authorized_actors[]

username

payload.authorized_actor_names[]

username

payload.actor_id

actor_id

payload.user_id

actor_id

payload.referrer

url

payload.url

url

payload.pull_request_url

url

payload.config.url

url

payload.config_was.url

url

payload.head_sha

hash

payload.after

hash

payload.before

hash

payload.calling_workflow_shas[]

hash

campo

Observável

actor

username

payload.actor_ip

ip

payload.email

email

payload.invitee_email

email

payload.user

username

payload.blocked_user

username

payload.external_identity_nameid

username

payload.external_identity_username

username

payload.user_programmatic_access_name

username

payload.invitee

username

payload.inviter

username

payload.authorized_actors[]

username

payload.authorized_actor_names[]

username

payload.actor_id

actor_id

payload.user_id

actor_id

payload.referrer

url

payload.url

url

payload.pull_request_url

url

payload.config.url

url

payload.config_was.url

url

payload.head_sha

hash

payload.after

hash

payload.before

hash

payload.calling_workflow_shas[]

hash