

# Configuração da fonte para o GitHub Audit Log
<a name="github-audit-log-source-setup"></a>

**nota**  
 Importante: é necessária uma conta do GitHub Enterprise para usar esse conector. As contas pessoais ou organizacionais do GitHub não são compatíveis. 

## Integrando o com o GitHub
<a name="github-audit-log-integration"></a>

O Amazon Telemetry Pipelines permite coletar logs de auditoria do GitHub Enterprise Cloud. O GitHub Enterprise é uma plataforma de desenvolvimento de software de nível corporativo, projetada para os fluxos de trabalho complexos do desenvolvimento moderno. O GitHub Enterprise Cloud é a solução do GitHub Enterprise baseada na nuvem que é hospedada nos servidores do GitHub.

## Autenticar no GitHub
<a name="github-audit-log-authentication"></a>

Para ler os logs, o pipeline precisa ser autenticado na conta do GitHub. No [escopo](https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/audit-log?apiVersion=2022-11-28#get-the-audit-log-for-an-enterprise) da empresa, você pode usar o token de acesso pessoal e no [escopo](https://docs.github.com/en/enterprise-cloud@latest/rest/orgs/orgs?apiVersion=2022-11-28#get-the-audit-log-for-an-organization) da organização, você pode usar o token de acesso pessoal ou a aplicação GitHub.

**Gerar o token para autenticar como token de acesso pessoal:**
+ Faça login no [GitHub](https://github.com/dashboard) usando as credenciais da conta do GitHub
+ O usuário autenticado deve ser um administrador da empresa para usar esse endpoint
+ Abra a página de tokens de acesso pessoal do GitHub (clássico), localize a opção Gerar novo token (clássico) e siga o procedimento do GitHub para gerar um token com escopo de `read:audit_log` e sem expiração
+ Armazene esse novo token em um segredo no AWS Secrets Manager com a chave `personal_access_token`

**Gere a chave privada para ser autenticado como aplicação GitHub:**
+ Faça login no [GitHub](https://github.com/dashboard) usando as credenciais da conta do GitHub
+ Certifique-se de que a aplicação GitHub tenha as [permissões](https://docs.github.com/en/enterprise-cloud@latest/apps/creating-github-apps/registering-a-github-app/choosing-permissions-for-a-github-app) “Administração” da organização (leitura)
+  Siga as instruções em [Gerenciar chaves privadas para aplicações GitHub](https://docs.github.com/en/enterprise-cloud@latest/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps) e gere a chave privada
+ Armazene essa chave privada em um segredo no AWS Secrets Manager com a chave `private_key` e o nome da aplicação GitHub com a chave `app_id`

## Configurar o CloudWatch Pipeline
<a name="github-audit-log-pipeline-config"></a>

Ao configurar o pipeline para ler os logs de auditoria do GitHub Enterprise Cloud, escolha Logs de auditoria do GitHub como a fonte de dados. Selecione Tipo de fonte como Empresa ou Organização com base no escopo de integração e preencha as informações necessárias, como nome da empresa ou da organização, de acordo com o escopo selecionado. Depois de criado o pipeline, os dados estarão disponíveis no grupo de logs do CloudWatch Logs selecionado.

## Classes de eventos do Open Cybersecurity Schema Framework compatíveis
<a name="github-audit-log-ocsf-events"></a>

Essa integração é compatível com o esquema OCSF versão v1.5.0 e [ações do GitHub](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/security-log-events) que são mapeadas para Account Change (3001), API Activity (6003) e Entity Management (3004).

**Account Change** inclui as seguintes ações:
+ org.enable\_two\_factor\_requirement
+ org.disable\_two\_factor\_requirement
+ two\_factor\_authentication.add\_factor
+ two\_factor\_authentication.enabled
+ two\_factor\_authentication.disabled
+ two\_factor\_authentication.remove\_factor
+ org.disable\_saml
+ org.enable\_saml
+ personal\_access\_token.access\_restriction\_disabled
+ personal\_access\_token.access\_restriction\_enabled
+ personal\_access\_token.expiration\_limit\_set
+ personal\_access\_token.expiration\_limit\_unset

**API Activity** incluem as seguintes ações:
+ repository\_secret\_scanning\_custom\_pa....create
+ repository\_secret\_scanning\_custom\_pa....update
+ repository\_secret\_scanning\_custom\_pa....delete
+ repository\_secret\_scanning\_custom\_pa....publish
+ repository\_secret\_scanning\_custom\_p....enabled
+ repository\_secret\_scanning\_custom\_p....disabled
+ repository\_secret\_scanning\_non\_provi....enabled
+ repository\_secret\_scanning\_non\_provi....disabled
+ repository\_secret\_scanning\_generic\_s....enabled
+ repository\_secret\_scanning\_generic\_s....disabled
+ business\_secret\_scanning\_custom\_pattern.create
+ business\_secret\_scanning\_custom\_pattern.update
+ business\_secret\_scanning\_custom\_pattern.delete
+ business\_secret\_scanning\_custom\_pattern.publish
+ business\_secret\_scanning\_custom\_patt....enabled
+ business\_secret\_scanning\_custom\_patt....disabled
+ business\_secret\_scanning\_generic\_secrets.enabled
+ business\_secret\_scanning\_generic\_secrets.disabled
+ business\_secret\_scanning\_non\_provide....enabled
+ business\_secret\_scanning\_non\_provide....disabled
+ org\_secret\_scanning\_non\_provider\_patt... ativado
+ org\_secret\_scanning\_non\_provider\_patt....disabled
+ org\_secret\_scanning\_generic\_secrets.enabled
+ org\_secret\_scanning\_generic\_secrets.disabled
+ org\_secret\_scanning\_custom\_pattern.create
+ org\_secret\_scanning\_custom\_pattern.update
+ org\_secret\_scanning\_custom\_pattern.delete
+ org\_secret\_scanning\_custom\_pattern.publish

**Entity Management** inclui as seguintes ações:
+ oauth\_application.destroy
+ oauth\_application.generate\_client\_secret
+ oauth\_application.remove\_client\_secret
+ oauth\_application.revoke\_all\_tokens
+ oauth\_application.revoke\_tokens
+ oauth\_application.transfer
+ personal\_access\_token.auto\_approve\_grant\_requests\_enabled
+ personal\_access\_token.auto\_approve\_grant\_requests\_disabled
+ ip\_allow\_list.disable
+ ip\_allow\_list.enable\_for\_installed\_apps
+ ip\_allow\_list.disable\_for\_installed\_apps
+ ip\_allow\_list\_entry.create
+ ip\_allow\_list\_entry.update
+ ip\_allow\_list\_entry.destroy
+ repository\_secret\_scanning.disable
+ repository\_secret\_scanning\_automatic....disabled
+ repository\_secret\_scanning\_push\_prot....disable
+ repository\_secret\_scanning\_push\_prot....enable
+ oauth\_application.create
+ oauth\_application.reset\_secret
+ auto\_approve\_personal\_access\_token\_req... ativado
+ auto\_approve\_personal\_access\_token\_req....disabled
+ ip\_allow\_list.enable
+ ip\_allow\_list.disable\_user\_level\_enforcement
+ ip\_allow\_list.enable\_user\_level\_enforcement
+ repository\_secret\_scanning.enable
+ repository\_secret\_scanning\_automatic....enabled
+ repository\_secret\_scanning\_push\_prot....enable
+ repository\_secret\_scanning\_push\_prot....add
+ repository\_secret\_scanning\_push\_prot....remove
+ repository\_secret\_scanning\_push\_prot....disable
+ secret\_scanning.enable
+ secret\_scanning.disable
+ secret\_scanning\_new\_repos.enable
+ org\_secret\_scanning\_automatic\_validi....enabled
+ org\_secret\_scanning\_automatic\_validi....disabled
+ org\_secret\_scanning\_push\_protection\_b....add
+ org\_secret\_scanning\_push\_protection\_b....remove
+ org\_secret\_scanning\_push\_protection\_b....disable
+ org\_secret\_scanning\_push\_protection\_b....enable
+ business\_secret\_scanning\_automatic\_va....enabled
+ business\_secret\_scanning\_automatic\_va....disabled
+ business\_secret\_scanning\_push\_protection.enable
+ business\_secret\_scanning\_push\_protection.disable
+ business\_secret\_scanning\_push\_protection.enabled\_for\_new\_repos
+ business\_secret\_scanning\_push\_protection.disabled\_for\_new\_repos
+ business\_secret\_scanning\_push\_prote....enable
+ business\_secret\_scanning\_push\_prote....update
+ business\_secret\_scanning\_push\_prote....disable