Exportações agregadas

É possível criar um coletor de exportação agregada para exportar entradas de registro de todos os projetos, pastas e contas de faturamento de uma organização do Google Cloud. Por exemplo, é possível agregar e exportar entradas de registro de auditoria dos projetos da organização para um local central.

Conceito

Sem o recurso de exportação agregada, um coletor de exportação se limita a exportar entradas de registro do recurso exato em que o coletor foi criado: um projeto, uma organização, uma pasta ou uma conta de faturamento do Google Cloud.

Para usar o recurso de exportação agregada, crie um coletor em uma organização ou pasta do Google Cloud e defina o parâmetro includeChildren do coletor como True. Assim, esse coletor poderá exportar entradas de registro da organização ou pasta e, de maneira recursiva, de qualquer pasta, contas de faturamento ou projetos contidos. Use a consulta do coletor para especificar entradas de registro de projetos, tipos de recursos ou registros nomeados.

Para mais informações sobre exportação e criação de coletores, consulte Como exportar registros na API e Como usar a ferramenta de linha de comando para criar coletores.

Como criar o destino da exportação

Antes do coletor, crie o destino de exportação dos coletores de registro por meio da ferramenta de linha de comando gcloud, do Console do Cloud ou das APIs do Google Cloud.

Os destinos compatíveis pelos coletores de exportação são estes:

Se a conta de serviço do coletor de registros tiver permissões para gravar no destino de exportação, o destino da exportação poderá ser criado em qualquer projeto do Google Cloud, em qualquer organização.

Como criar um coletor de exportação agregada

Para criar um coletor de exportação agregada em pastas, contas de faturamento ou organizações do Google Cloud, use a API Stackdriver Logging ou a ferramenta de linha de comando gcloud.

API Logging

Para criar um coletor de geração de registros, use organications.sinks.create, folders.sinks.create ou billingAccounts.sinks.create na API Logging. Prepare os argumentos do método da seguinte maneira:

  1. Defina o parâmetro parent como a organização, a pasta ou a conta de faturamento do Google Cloud para criar o coletor. O pai precisa ser um dos seguintes parâmetros:

    • organizations/[ORGANIZATION_ID]
    • folders/[FOLDER_ID]
    • billingAccounts/[BILLING_ACCOUNT_ID]
  2. No objeto LogSink no corpo da solicitação do método:

    • Defina includeChildren como True.

    • Defina a propriedade query, tendo em mente que as entradas de registro de todos os projetos serão comparadas com a consulta.

      Para ver exemplos de consultas úteis, acesse Como usar consultas com exportações agregadas.

    • Defina os campos restantes do LogSink como faria para qualquer coletor. Para mais informações, consulte Como criar coletores.

  3. Chame organizations.sinks.create ou folders.sinks.create para criar o coletor.

  4. Recupere o nome da conta de serviço usado para criar o coletor com base na resposta de API.

  5. Dê permissão a essa conta de serviço para gravar no destino de exportação.

    Se você não tiver permissão para fazer essa alteração no destino de exportação, envie o nome da conta de serviço para alguém que possa fazê-la para você.

    Para mais informações sobre como conceder permissões a contas de serviço para recursos, consulte Como atribuir papéis a uma conta de serviço.

gcloud

Para criar um coletor de geração de registros, use o comando logging sinks create.

  1. Forneça o nome do coletor, o destino de exportação, a consulta de registros e o código da pasta, a conta de faturamento ou a organização.

    Por exemplo, configure uma exportação agregada no nível da pasta assim:

    gcloud logging sinks create [SINK_NAME] \
    storage.googleapis.com/[BUCKET_NAME] --include-children \
    --folder=[FOLDER_ID] --log-filter="logName:activity"

    Notas:

    • Para criar um coletor no nível da organização, substitua --folder=[FOLDER_ID] por --organization=[ORGANIZATION_ID]. Para uma conta de faturamento, substitua por --billing-account=[BILLING_ACCOUNT_ID].

    • Para que o coletor inclua todos os projetos da organização, a sinalização --include-children precisa ser definida, mesmo quando a sinalização --organization for passada para create. Quando for definido como false (padrão), um coletor exportará apenas registros do recurso host.

    • É preciso ter o papel de Gravador de configuração de registros do Cloud IAM para que o pai crie o coletor. Para mais informações sobre os papéis do Logging Cloud IAM, consulte o Guia de controle de acesso.

    • Para ver exemplos de consultas úteis, acesse Como usar consultas com exportações agregadas.

  2. Recupere o nome da conta de serviço usado para criar o coletor com base na saída do comando.

  3. Dê permissão a essa conta de serviço para gravar no destino de exportação.

    Se você não tiver permissão para fazer essa alteração no destino de exportação, envie o nome da conta de serviço para alguém que possa fazê-la para você.

    Para mais informações sobre como conceder permissões a contas de serviço para recursos, consulte Como atribuir papéis a uma conta de serviço.

Como usar consultas com exportações agregadas

Como qualquer coletor de exportação, o agregado contém uma consulta que seleciona entradas de registro individuais. Para mais detalhes sobre consultas, acesse Consultas de registros avançadas.

Veja a seguir alguns exemplos de comparações de consultas que são úteis ao usar o recurso de exportação agregada. Alguns exemplos utilizam a seguinte notação:

  • :: é o operador de substring. Não substitua o operador =.
  • ... representa qualquer comparação de consulta adicional.
  • As variáveis são indicadas por colchetes []. Substitua-os por valores válidos.

Como selecionar registros de auditoria

Para exportar registros de auditoria, escolha uma das comparações de amostra a seguir:

log_name:"/logs/cloudaudit.googleapis.com"
log_name:"/logs/cloudaudit.googleapis.com%2Factivity" AND...
log_name:"/logs/cloudaudit.googleapis.com%2Fdata_access" AND...
log_name:"/logs/cloudaudit.googleapis.com%2Fsystem_event" AND...

Para informações sobre registros de auditoria, acesse Registros de auditoria do Cloud.

Como escolher a origem de exportação

Para exportar registros de pastas, organizações ou projetos específicos, use uma das seguintes comparações de amostra:

logName:"projects/[PROJECT_ID]/logs/" AND ... 
logName:("projects/[PROJECT_A_ID]/logs/" OR "projects/[PROJECT_B_ID]/logs/") AND ... 
logName:"folders/[FOLDER_ID]/logs/" AND ... 
logName:"organizations/[ORGANIZATION_ID]/logs/" AND ... 

Como selecionar recursos

Para exportar registros a partir de apenas um recurso específico em um projeto, use várias comparações para especificar o recurso de maneira exata:

logName:"projects/[PROJECT_ID]/logs" AND
resource.type=[RESOURCE_TYPE] AND
resource.labels.instance_id=[INSTANCE_ID]

Para ver uma lista de tipos de recursos, acesse Tipos de recursos monitorados.

Amostragem de entradas de registro

Para exportar uma amostra aleatória de entradas de registro, adicione a função incorporada sample. Por exemplo, para exportar apenas 10% das entradas de registro correspondentes à sua consulta atual, use esta adição:

sample(insertId, 0.10) AND ...

Para mais informações, consulte a função sample.

Para mais informações sobre consultas do Stackdriver Logging, acesse Consultas de registros avançadas.