Se você usa registros de atividades para visualizar atividades administrativas e eventos do sistema do Compute Engine, leia este guia para entender como encontrar entradas de registro semelhantes usando registros de auditoria .
Os registros de atividades do Compute Engine estão obsoletos. Você pode identificar entradas do log de atividades com base no nome do log:
logName: "projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
Os registros de auditoria do Compute Engine contêm as mesmas informações disponíveis nos registros de atividades e muito mais. Mas os registos de auditoria apresentam as informações de forma diferente em comparação com os registos de atividades. Portanto, você precisará ajustar suas consultas.
Como migrar de registros de atividades para registros de auditoria
Para usar registros de auditoria em vez de registros de atividades, ajuste suas consultas . Use as etapas a seguir.
Encontre suas consultas antigas. Por exemplo, você pode tê-los salvo em uma pesquisa salva no Logs Explorer ou criado um script usando a API ou o SDK. Para obter mais informações sobre como você pode monitorar seus recursos, consulte a documentação do Logging .
Substitua os campos do log de atividades pelos campos apropriados do log de auditoria. Consulte a tabela para ver como os campos são mapeados entre si.
Por exemplo, se sua consulta de log de atividades herdada procurou um campo chamado
jsonPayload.resource.name
, sua nova consulta de log de auditoria deverá procurarprotoPayload.resourceName
.Salve e use sua nova consulta de log de auditoria. Por exemplo, crie uma pesquisa salva no Cloud Logging ou atualize seus scripts.
Exemplos
Aqui estão alguns exemplos de consultas convertidas:
Consultando atividades relacionadas a um recurso específico
Exemplo de consulta | |
---|---|
Registro de atividades legado | gcloud logging read jsonPayload.resource.name=" VM_NAME " |
Registro de auditoria | Use uma das seguintes opções
Com a opção 1, o operador "has" ( |
Consultando entradas recentes do log de atividades do administrador
Exemplo de consulta | |
---|---|
Registro de atividades legado | gcloud logging read logName="projects/ PROJECT_ID /logs/compute.googleapis.com%2Factivity_log" |
Registro de auditoria | gcloud logging read logName="projects/ PROJECT_ID /logs/cloudaudit.googleapis.com%2Factivity" |
Consultando entradas de log de criação de instância recentes
Exemplo de consulta | |
---|---|
Registro de atividades legado | gcloud logging read 'logName="projects/ PROJECT_ID /logs/compute.googleapis.com%2Factivity_log" AND jsonPayload.event_subtype="compute.instances.insert"' |
Registro de auditoria | gcloud logging read 'logName="projects/ PROJECT_ID /logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.methodName:"compute.instances.insert"' |
Consultando o início de todas as operações de criação de instância
Exemplo de consulta | |
---|---|
Registro de atividades legado | gcloud logging read 'jsonPayload.event_type="GCE_API_CALL" AND jsonPayload.event_subtype="compute.instances.insert"' |
Registro de auditoria | gcloud logging read 'operation.first="true" AND protoPayload.methodName:"compute.instances.insert"' |
Consultando a conclusão de qualquer operação
Exemplo de consulta | |
---|---|
Registro de atividades legado | gcloud logging read jsonPayload.event_type="GCE_OPERATION_DONE" |
Registro de auditoria | gcloud logging read operation.last="true" |
Diferenças entre logs de atividades e logs de auditoria
Leia esta seção para saber como os logs de auditoria são estruturados de forma diferente dos logs de atividades. Lembre-se dessas diferenças ao converter consultas de log de atividades herdadas em consultas de log de auditoria. Por exemplo, em suas consultas, substitua todos os nomes de campos de log de atividades herdados pelos nomes de campos de log de auditoria correspondentes.
Embora o registro em log de auditoria e o registro em log de atividades retornem objetos de entrada de log , eles têm as seguintes diferenças:
- Nomes de campos diferentes. Consulte a tabela de mapeamento de nomes de campos para obter detalhes.
- Diferentes valores de campo, incluindo:
- Nomes de registro diferentes: os registros de auditoria têm nomes de registro que contêm
cloudaudit.googleapis.com
. - Cargas diferentes: os logs de auditoria retornam um campo
protoPayload
em vez de umjsonPayload
. - Nomes de recursos totalmente qualificados: os logs de auditoria retornam nomes de recursos que incluem seu caminho, por exemplo:
projects/my-project/zones/us-east1-b/instances/my-instance-name
. - Nomes de métodos com versão: os logs de auditoria retornam nomes de métodos que incluem sua versão, por exemplo,
v1
.
- Nomes de registro diferentes: os registros de auditoria têm nomes de registro que contêm
Aqui está um exemplo que mostra diferenças em nomes de log e cargas úteis:
Exemplo de entrada de log | |
---|---|
Registro de atividades legado | { insertId: "1x3bbhjg2wwvz1x" jsonPayload: { event_subtype: "compute.instances.stop" ... resource: { id: "12345678900123456789" name: "my-instance-name" type: "instance" zone: "us-east1-b" } ... } labels: {…} logName: "projects/my-project/logs/compute.googleapis.com%2Factivity_log" receiveTimestamp: "2019-08-26T12:22:44.602794616Z" ... } |
Registro de auditoria | { insertId: "-w6o499e22fwk" logName: "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity" protoPayload: { ... methodName: "beta.compute.instances.stop" ... resourceName: "projects/my-project/zones/us-east1-b/instances/my-instance-name" } receiveTimestamp: "2019-08-26T12:22:46.881198276Z" ... } |
Mapeando campos de logs de atividades para logs de auditoria
Use as tabelas a seguir para mapear campos de log de atividades para campos de log de auditoria correspondentes em suas consultas.
Campos
Use a tabela a seguir para substituir campos de log de atividades herdados por campos de log de auditoria em suas consultas atualizadas.
Por exemplo, se sua consulta de log de atividades herdada contivesse um filtro baseado em jsonPayload.resource.type
, sua nova consulta de log de auditoria deveria filtrar em resource.type
.
Campo de registro de atividades legado | Campo de registro de auditoria |
---|---|
insertId | insertId |
jsonPayload.actor.user | protoPayload.authenticationInfo.principalEmail |
jsonPayload.event_subtype | protoPayload.methodName |
jsonPayload.event_timestamp_us | timestamp |
jsonPayload.event_type="GCE_API_CALL" | operation.first="true" |
jsonPayload.event_type="GCE_OPERATION_DONE" | operation.last="true" |
jsonPayload.request | protoPayload.request |
jsonPayload.operation | operation |
jsonPayload.resource.id | resource.labels.instance_id |
jsonPayload.resource.name | protoPayload.resourceName |
jsonPayload.resource.type | resource.type |
jsonPayload.resource.zone | resource.labels.zone |
jsonPayload.trace_id | operation.id |
jsonPayload.user_agent | protoPayload.requestMetadata.callerSuppliedUserAgent |
labels.compute.googleapis.com/resource_id | resource.labels.[RESOURCE_TYPE]_id |
labels.compute.googleapis.com/resource_name | protoPayload.resourceName |
labels.compute.googleapis.com/resource_type | resource.type |
labels.compute.googleapis.com/resource_zone | Um de:
|
logName | logName |
receiveTimestamp | receiveTimestamp |
resource.labels | resource.labels |
severity | severity |
timestamp | timestamp |
Valores de campo
Use as tabelas a seguir para mapear valores de campos de log de atividades herdados para valores de campos de log de auditoria. Em comparação com os registos de atividades, os registos de auditoria têm vários valores de nome de registo e diferentes valores de carga útil . As entradas do log de auditoria também retornam nomes de recursos totalmente qualificados e nomes de métodos com controle de versão.
Nomes de registro
Para encontrar uma entrada de registro de auditoria, procure um logName
que inclua cloudaudit.googleapis.com
.
Nome do registro | Conteúdo do registro | |
---|---|---|
Registro de atividades legado | projects/ PROJECT_ID /logs/compute.googleapis.com%2Factivity_log | Atividade administrativa e eventos do sistema |
Registro de auditoria | projects/ PROJECT_ID /logs/cloudaudit.googleapis.com%2Factivity | Atividade administrativa |
projects/ PROJECT_ID /logs/cloudaudit.googleapis.com%2Fsystem_event | Eventos do sistema | |
projects/ PROJECT_ID /logs/cloudaudit.googleapis.com%2Fdata_access | Acesso a dados |
Cargas úteis
Em cada entrada do log de auditoria, procure um protoPayload
em vez de um jsonPayload
.
Tipo de carga útil | Exemplo de carga útil | |
---|---|---|
Registro de atividades legado | jsonPayload | jsonPayload: { actor: {…} event_subtype: "compute.instances.start" event_timestamp_us: "1566404493487248" event_type: "GCE_API_CALL" ip_address: "" operation: {…} request: {…} resource: {…} trace_id: "operation-1566404491560-590a2f74b4705-a1ae0686-d896d772" user_agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" version: "1.2" } |
Registro de auditoria | protoPayload | protoPayload: { @type: "type.googleapis.com/google.cloud.audit.AuditLog" authenticationInfo: {…} methodName: "v1.compute.instances.start" request: {…} requestMetadata: {…} resourceName: "projects/my-project/zones/us-central1-a/instances/alert" serviceName: "compute.googleapis.com" } |
Para saber como essas cargas se relacionam entre si e como mapear campos de log de atividades legados para campos de log de auditoria, leia mapeamentos de campos de entrada de log .
Nomes de recursos
Nos logs de auditoria, os nomes dos recursos da API (no campo protoPayload.resourceName
) são totalmente qualificados, por exemplo:
resourceName: "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Você ainda pode usar nomes parciais, mas deve corrigir sua consulta para usar o operador "has" ( :
) em vez do operador "equals".
Use uma das seguintes opções em suas consultas de log de auditoria para filtrar um recurso específico:
gcloud logging read protoPayload.resourceName:"VM_NAME"
gcloud logging read protoPayload.resourceName="projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Nomes de métodos
Nos logs de auditoria, os nomes dos métodos de API (no campo protoPayload.methodName
) são prefixados com sua versão, como: v1.compute.instances.delete
.
Campo | Valor | Exemplo de consulta | |
---|---|---|---|
Registro de atividades legado | jsonPayload.event_subtype | RESOURCE . METHOD | jsonPayload.event_subtype=compute.instances.delete |
Registro de auditoria | protoPayload.methodName | API_VERSION . RESOURCE . METHOD | protoPayload.methodName=v1.compute.instances.delete ou protoPayload.methodName=beta.compute.instances.delete ou protoPayload.methodName:compute.instances.delete |
Você ainda pode usar nomes de métodos não versionados em suas consultas de log de auditoria, mas deve corrigir sua consulta para usar o operador "has" ( :
) em vez do operador "equals" ( =
). Por exemplo: protoPayload.methodName:compute.instances.delete
retorna todas as chamadas de API de exclusão de instância, independentemente da versão. Para obter mais informações sobre operadores, consulte comparações .
O que vem a seguir
- Leia o início rápido para usar ferramentas de registro.
- Saiba mais sobre como visualizar entradas de log .
- Saiba mais sobre como visualizar registros com filtros de registro avançados .
- Saiba mais sobre os registros de auditoria de nuvem do Compute Engine.