Esta página descreve os registros de auditoria criados pelo Firebase como parte dos registros de auditoria do Cloud .
Visão geral
Os serviços do Firebase escrevem registros de auditoria para ajudar você a responder às perguntas "Quem fez o quê, onde e quando?". Esses são registros de auditoria do Cloud, fornecidos como parte do projeto do Google Cloud conectado ao seu projeto do Firebase .
Cada um dos seus projetos do Firebase contém apenas os registros de auditoria dos recursos que estão diretamente dentro do projeto.
Para obter uma visão geral dos logs de auditoria da nuvem, consulte Visão geral dos logs de auditoria da nuvem . Para uma compreensão mais profunda do formato do log de auditoria, consulte Compreender os logs de auditoria .
Logs de auditoria disponíveis
Os seguintes tipos de registros de auditoria estão disponíveis para o Firebase Realtime Database:
Registros de auditoria de atividades administrativas
Inclui operações de "gravação administrativa" que gravam metadados ou informações de configuração.
Não é possível desativar os registros de auditoria de atividades administrativas.
Logs de auditoria de acesso a dados
Inclui operações de "leitura administrativa" que leem metadados ou informações de configuração. Também inclui operações de “leitura de dados” e “gravação de dados” que leem ou gravam dados fornecidos pelo usuário.
Para receber logs de auditoria de acesso a dados, você deve ativá-los explicitamente.
Para obter descrições mais completas dos tipos de log de auditoria, consulte Tipos de logs de auditoria .
Operações auditadas
Veja a seguir um resumo de quais operações de API correspondem a cada tipo de registro de auditoria no Firebase Realtime Database:
Categoria de registros de auditoria | Operações do Firebase Realtime Database |
---|---|
Registros de auditoria de atividades administrativas (ADMIN_WRITE) |
|
Registros de auditoria de acesso a dados (ADMIN_READ) |
|
Logs de auditoria de acesso a dados (DATA_READ ou DATA_WRITE) |
|
Registros de auditoria de acesso a dados (DATA_READ) |
|
Logs de auditoria de acesso a dados (DATA_WRITE) |
|
Informações de autenticação de auditoria
As entradas do log de auditoria incluem informações sobre a identidade que executou a operação registrada. Para identificar um chamador de solicitação, consulte os seguintes campos no objeto AuditLog:
Estabelecendo conexões em tempo real. As operações do Realtime Database
Connect
não registram dados de autenticação, pois o Realtime Database é autenticado depois que uma conexão é estabelecida. Portanto,Connect
não possui informações de autenticação. O objetoAuthenticationInfo
contém um espaço reservadoprincipalEmail
deaudit-pending-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
.Autenticação do Google. As operações do Realtime Database que usam a autenticação padrão do Google, como o tráfego do SDK Admin do Firebase ou solicitações REST autenticadas com um token OAuth padrão , têm um objeto
AuthenticationInfo
que contém o e-mail de credenciais real.Autenticação Firebase. As operações do Realtime Database que usam o Firebase Authentication têm um objeto
AuthenticationInfo
que contém um valorprincipalEmail
deaudit-third-party-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
. O mesmo acontece se você implementar sua própria solução de autenticação criando JWTs personalizados.- Se um JSON Web Token (JWT) tiver sido usado para autenticação de terceiros, o campo
thirdPartyPrincipal
incluirá o cabeçalho e a carga útil do token. Por exemplo, os registros de auditoria para solicitações autenticadas com o Firebase Authentication incluem o token do Firebase Authentication dessa solicitação.
- Se um JSON Web Token (JWT) tiver sido usado para autenticação de terceiros, o campo
Sem autenticação. As operações do Realtime Database que não usam nenhuma autenticação têm um objeto
AuthenticationInfo
que contém um valorprincipalEmail
deaudit-no-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
Uma instância do Realtime Database com regras de segurança abertas pode conceder tais solicitações . Recomendamos que todos os usuários protejam seus bancos de dados adequadamente.Tokens de segredos legados. As operações do Realtime Database que usam tokens legados têm um objeto
AuthenticationInfo
que contém um espaço reservadoprincipalEmail
deaudit-secret-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
. Para JWT assinado por segredos,thirdPartyPrincipal
contém os cabeçalhos e a carga útil do JWT.
Auditar avaliações de regras de segurança do Firebase
Os registros de auditoria do Cloud podem ser usados para identificar solicitações que serão potencialmente afetadas por alterações nas regras.
No objeto AuthorizationInfo , authorization.permission
pode ser um dos seguintes:
-
firebasedatabase.data.get
: acesso de leitura concedido no caminho especificado emresource
. -
firebasedatabase.data.update
: acesso de gravação concedido no caminho especificado emresource
. -
firebasedatabase.data.connect
: espaço reservado paraConnect
eDisconnect
. Não é necessária autorização para conectar-se a uma instância do Realtime Database. -
firebasedatabase.data.cancel
: usado paraUnlisten
eOnDisconnectCancel
. A revogação ou cancelamento de uma operação previamente autorizada não requer autorização adicional.
Correlacionar registros de auditoria do Cloud com resultados do Realtime Database Profiler
Você pode realizar análises detalhadas de desempenho no Realtime Database usando o criador de perfil do Realtime Database em combinação com o registro de auditoria do Realtime Database. Cada ferramenta tem seus pontos fortes.
Registro de auditoria na nuvem | Perfilador do Realtime Database |
---|---|
|
|
O conteúdo do log de auditoria corresponde às métricas do criador de perfil, conforme mostrado abaixo.
Nome da operação de registro de auditoria | Valores especiais emRealtimeDatabaseAuditMetadata | Nome da operação do criador de perfil |
---|---|---|
Conectar | RequestType é REALTIME | conexão simultânea |
desconectar | RequestType é REALTIME | desconexão simultânea |
Ler | RequestType é REALTIME | leitura em tempo real |
Ler | RequestType é REST | descansar-ler |
Escrever | RequestType é REALTIME | gravação em tempo real |
Escrever | RequestType é REST | resto-escrever |
Atualizar | RequestType é REALTIME .Verifique PreconditionType . | atualização em tempo real transação em tempo real |
Atualizar | RequestType é REST .Verifique PreconditionType . | atualização de descanso transação restante |
OuvinteOuvir | RequestType é REALTIME | ouvinte-ouvir |
OuvinteNão ouvir | RequestType é REALTIME | ouvinte-não ouvir |
OnDisconnectPut | RequestType é REALTIME | ligado-desconectado |
OnDisconnectUpdate | RequestType é REALTIME | atualização ao desconectar |
OnDisconnectCancel | RequestType é REALTIME | ao desligar-cancelar |
RunOnDisconnect | RequestType é REALTIME | executar ao desconectar |
Formato do registro de auditoria
As entradas do log de auditoria incluem os seguintes objetos:
A própria entrada de log, que é um objeto do tipo
LogEntry
. Os campos úteis incluem o seguinte:- O
logName
contém o ID do recurso e o tipo de log de auditoria. - O
resource
contém o destino da operação auditada. - O
timestamp
contém a hora da operação auditada. - O
protoPayload
contém as informações auditadas.
- O
Os dados de log de auditoria, que são um objeto
AuditLog
mantido no campoprotoPayload
da entrada de log.Informações opcionais de auditoria específicas do serviço, que são um objeto específico do serviço. Para integrações mais antigas, esse objeto é mantido no campo
serviceData
do objetoAuditLog
; integrações mais recentes usam o campometadata
.
Para outros campos nesses objetos e como interpretá-los, revise Compreender os logs de auditoria .
Informações adicionais sobre campos emprotoPayload.metadata
para operações DATA_READ
e DATA_WRITE
estão disponíveis na documentação de referência .Nome do registro
Os nomes dos recursos dos registros de auditoria do Cloud indicam o projeto do Firebase ou outra entidade do Google Cloud proprietária dos registros de auditoria e se o registro contém dados de registro de auditoria de atividades do administrador, acesso a dados, política negada ou eventos do sistema. Por exemplo, veja a seguir os nomes dos registros de auditoria de atividades administrativas no nível do projeto e os registros de auditoria de acesso a dados de uma organização. As variáveis denotam identificadores de projeto e organização do Firebase.
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
Nome do Serviço
Os registros de auditoria do Firebase Realtime Database usam o nome de serviço firebasedatabase.googleapis.com
.
Para ver uma lista completa de todos os nomes de serviço da API Cloud Logging e o tipo de recurso monitorado correspondente, consulte Mapear serviços para recursos .
Tipos de recursos
Os registros de auditoria do Firebase Realtime Database usam o tipo de recurso audited_resource
para todos os registros de auditoria.
Para ver uma lista de todos os tipos de recursos monitorados do Cloud Logging e informações descritivas, consulte Tipos de recursos monitorados .
Habilitar registro de auditoria
Os registros de auditoria de atividades administrativas estão sempre ativados; você não pode desativá-los.
Os registros de auditoria de acesso a dados são desativados por padrão e não são gravados, a menos que sejam explicitamente ativados (a exceção são os registros de auditoria de acesso a dados do BigQuery, que não podem ser desativados).
Os registros de auditoria de acesso a dados do Realtime Database são alternados verificandoDATA_READ
e/ou DATA_WRITE
no console do GCP. Há um atraso de até uma hora entre o horário em que os registros são ativados/desativados no Console do GCP e o horário em que os registros iniciam/param de ser entregues.Para obter instruções sobre como ativar alguns ou todos os seus logs de auditoria de acesso a dados, consulte Configurar logs de acesso a dados .
Permissões e funções
As permissões e papéis do Cloud IAM determinam sua capacidade de acessar dados de registros de auditoria nos recursos do Google Cloud.
Ao decidir quais permissões e funções específicas do Logging se aplicam ao seu caso de uso, considere o seguinte:
A função Visualizador de logs (
roles/logging.viewer
) fornece acesso somente leitura aos logs de auditoria de atividades administrativas, políticas negadas e eventos do sistema. Se você tiver apenas essa função, não poderá visualizar os logs de auditoria de acesso a dados que estão no bucket_Default
.A função Visualizador de logs privados
(roles/logging.privateLogViewer
) inclui as permissões contidas emroles/logging.viewer
, além da capacidade de ler logs de auditoria de acesso a dados no bucket_Default
.Observe que se esses logs privados forem armazenados em buckets definidos pelo usuário, qualquer usuário que tenha permissão para ler logs nesses buckets poderá ler os logs privados. Para obter mais informações sobre buckets de log, consulte Visão geral de roteamento e armazenamento .
Para obter mais informações sobre as permissões e os papéis do Cloud IAM que se aplicam aos dados de registros de auditoria, consulte Controle de acesso .
Ver registros
Para encontrar e visualizar registros de auditoria, você precisa saber o identificador do projeto, da pasta ou da organização do Firebase cujas informações de registro de auditoria você deseja visualizar. Você pode especificar ainda outros campos LogEntry
indexados, como resource.type
; para obter detalhes, revise Localizar entradas de log rapidamente .
A seguir estão os nomes dos logs de auditoria; eles incluem variáveis para os identificadores do projeto, pasta ou organização do Firebase:
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 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
Você pode visualizar registros de auditoria no Cloud Logging usando o Console do GCP, a ferramenta de linha de comando gcloud
ou a API Logging.
Console
Você pode usar o Logs Explorer no Console do GCP para recuperar as entradas do registro de auditoria do seu projeto, pasta ou organização do Firebase:
No Console do GCP, acesse a página Logging > Logs Explorer .
Na página Logs Explorer , selecione um projeto, pasta ou organização existente do Firebase.
No painel Construtor de consultas , faça o seguinte:
Em Tipo de recurso , selecione o recurso do Google Cloud cujos registros de auditoria você deseja ver.
Em Nome do log , selecione o tipo de log de auditoria que você deseja ver:
- Para registros de auditoria de atividades administrativas, selecione atividade .
- Para logs de auditoria de acesso a dados, selecione data_access .
- Para logs de auditoria de eventos do sistema, selecione system_event .
- Para logs de auditoria de política negada, selecione policy .
Se você não vir essas opções, significa que não há registros de auditoria desse tipo disponíveis no projeto, na pasta ou na organização do Firebase.
Para obter mais detalhes sobre consultas usando o Logs Explorer, consulte Criar consultas de log .
gcloud
A ferramenta de linha de comando gcloud
fornece uma interface de linha de comando para a API Cloud Logging. Forneça um PROJECT_ID
, FOLDER_ID
ou ORGANIZATION_ID
válido em cada um dos nomes de log.
Para ler as entradas do registro de auditoria no nível do projeto do Firebase, execute o seguinte comando:
gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" --project=PROJECT_ID
Para ler as entradas do log de auditoria em nível de pasta, execute o seguinte comando:
gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" --folder=FOLDER_ID
Para ler as entradas do log de auditoria no nível da organização, execute o seguinte comando:
gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" --organization=ORGANIZATION_ID
Para obter mais informações sobre como usar a ferramenta gcloud
, consulte Ler entradas de log .
API
Ao criar suas consultas, substitua as variáveis por valores válidos, substitua o nome ou os identificadores apropriados do log de auditoria no nível do projeto, no nível da pasta ou no nível da organização, conforme listado nos nomes do log de auditoria. Por exemplo, se sua consulta incluir um PROJECT_ID , o identificador de projeto fornecido deverá se referir ao projeto do Firebase atualmente selecionado.
Para usar a API Logging para examinar as entradas do registro de auditoria, faça o seguinte:
Vá para a seção Experimente esta API na documentação do método
entries.list
.Coloque o seguinte na parte do corpo da solicitação do formulário Experimente esta API . Clicar neste formulário pré-preenchido preenche automaticamente o corpo da solicitação, mas você precisa fornecer um
PROJECT_ID
válido em cada um dos nomes de log.{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
Clique em Executar .
Para obter mais detalhes sobre consultas, consulte Linguagem de consulta de registro em log .
Para obter um exemplo de entrada de log de auditoria e como localizar as informações mais importantes nela, consulte Exemplo de entrada de log de auditoria .
Logs de auditoria de roteamento
Você pode rotear logs de auditoria para destinos compatíveis da mesma forma que pode rotear outros tipos de logs. Aqui estão alguns motivos pelos quais você pode querer rotear seus registros de auditoria:
Para manter os registros de auditoria por um período mais longo ou usar recursos de pesquisa mais avançados, você pode encaminhar cópias dos registros de auditoria para o Google Cloud Storage, o BigQuery ou o Google Cloud Pub/Sub. Usando o Cloud Pub/Sub, você pode rotear para outros aplicativos, outros repositórios e terceiros.
Para gerenciar seus registros de auditoria em toda a organização, você pode criar coletores agregados que podem rotear registros de qualquer um ou de todos os projetos do Firebase na organização.
- Se os registros de auditoria de acesso a dados ativados estiverem enviando projetos do Firebase para suas cotas de registros, você poderá criar coletores que excluam os registros de auditoria de acesso a dados do Logging.
Para obter instruções sobre logs de roteamento, consulte Configurar coletores .
Preços
Os logs de auditoria de atividades administrativas e os logs de auditoria de eventos do sistema são gratuitos.
Os logs de auditoria de acesso a dados e os logs de auditoria de política negada são cobrados.
Para obter mais informações sobre os preços do Cloud Logging, consulte os preços do pacote de operações do Google Cloud: Cloud Logging .