Esta página descreve as entradas do registo dos registos de auditoria da nuvem em detalhe: a respetiva estrutura, como as ler e como as interpretar.
Os registos de auditoria do Cloud Audit Logs fornecem os seguintes registos de auditoria para cada Google Cloud projeto, pasta e organização:
- Registos de auditoria de atividade do administrador
- Registos de auditoria de acesso a dados
- Registos de auditoria de eventos do sistema
- Registos de auditoria de políticas recusadas
Para uma vista geral dos registos de auditoria do Cloud, consulte o artigo Registos de auditoria do Cloud.
Formato das entradas do registo de auditoria
Uma entrada do registo de auditoria é um tipo de entrada do registo do Cloud Logging. Tal como todas as entradas de registo do Logging, uma entrada de registo de auditoria é armazenada num objeto LogEntry
. O que distingue uma entrada do registo de auditoria de outras entradas do registo é o campo protoPayload
. Nas entradas do registo de auditoria, o campo protoPayload
da entrada do registo contém um objeto AuditLog
que armazena os dados de registo de auditoria.
Em resumo, cada entrada do registo de auditoria é caraterizada pelas seguintes informações:
- O projeto, a pasta ou a organização proprietária da entrada de registo.
- O recurso ao qual a entrada do registo se aplica. Estas informações consistem num tipo de recurso da lista de recursos monitorizados e valores adicionais que denotam uma instância específica. Por exemplo, pode ver entradas do registo de auditoria de uma única instância de VM do Compute Engine ou de todas as instâncias de VM.
- Uma indicação de tempo.
Um serviço: os serviços são Google Cloud produtos individuais, como o Compute Engine, o Cloud SQL ou o Pub/Sub. Cada serviço é identificado pelo nome: o Compute Engine é
compute.googleapis.com
, o Cloud SQL écloudsql.googleapis.com
e assim sucessivamente. Estas informações estão listadas no campoprotoPayload.serviceName
da entrada do registo 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, aceda ao artigo Mapeamento de serviços para recursos.
Uma carga útil, que é do tipo
protoPayload
. A carga útil de cada entrada do registo de auditoria é um objeto do tipoAuditLog
, que define um conjunto de campos específicos dos registos de auditoria do Cloud, comoserviceName
eauthenticationInfo
. Também tem um campo opcional,metadata
, que os serviços usam para listar informações específicas do serviço na entrada do registo de auditoria. Google Cloud Alguns Google Cloud serviços continuam a usar o camposerviceData
mais antigo para apresentar informações específicas do serviço. Para ver uma lista dos serviços que usam o camposerviceData
, consulte os dados de auditoria específicos do serviço.Um nome de registo: as entradas do registo de auditoria pertencem a registos em contas de faturação, projetos, pastas e organizações. A tabela seguinte apresenta os nomes dos registos:
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
Numa conta de faturação, num projeto, numa pasta ou numa organização, estes nomes de registos são normalmente abreviados como activity, data_access, system_event e policy.
Exemplo de entrada do registo de auditoria
Esta secção usa uma entrada de registo de auditoria de exemplo para explicar como encontrar as informações mais importantes nas entradas de registo de auditoria.
O exemplo seguinte é uma entrada do registo de auditoria da atividade do administrador escrita pelo
App Engine para registar uma alteração a uma política de
Identity and Access Management (IAM) com PROJECT_ID my-gcp-project-id
.
Por uma questão de brevidade, algumas partes da entrada do registo são omitidas e alguns campos são realçados:
{ 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", }
Segue-se a consulta que foi usada para selecionar o exemplo de entrada do registo de auditoria anterior. A consulta pode ser usada no Explorador de registos, na API Logging ou na CLI Google Cloud. O identificador do projeto está no nome do registo:
resource.type = "gae_app" logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
Se estiver à procura de registos de auditoria de uma única instância de um tipo de recurso, como gce_instance
, adicione um qualificador de instância:
resource.type = "gce_instance" resource.instance_id = "INSTANCE_ID" logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
Interpretar a entrada do registo de auditoria de exemplo
No exemplo de entrada do registo de auditoria anterior, os campos protoPayload
,
insertId
,
resource
, timestamp
, severity
e logName
apresentados fazem parte do objeto
LogEntry
. O valor do campo protoPayload
é um objeto AuditLog
. Encapsula os dados de registo de auditoria.
Ao analisar o exemplo de entrada do registo de auditoria, pode ter algumas dúvidas:
Trata-se de uma entrada do registo de auditoria? Sim, pode confirmá-lo de duas formas:
O campo
protoPayload.@type
étype.googleapis.com/google.cloud.audit.AuditLog
.O campo
logName
inclui o domíniocloudaudit.googleapis.com
.
Que serviço escreveu o registo de auditoria? O registo foi escrito pelo App Engine. Estas informações estão listadas no campo
protoPayload.serviceName
da entrada do registo de auditoria.Que operação está a ser auditada?
SetIamPolicy
, conforme especificado no campoprotoPayload.methodName
, está a ser auditado. Pode encontrar mais informações sobre a operação auditada no objetoAuditData
emprotoPayload.serviceData
.Que recurso está a ser auditado? Uma aplicação em execução no App Engine, associada a um Google Cloud projeto
my-gcp-project-id
, está a ser auditada. Pode determiná-lo a partir do camporesource
, que especifica o tipo de recursogae_app
e o identificador do projetomy-gcp-project-id
. Neste exemplo, encontraria detalhes sobre o tipo de recurso na lista de tipos de recursos monitorizados.
Para mais informações, consulte o tipo LogEntry
, o tipo AuditLog
e o tipo IAM AuditData
.
Registos de auditoria para operações de longa duração
As APIs que são operações de longa duração emitem dois registos de auditoria: um quando a API é chamada e a operação é iniciada, e outro quando a operação é concluída.
Neste caso, o objeto LogEntry
contém um campo operation
.
As entradas de registo para a mesma operação têm o mesmo valor para LogEntry.operation.id
e LogEntry.operation.producer
.
A primeira entrada de registo escrita tem LogEntry.operation.first=true
e a entrada de registo de conclusão tem LogEntry.operation.last=true
.
Nos casos em que a operação é concluída imediatamente ou falha, existe apenas uma entrada no registo
com LogEntry.operation.first=true
e LogEntry.operation.last=true
.
Alguns serviços não preenchem o campo LogEntry.operation
quando a operação falha. No entanto, pode determinar que operações são operações de longa duração consultando a documentação de registo de auditoria do serviço.
Estas APIs implementam o serviço Operations.
Geralmente, este serviço emite entradas de registo de auditoria quando é chamado. Consoante as APIs que são chamadas, protoPayload.methodName
é uma das seguintes opções:
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 neste caso, uma vez que esta API devolve metadados
sobre operações de longa duração, mas não é uma operação de longa duração em si.
Consulte os Google Cloud serviços com registos de auditoria para ver detalhes sobre as APIs auditadas, uma vez que podem variar por serviço.
Registos de auditoria para APIs de streaming
Semelhante às operações de longa duração, as APIs de streaming emitem duas entradas de registo de auditoria: uma quando a API é chamada pela primeira vez e outra quando a ligação de streaming termina.
Neste caso, o objeto LogEntry
contém um campo operation
e as entradas do registo
para a mesma operação têm o mesmo valor para LogEntry.operation.id
e LogEntry.operation.producer
.
O primeiro registo escrito tem LogEntry.operation.first=true
,
e o registo de conclusão tem LogEntry.operation.last=true
.
Esta API também pode emitir entradas de registo de continuação sem LogEntry.operation.first
nem LogEntry.operation.last
definidos para indicar que a stream permanece aberta.
Dados de auditoria específicos do serviço
Alguns serviços expandem as informações armazenadas nos respetivos
AuditLog
ao colocar uma estrutura de dados suplementar no campo serviceData
da entrada do registo de auditoria. A tabela seguinte apresenta os serviços que usam o campo serviceData
e fornece um link para o respetivo AuditData
tipo.
Ver registos de auditoria
Pode consultar todos os registos de auditoria ou consultar os registos pelo respetivo nome do registo de auditoria. O nome do registo de auditoria inclui o
identificador do recurso
do Google Cloud projeto, da pasta, da conta de faturação ou da
organização para a qual quer ver as informações de registo de auditoria.
As suas consultas podem especificar campos LogEntry
indexados.
Para mais informações sobre como consultar os seus registos, consulte o artigo
Crie consultas no Explorador de registos
O Explorador de registos permite-lhe ver entradas de registo individuais filtradas. Se quiser usar SQL para analisar grupos de entradas de registo, use a página Log Analytics. Para mais informações, consulte:
- Consultar e ver registos no Log Analytics.
- Consultas de exemplo para estatísticas de segurança.
- Represente graficamente os resultados das consultas.
A maioria dos registos de auditoria pode ser vista no Cloud Logging através da Google Cloud consola, da CLI do Google Cloud ou da API Logging. No entanto, para registos de auditoria relacionados com a faturação, só pode usar a CLI do Google Cloud ou a API Logging.
Consola
Na Google Cloud consola, pode usar o Explorador de registos para obter as entradas do registo de auditoria do seu Google Cloud projeto, pasta ou organização:
-
Na Google Cloud consola, aceda à página Explorador de registos:
Aceda ao Explorador de registos
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.
Selecione um Google Cloud projeto, uma pasta ou uma organização existente.
Para apresentar todos os registos de auditoria, introduza uma das seguintes consultas no campo do editor de consultas e, de seguida, clique em Executar consulta:
logName:"cloudaudit.googleapis.com"
protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
Para apresentar os registos de auditoria de um recurso específico e um tipo de registo de auditoria, no painel Criador de consultas, faça o seguinte:
Em Tipo de recurso, selecione o Google Cloud recurso cujos registos de auditoria quer ver.
Em Nome do registo, selecione o tipo de registo de auditoria que quer ver:
- Para os registos de auditoria da atividade do administrador, selecione atividade.
- Para os registos de auditoria de acesso a dados, selecione data_access.
- Para os registos de auditoria de eventos do sistema, selecione system_event.
- Para registos de auditoria de recusa de políticas, selecione política.
Clique em Executar consulta.
Se não vir estas opções, significa que não existem registos de auditoria desse tipo disponíveis no projeto, na pasta ou na organização. Google Cloud
Se estiver a ter problemas ao tentar ver registos no Explorador de registos, consulte as informações de resolução de problemas.
Para mais informações sobre como consultar através do Explorador de registos, consulte o artigo Crie consultas no Explorador de registos.
gcloud
A CLI do Google Cloud fornece uma interface de linhas de comando para a API Logging. Forneça um identificador de recurso válido em cada um dos nomes dos registos. Por exemplo, se a sua consulta incluir um PROJECT_ID, o identificador do projeto que fornecer tem de se referir ao projetoGoogle Cloud atualmente selecionado.
Para ler as entradas do registo de auditoria ao nível do projeto, execute o seguinte comando: Google Cloud
gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \ --project=PROJECT_ID
Para ler as entradas do registo de auditoria ao nível da pasta, execute o seguinte comando:
gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \ --folder=FOLDER_ID
Para ler as entradas do registo de auditoria ao nível da organização, execute o seguinte comando:
gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \ --organization=ORGANIZATION_ID
Para ler as entradas do registo de auditoria ao nível da conta do Cloud Billing, execute o seguinte comando:
gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \ --billing-account=BILLING_ACCOUNT_ID
Adicione a flag --freshness
ao seu comando para ler registos com mais de 1 dia.
Para mais informações sobre a utilização da CLI gcloud, consulte
gcloud logging read
.
REST
Quando criar as consultas, forneça um identificador de recurso válido em cada um dos nomes dos registos. Por exemplo, se a sua consulta incluir um PROJECT_ID, o identificador do projeto que fornecer tem de se referir ao projetoGoogle Cloud atualmente selecionado.
Por exemplo, para usar a API Logging para ver as entradas do registo de auditoria ao nível do projeto, faça o seguinte:
Aceda à secção Experimentar esta API na documentação do método
entries.list
.Coloque o seguinte na parte Corpo do pedido do formulário Experimentar esta API. Se clicar neste formulário pré-preenchido, o corpo do pedido é preenchido automaticamente, mas tem de fornecer um PROJECT_ID válido em cada um dos nomes dos registos.
{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
Clique em Executar.