Observação: Webhooks podem ser uma boa alternativa ao log de auditoria ou à pesquisa de API para determinados casos de uso. Os webhooks são uma maneira de o GitHub notificar seu servidor quando houver eventos específicos para um repositório, organização ou empresa. Em comparação com a API ou com a pesquisa de log de auditoria, os webhooks podem ser mais eficientes se você quiser apenas conhecer e, possivelmente, registrar quando determinados eventos ocorrerem em sua empresa, organização ou repositório. Para obter mais informações, confira "Documentação de webhooks".
Sobre a transmissão do log de auditoria
Para ajudar a proteger sua propriedade intelectual e manter a conformidade para sua empresa, você pode usar o streaming para manter cópias dos seus dados de log de auditoria. O log de auditoria detalha eventos como alterações nas configurações e acesso, subscrição de usuário, permissões de aplicativo e muito mais. Se você fizer streaming de dados de log de auditoria, poderá usufruir dos seguintes benefícios.
- Exploração de dados. Você pode examinar eventos transmitidos usando sua ferramenta preferida para consultar grandes quantidades de dados. O streaming contém eventos de auditoria e do Git em toda a conta corporativa.
- Retenção de dados. Você pode manter os logs de auditoria e os dados de eventos do Git exportados o tempo necessário.
Os proprietários empresariais podem configurar ou excluir um fluxo a qualquer momento. O fluxo exporta dados de auditoria e eventos do Git para todas as organizações em sua empresa, relativos a atividades a partir do momento em que o fluxo está habilitado.
Todos os logs de auditoria transmitidos são enviados como arquivos JSON compactados. O formato do nome de arquivo está emYYYY/MM/HH/MM/<uuid>.json.gz
.
Observação: o GitHub usa um método de entrega do tipo "pelo menos uma vez". Determinados problemas da rede ou do sistema poderão duplicar alguns eventos.
Habilitar o streaming de log pode causar menor impacto no desempenho de sua instância do GitHub Enterprise Server. Para obter mais informações sobre como aumentar os recursos para mitigar esse impacto no desempenho, consulte "Aprimorar os recursos de CPU ou memória".
Eventos que aparecem em streams de log de auditoria
Você pode revisar os eventos específicos que aparecem nos logs de auditoria transmitidos. Para obter mais informações, consulte os seguintes artigos.
- "Auditar eventos de log para sua empresa"
- "Eventos de log de auditoria para sua organização"
- "Eventos do log de segurança"
Configurando a transmissão do log de auditoria
Você configurou o fluxo do log de auditoria em GitHub Enterprise Server seguindo as instruções do seu provedor.
- Amazon S3
- Armazenamento de Blobs do Azure
- Hubs de Eventos do Azure
- Datadog
- Google Cloud Storage
- Splunk
Configurando a transmissão para o Amazon S3
Observação: a região us-east-1
da Amazon deve estar acessível a partir do seu dispositivo para que o streaming para o S3 funcione.
Para configurar a tarnsmissão do de log de auditoria de GitHub você vai precisar:
- Seu ID de acesso ao AWS
- Sua chave de segredo para o AWS
Para obter informações sobre como criar ou acessar a ID da chave de acesso e a chave secreta, confira Noções básicas e obtenção das suas credenciais da AWS na documentação da AWS.
-
No AWS, crie um bucket e bloqueie o acesso público a ele. Para obter mais informações, confira Como criar, configurar e trabalhar com buckets do Amazon S3 na documentação da AWS.
-
No AWS, crie uma política que permita que o GitHub escreva no bucket copiando o JSON a seguir e substituindo
EXAMPLE-BUCKET
pelo nome do bucket. O GitHub exige apenas as permissões deste JSON.{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::EXAMPLE-BUCKET/*" } ] }
Para obter mais informações, confira Como criar políticas de IAM na documentação da AWS.
-
No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.
-
Do lado esquerdo da página, na barra lateral da conta empresarial, clique em Configurações.
-
Em " Configurações", clique em Log de auditoria.
-
Em "Log de auditoria", clique em Streaming de log.
-
Selecione o menu suspenso Configurar fluxo e clique em Amazon S3.
-
Defina as configurações de fluxo.
- Em "Bucket", digite o nome do bucket de destino da transmissão. Por exemplo,
auditlog-streaming-test
. - Em "ID da Chave de Acesso", digite a ID da chave de acesso. Por exemplo,
ABCAIOSFODNN7EXAMPLE1
. - Em "Chave Secreta", digite a chave secreta. Por exemplo,
aBcJalrXUtnWXYZ/A1MDENG/zPxRfiCYEXAMPLEKEY
.
- Em "Bucket", digite o nome do bucket de destino da transmissão. Por exemplo,
-
Para verificar se o GitHub pode se conectar ao ponto de extremidade do Amazon S3 e fazer gravações nele, clique em Verificar ponto de extremidade.
-
Depois de verificar com êxito o ponto de extremidade, clique em Salvar.
Integração com o AWS CloudTrail Lake
É possível consolidar seus logs de auditoria do GitHub Enterprise Server com os logs de atividades da AWS integrando o streaming de logs de auditoria ao S3 com o AWS CloudTrail Lake. Para saber mais, confira Documentação do AWS CloudTrail ou Log de auditoria do GitHub para CloudTrail Open Audit no repositório aws-samples/aws-cloudtrail-lake-github-audit-log
.
Configurando a transmissão para o Azure Blob Storage
Antes de configurar uma transmissão em GitHub, você deve primeiro ter criado uma conta de armazenamento e um contêiner no Microsoft Azure. Para obter detalhes, confira a documentação da Microsoft: "Introdução ao Armazenamento de Blobs do Azure".
Para configurar a transmissão em GitHub, você precisa da URL de um token SAS.
No portal do Microsoft Azure:
- Na Página Inicial, clique em Contas do Armazenamento.
- Em "Nome", clique no nome da conta de armazenamento que deseja usar.
- Em "Armazenamento de dados", clique em Contêineres.
- Clique no nome do contêiner que você deseja usar.
- Na barra lateral esquerda, em "Configurações", clique em Tokens de acesso compartilhado.
- Selecione o menu suspenso Permissões e as opções
Create
eWrite
, depois desmarque todas as outras opções. - Defina uma data de validade que esteja em conformidade com sua política de rotação de segredo.
- Clique em Gerar token SAS e URL.
- Copie o valor do campo URL SAS de Blob exibido. Você usará este URL em GitHub.
No GitHub :
-
No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.
-
Do lado esquerdo da página, na barra lateral da conta empresarial, clique em Configurações.
-
Em " Configurações", clique em Log de auditoria.
-
Em "Log de auditoria", clique em Streaming de log.
-
Selecione o menu suspenso Configurar fluxo e clique em Armazenamento de Blobs do Azure.
-
Na página de configuração, insira a URL do SAS do blob que você copiou no Azure. O campo Contêiner é preenchido automaticamente com base na URL.
-
Clique em Verificar ponto de extremidade para verificar se o GitHub pode se conectar ao ponto de extremidade do Armazenamento de Blobs do Azure e fazer gravações nele.
-
Depois de verificar com êxito o ponto de extremidade, clique em Salvar.
Configurando a transmissão para os Centros de Evento do Azure
Antes de configurar uma transmissão em GitHub, primeiro você deve ter o namespace do centro de um evento no Microsoft Azure. Em seguida, você deve criar uma instância do centro de um evento dentro do namespace. Você precisará das informações da instância do centro desse evento ao configurar a transmissão. Para obter detalhes, confira a documentação da Microsoft: "Guia de Início Rápido: Criar um hub de eventos usando o portal do Azure".
Você precisa de duas informações sobre seu centro de eventos: o nome da sua instância e a sequência de caracteres de conexão.
No portal do Microsoft Azure:
- Na parte superior da página, ao lado de "Microsoft Azure", use a caixa de pesquisa para pesquisar "Hubs de Eventos".
- Selecione a opção Hubs de Eventos. Os nomes dos centros de eventos serão listados.
- Faça uma observação do nome do hub de eventos para o qual você deseja transmitir. Clique no hub de eventos.
- No menu à esquerda, clique em Políticas de acesso compartilhado.
- Selecione uma política de acesso compartilhado na lista de políticas ou crie uma política.
- Copie a cadeia de conexão do campo Chave primária da cadeia de conexão.
No GitHub :
-
No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.
-
Do lado esquerdo da página, na barra lateral da conta empresarial, clique em Configurações.
-
Em " Configurações", clique em Log de auditoria.
-
Em "Log de auditoria", clique em Streaming de log.
-
Selecione o menu suspenso Configurar fluxo e clique em Hubs de Eventos do Azure.
-
Na página de configuração, insira:
- O nome da instância do Centro de Eventos do Azure.
- A cadeia de conexão.
-
Clique em Verificar ponto de extremidade para verificar se o GitHub pode se conectar ao ponto de extremidade do Hub de Eventos do Azure e fazer gravações nele.
-
Depois de verificar com êxito o ponto de extremidade, clique em Salvar.
Configurando streaming para o Datadog
Para configurar o streaming para o Datadog, você deve criar um token de cliente ou uma chave de API no Datadog e configurar o streaming de log de auditoria em GitHub Enterprise Server usando o token para autenticação. Você não precisa criar um bucket ou outro contêiner de armazenamento no Datadog.
Depois de configurar o streaming para o Datadog, você poderá ver seus dados de log de auditoria filtrando por "github.audit.streaming". Para obter mais informações, confira "Gerenciamento de log".
-
Se ainda não tiver uma conta do Datadog, crie uma.
-
No Datadog, gere um token de cliente ou uma chave de API e clique em Copiar chave. Para obter mais informações, confira API e Chaves de Aplicativo no Datadog Docs.
-
No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.
-
Do lado esquerdo da página, na barra lateral da conta empresarial, clique em Configurações.
-
Em " Configurações", clique em Log de auditoria.
-
Em "Log de auditoria", clique em Streaming de log.
-
Selecione o menu suspenso Configurar fluxo e clique em Datadog.
-
No campo Token, cole o token copiado anteriormente.
-
Selecione o menu suspenso Site e clique no site do Datadog. Para determinar seu site do Datadog, compare sua URL do Datadog com a tabela em Sites do Datadog em Datadog Docs.
-
Para verificar se o GitHub pode se conectar ao ponto de extremidade do Datalog e fazer gravações nele, clique em Verificar ponto de extremidade.
-
Depois de verificar com êxito o ponto de extremidade, clique em Salvar.
-
Após alguns minutos, confirme se os dados do log de auditoria estão aparecendo na guia Logs do Datadog. Se os dados do log de auditoria não estiverem aparecendo, confirme se o token e o site estão corretos em GitHub.
Configurando a transmissão para o Google Cloud Storage
Para configurar a transmissão para o Google Cloud Storage, você deve criar uma conta de serviço no Google Cloud com as credenciais e permissões apropriadas e, em seguida, configurar a transmissão do log de auditoria em GitHub Enterprise Server usando as credenciais da conta de serviço para autenticação.
-
Crie uma conta de serviço para o Google Cloud. Você não precisa definir os controles de acesso ou as funções do IAM para a conta de serviço. Para obter mais informações, confira Como criar e gerenciar contas de serviço na documentação do Google Cloud.
-
Crie uma chave JSON para a conta de serviço e armazene a chave com segurança. Para obter mais informações, confira Como criar e gerenciar chaves de conta de serviço na documentação do Google Cloud.
-
Se você ainda não criou um nucket, crie-o. Para obter mais informações, confira Como criar buckets de armazenamento na documentação do Google Cloud.
-
Dê à conta de serviço a função do Storage Object Creator para o bucket. Para obter mais informações, confira Como usar permissões de IAM de Nuvem na documentação do Google Cloud.
-
No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.
-
Do lado esquerdo da página, na barra lateral da conta empresarial, clique em Configurações.
-
Em " Configurações", clique em Log de auditoria.
-
Em "Log de auditoria", clique em Streaming de log.
-
Selecione o menu suspenso Configurar fluxo e clique em Google Cloud Storage.
-
Em "Bucket", digite o nome do seu bucket do Google Cloud Storage.
-
Em "Credenciais do JSON ", cole todo o conteúdo do arquivo para a chave do JSON da sua conta de serviço.
-
Para verificar se o GitHub pode se conectar ao bucket do Google Cloud Storage e fazer gravações nele, clique em Verificar ponto de extremidade.
-
Depois de verificar com êxito o ponto de extremidade, clique em Salvar.
Configurando a transmissão para o Splunk
Para transmitir os logs de auditoria para o Coletor de Eventos HTTP (HEC) do Splunk, você deverá garantir que o ponto de extremidade esteja configurado para aceitar conexões HTTPS. Para obter mais informações, confira Configurar e usar o Coletor de Eventos HTTP no Splunk Web na documentação do Splunk.
Observação: GitHub valida o ponto de extremidade HEC por <Domain>:port/services/collector
. Se estiver fazendo a auto-hospedagem do ponto de extremidade HEC (por exemplo, com o Splunk HEC Receiver por OpenTelemetry), certifique-se de que o ponto de extremidade esteja acessível nesse destino.
-
No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.
-
Do lado esquerdo da página, na barra lateral da conta empresarial, clique em Configurações.
-
Em " Configurações", clique em Log de auditoria.
-
Em "Log de auditoria", clique em Streaming de log.
-
Selecione o menu suspenso Configurar fluxo e clique em Splunk.
-
Na página de configuração, insira:
-
O domínio para o qual o aplicativo deseja que você transmita está hospedado.
Se você estiver usando o Splunk Cloud,
Domain
deve serhttp-inputs-<host>
, em quehost
é o domínio usado na plataforma. Por exemplo,http-inputs-mycompany.splunkcloud.com
.Se você estiver usando a avaliação gratuita do Splunk Cloud,
Domain
deve serinputs.<host>
, em quehost
é o domínio usado na plataforma. Por exemplo,inputs.mycompany.splunkcloud.com
. -
A porta sobre a qual o aplicativo aceita dados.
Se você estiver usando o Splunk Cloud e não tiver alterado a configuração da porta,
Port
deverá ser443
.Se você estiver usando a versão de avaliação gratuita do Splunk Cloud,
Port
deve ser8088
. -
Um token que GitHub pode usar para efetuar a autenticação no aplicativo de terceiros.
-
-
Mantenha a caixa de seleção Habilitar verificação SSL marcada.
Os logs de auditoria são sempre transmitidos como dados criptografados. No entanto, com esta opção selecionada, GitHub verifica o certificado SSL da sua instância do Splunk ao realizar os eventos. A verificação SSL ajuda a garantir que os eventos sejam entregues no ponto de extremidade da sua URL de forma segura. Você pode limpar a seleção desta opção, mas recomendamos que saia da verificação SSL habilitada.
-
Clique em Verificar ponto de extremidade para verificar se o GitHub pode se conectar ao ponto de extremidade do Splunk e fazer gravações nele.
-
Depois de verificar com êxito o ponto de extremidade, clique em Salvar.
Excluindo a transmissão do log de auditoria
-
No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.
-
Do lado esquerdo da página, na barra lateral da conta empresarial, clique em Configurações.
-
Em " Configurações", clique em Log de auditoria.
-
Em "Log de auditoria", clique em Streaming de log.
-
Em "Zona de Perigo", clique em Excluir fluxo.
-
Uma mensagem de confirmação é exibida. Clique em Excluir fluxo para confirmar.