Nesta página, descrevemos as entradas de registro do Cloud Audit em detalhes: a estrutura delas, como lê-las e como interpretá-las.
Os registros de auditoria do Cloud fornecem os seguintes registros de auditoria para cada projeto, pasta e organização do Google Cloud:
- Registros de auditoria de atividade do administrador
- Registros de auditoria de acesso a dados
- Registros de auditoria de eventos do sistema
- Registros de auditoria de política negada
Para uma visão geral dos registros do Cloud Audit, consulte Cloud Audit Logs.
Formato das entradas de registro de auditoria
Uma entrada de registro de auditoria é um tipo de entrada de registro do Cloud Logging. Assim como todas as entradas de registro do Logging, uma entrada de registro de auditoria é armazenada em um objeto LogEntry
. O que distingue uma entrada de registro de auditoria de outras entradas de registro é o campo protoPayload
. Em entradas de registro de auditoria, o campo protoPayload
da entrada de registro contém um objeto AuditLog
que armazena os dados de registro de auditoria.
Em resumo, toda entrada de registro de auditoria é caracterizada pelas seguintes informações:
- O projeto, a pasta ou a organização proprietária da entrada de registro.
- O recurso a que a entrada de registro se aplica. Esta informação consiste em um tipo de recurso da lista de recursos monitorados (em inglês) e outros valores que denotam uma instância específica. Por exemplo, é possível ver as entradas de registro de auditoria de uma única instância de VM do Compute Engine ou de todas as instâncias de VM.
- Um carimbo de data/hora.
Um serviço: os serviços são produtos individuais do Google Cloud, como o Compute Engine, o Cloud SQL ou o Pub/Sub. Cada serviço é identificado pelo nome: Compute Engine é
compute.googleapis.com
, Cloud SQL écloudsql.googleapis.com
e assim por diante. Essas informações são listadas no campoprotoPayload.serviceName
da entrada de registro de auditoria.Os tipos de recursos pertencem a um único serviço, mas um serviço pode ter vários tipos de recursos. Para ver uma lista de serviços e recursos, acesse Como mapear serviços para recursos.
Um payload, que é o tipo
protoPayload
. O payload de cada entrada de registro de auditoria é um objeto do tipoAuditLog
, que define um conjunto de campos específicos para registros de auditoria do Cloud, comoserviceName
eauthenticationInfo
. Ele também tem um campo opcional,metadata
, que os serviços do Google Cloud Platform usam para listar informações específicas do serviço na entrada de registro de auditoria. Alguns serviços do Google Cloud ainda usam o camposerviceData
mais antigo para listar informações específicas do serviço. Para acessar uma lista serviços que usam o camposerviceData
, consulte Dados de auditoria específicos do serviço.Um nome de registro: as entradas de registro de auditoria pertencem a registros em projetos, pastas e organizações. Os nomes dos registros estão listados abaixo:
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy
Em um projeto, pasta ou organização, esses nomes de registro geralmente são abreviados como activity, data_access, system_event e policy,
Exemplo de entrada de registro de auditoria
Nesta seção, usamos um exemplo de entrada de registro de auditoria para explicar como encontrar as informações mais importantes.
O exemplo a seguir é uma entrada de registro de auditoria das atividades do administrador escrita pelo
App Engine para registrar uma alteração em
uma política do Identity and Access Management (IAM) com PROJECT_ID my-gcp-project-id
. Por praticidade, omitimos algumas partes da entrada de registro e destacamos os campos importantes.
{ protoPayload: { @type: "type.googleapis.com/google.cloud.audit.AuditLog", status: {}, authenticationInfo: { principalEmail: "user@example.com" }, serviceName: "appengine.googleapis.com", methodName: "SetIamPolicy", authorizationInfo: [...], serviceData: { @type: "type.googleapis.com/google.appengine.legacy.AuditData", policyDelta: { bindingDeltas: [ action: "ADD", role: "roles/logging.privateLogViewer", member: "user:user@example.com" ], } }, request: { resource: "my-gcp-project-id", policy: { bindings: [...], } }, response: { bindings: [ { role: "roles/logging.privateLogViewer", members: [ "user:user@example.com" ] } ], } }, insertId: "53179D9A9B559.AD6ACC7.B40604EF", resource: { type: "gae_app", labels: { project_id: "my-gcp-project-id" } }, timestamp: "2019-05-27T16:24:56.135Z", severity: "NOTICE", logName: "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity", }
Veja a seguir a consulta usada para selecionar o exemplo de entrada de registro de auditoria acima.
Ele pode ser usado na Análise de registros, na API Logging ou na Google Cloud CLI.
O identificador do projeto está no nome do registro e a consulta é rápida porque o campo logName
está indexado:
resource.type = "gae_app" logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
Ao procurar registros de auditoria de uma única instância de um tipo de recurso, como gce_instance
, inclua um qualificador de instância:
resource.type = "gce_instance" resource.instance_id = "INSTANCE_ID" logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
Como interpretar o exemplo de entrada de registro de auditoria
No exemplo de entrada de registro de auditoria acima, os campos protoPayload
, insertId
, resource
, timestamp
, severity
e logName
mostrados são parte do o objeto LogEntry
. O valor do campo protoPayload
é um objeto AuditLog
. Ele armazena os dados do registro de auditoria.
Você poderá ter as seguintes dúvidas ao observar o exemplo de entrada de registro de auditoria acima:
Trata-se de uma entrada de registro de auditoria? Sim, e há duas maneiras de identificar isso.
O campo
protoPayload.@type
étype.googleapis.com/google.cloud.audit.AuditLog
.O campo
logName
inclui o domíniocloudaudit.googleapis.com
.
Qual serviço gravou o registro de auditoria? O registro foi gravado pelo App Engine. Essas informações são listadas no campo
protoPayload.serviceName
da entrada de registro de auditoria.Qual operação está sendo auditada?
SetIamPolicy
, conforme especificado no campoprotoPayload.methodName
, está sendo auditado. Para mais informações sobre a operação auditada, consulte o objetoAuditData
emprotoPayload.serviceData
.Qual recurso está sendo auditado? Um aplicativo em execução no App Engine, associado a um projeto do Google Cloud
my-gcp-project-id
, está sendo auditado. É possível determinar isso a partir do camporesource
, que especifica o tipo de recursogae_app
e o identificador do projetomy-gcp-project-id
. Neste exemplo, você encontrará detalhes sobre o tipo de recurso na lista tipos de recursos monitorados.
Para mais informações, consulte os tipos LogEntry
, AuditLog
e AuditData
do IAM.
Registros de auditoria para operações de longa duração
As APIs que são operações de longa duração emitem dois registros de auditoria: um quando a API é chamada e a operação começa e outro quando a operação é concluída.
Nesse caso, o objeto LogEntry
contém um campo operation
. Entradas de registro
para a mesma operação têm o mesmo valor para LogEntry.operation.id
e LogEntry.operation.producer
. O primeiro registro escrito tem LogEntry.operation.first=true
,
e o registro de conclusão tem LogEntry.operation.last=true
.
Nos casos em que a operação é concluída imediatamente, há apenas um registro
que contêm LogEntry.operation.first=true
e LogEntry.operation.last=true
.
Essas APIs implementam as operações
serviço. Esse serviço geralmente emite registros de auditoria quando é chamado. Dependendo de quais APIs são chamadas,
protoPayload.methodName
é um dos seguintes:
google.longrunning.Operations.ListOperations
google.longrunning.Operations.GetOperation
google.longrunning.Operations.CancelOperation
google.longrunning.Operations.WaitOperation
google.longrunning.Operations.DeleteOperation
LogEntry.operation
não é especificado nesse caso, já que essa API retorna
metadados sobre operações de longa duração, mas não é uma operação de longa duração em si.
Consulte os detalhes em Serviços do Google com registros de auditoria sobre quais APIs são auditadas, já que isso pode variar de acordo com o serviço.
Registros de auditoria para APIs de streaming
Semelhante a operações de longa duração, as APIs de streaming emitem duas auditorias registros um quando a API é chamada pela primeira vez e outro quando a conexão de streaming é encerrada.
Nesse caso, o objeto LogEntry
contém um campo operation
, e as entradas de registro
da mesma operação têm o mesmo valor para LogEntry.operation.id
e LogEntry.operation.producer
. O primeiro registro escrito tem LogEntry.operation.first=true
,
e o registro de conclusão terá LogEntry.operation.last=true
.
Essa API também pode emitir registros de continuação sem LogEntry.operation.first
nem
LogEntry.operation.last
definido para indicar que o stream permanece aberto.
Dados de auditoria específicos do serviço
Alguns serviços estendem as informações armazenadas no AuditLog
, colocando uma estrutura de dados suplementar no campo serviceData
do log de auditoria. A tabela a seguir lista os serviços que usam o campo serviceData
e fornece um link para o tipo AuditData
.
Como ver registros de auditoria
É possível consultar todos os registros de auditoria ou consultar o nome do registro de auditoria. O nome do registro de auditoria inclui o
identificador de recurso
do projeto, da pasta, da conta de faturamento ou da organização
do Google Cloud com as informações de registro de auditoria que você quer consultar.
Suas consultas podem especificar campos LogEntry
indexados e, se você usar a página Análise de dados de registros, que é compatível com consultas SQL, será possível conferir os resultados da consulta como um gráfico.
Para mais informações sobre como consultar seus registros, consulte as seguintes páginas:
- Criar consultas na Análise de registros.
- Consultar e visualizar registros na Análise de dados de registros.
- Amostras de consultas para insights de segurança.
Console
No Console do Google Cloud, é possível usar a Análise de Registros para recuperar as entradas de registro de auditoria do projeto do Google Cloud, da pasta ou da organização:
-
No console do Google Cloud, acesse a página Análise de registros:
Acessar a Análise de registros
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Geração de registros.
Selecione um projeto do Google Cloud, uma pasta ou uma organização.
Para exibir todos os registros de auditoria, insira uma das seguintes consultas no campo do editor de consultas e clique em Executar consulta:
logName:"cloudaudit.googleapis.com"
protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
Para exibir os registros de auditoria de um recurso e tipo de registro específicos, no painel Criador de consultas, faça o seguinte:
Em Tipo de recurso, selecione o recurso do Google Cloud com os registros de auditoria que você quer consultar.
Em Nome do registro, selecione o tipo de registro de auditoria que você quer consultar.
- Para os registros de auditoria da atividade do administrador, selecione Atividade.
- Para os registros de auditoria de acesso a dados, selecione data_access.
- Para os registros de auditoria de eventos do sistema, selecione system_event.
- Em "Registros de auditoria de política negada", selecione policy.
Clique em Executar consulta.
Se você não encontrar essas opções, isso significa que não há registros de auditoria desse tipo disponíveis no projeto do Google Cloud, na pasta ou na organização.
Se você estiver com problemas para conferir registros na Análise de registros, consulte as informações de solução de problemas.
Para mais informações sobre como consultar usando a Análise de Registros, consulte Criar consultas na Análise de Registros. Para informações sobre como resumir entradas na Análise de registros usando o Gemini, consulte Resumir entradas de registro com assistência do Gemini.
gcloud
A Google Cloud CLI fornece uma interface de linha de comando para a API Logging. Insira um identificador de recurso válido em cada um dos nomes de registro. Por exemplo, se a consulta incluir um PROJECT_ID, o identificador do projeto que você fornecer precisará fazer referência ao projeto do Google Cloud selecionado.
Para ler suas entradas de registro de auditoria no nível do projeto do Google Cloud, execute o comando a seguir:
gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \ --project=PROJECT_ID
Para ler suas entradas de registro de auditoria no nível da pasta, execute o comando a seguir:
gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \ --folder=FOLDER_ID
Para ler as entradas de registro de auditoria no nível da organização, execute este comando:
gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \ --organization=ORGANIZATION_ID
Para ler as entradas de registro de auditoria na conta do Cloud Billing, execute este comando:
gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \ --billing-account=BILLING_ACCOUNT_ID
Adicione a sinalização --freshness
ao comando para ler registros com mais de um dia.
Saiba mais sobre como usar a CLI gcloud em
gcloud logging read
.
API
Ao criar consultas, informe um identificador de recurso válido em cada um dos nomes de registro. Por exemplo, se a consulta incluir um PROJECT_ID, o identificador do projeto que você fornecer precisará fazer referência ao projeto do Google Cloud selecionado.
Por exemplo, para usar a API Logging para visualizar as entradas de registro de auditoria para envolvidos no projeto:
Acesse a seção Testar esta API da documentação do método
entries.list
.Digite o seguinte na parte do Corpo da solicitação do formulário Teste esta API. Clique nesse formulário preenchido automaticamente para preencher automaticamente o corpo da solicitação, mas é necessário inserir um PROJECT_ID válido em cada um dos nomes de registro.
{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
Clique em Executar.