Como configurar registros do acesso a dados

Neste guia, explicamos como ativar e configurar aspectos dos registros de auditoria do acesso a dados em seu projeto ou organização. Para informações gerais sobre registros de auditoria, consulte Cloud Audit Logging.

Os registros de auditoria de atividades do administrador estão ativados para todos os serviços do Google Cloud e não podem ser configurados.

Visão geral da configuração

Os registros de auditoria do acesso a dados (exceto para BigQuery) são desativados por padrão. É possível ativar e configurar determinados aspectos dos registros de auditoria do acesso a dados:

  • Organizações. Você pode ativar e configurar os registros de auditoria de acesso a dados em uma organização, o que se aplica a todos os projetos e pastas novos e existentes na organização.

  • Pastas. Você pode ativar e configurar os registros de auditoria do acesso a dados em uma pasta, o que se aplica a todos os projetos novos e existentes na pasta, mas não é possível desativar um registro de auditoria do acesso a dados que foi ativado na organização do projeto.

  • Projetos. Você pode configurar os registros de auditoria do acesso a dados para um projeto específico, mas não é possível desativar um registro de auditoria do acesso a dados que foi ativado na organização ou na pasta do projeto.

  • Configurações padrão. É possível especificar uma configuração de registro de auditoria de acesso a dados padrão em uma organização, pasta ou projeto que se aplica a futuros serviços do Google Cloud que começam a produzir registros de auditoria de acesso a dados.

  • Serviços. Você pode especificar de quais serviços você quer receber registros de auditoria. Por exemplo, é possível querer registros de auditoria do Compute Engine, mas não do Cloud SQL. Para uma lista dos serviços do Google Cloud que podem gerar registros de auditoria, consulte serviços do Google com registros de auditoria.

  • Tipos de informação. Você pode controlar os tipos de informação nos registros de auditoria. Há três tipos de informação de registro de auditoria do acesso a dados:

    • ADMIN_READ: registra operações que leem informações de configuração ou de metadados.

      Os registros de auditoria de atividade do administrador registram gravações de informações de configuração e de metadados. Não é possível desativá-los.

    • DATA_READ: registra operações que leem dados fornecidos pelo usuário.

    • DATA_WRITE: registra operações que gravam dados fornecidos pelo usuário.

    Por exemplo, seria possível registrar apenas as operações de gravação de dados, mas registrar todos os três tipos de informações do Cloud DNS.

  • Usuários isentos. Você pode isentar usuários ou grupos específicos de ter os acessos de dados deles registrados. Por exemplo, você pode isentar suas contas de teste internas de ter as operações do Cloud Debugger registradas.

Configure os registros de auditoria do acesso a dados por meio do console do Logging ou pela API. Esses métodos são explicados nas seções abaixo.

Configurações específicas do serviço

Se houver uma configuração para serviços do Google Cloud em geral (allServices) e uma para um serviço do Google Cloud específico, a configuração resultante é a união das duas configurações. Resumindo:

  • É possível ativar os registros de auditoria de acesso a dados para serviços do Google Cloud específicos, mas não é permitido desativar os registros de auditoria de acesso a dados nos serviços do Google Cloud ativados na configuração mais ampla.

  • É possível adicionar outros tipos de informações a um registro de auditoria de acesso a dados do serviço do Google Cloud, mas não é permitido remover tipos de informações especificadas na configuração mais ampla.

  • Você pode adicionar usuários a listas de isenção, mas não é possível removê-los dessas listas na configuração mais abrangente.

Configurações de organização, pasta e projeto

É possível configurar os registros de auditoria do acesso a dados para organizações, pastas e projetos. Se houver uma configuração para um serviço do Google Cloud em toda a hierarquia, a configuração resultante será a união das configurações. Resumindo, no nível de projeto, é possível:

  • ativar os registros de um serviço do Google Cloud, mas não desativar os registros de um serviço do Google Cloud ativado na pasta ou na organização.

  • ativar tipos de informações, mas não é possível desativar os que estão ativados na organização ou na pasta;

  • adicionar usuários a listas de isenção, mas não é possível remover os que estão nas listas de isenção da organização ou da pasta;

  • no nível da organização ou da pasta, ativar registros de acesso a dados para um projeto nelas, mesmo que os registros de auditoria do acesso a dados não tenham sido configurados no projeto.

Controle de acesso

Você precisa dos papéis do IAM roles/resourcemanager.organizationAdmin para configurar os registros de auditoria do acesso a dados no nível da organização, roles/resourcemanager.folderAdmin para configurar os registros no nível da pasta e roles/owner para configurar esses registros de auditoria no nível do projeto.

Como configurar registros de acesso a dados com o Console do Cloud

Esta seção explica como usar o Console do Cloud para configurar os registros de auditoria de acesso a dados.

Também é possível usar a API ou o SDK do Cloud para executar essas tarefas de maneira programática. Consulte os detalhes em Como configurar os registros do acesso a dados com a API.

Para acessar as opções de configuração do registro de auditoria no Console do Cloud, siga estas etapas:

  1. No Console do Cloud, selecione IAM e Admin > Registros de auditoria no menu suspenso superior esquerdo.

    Acessar a página "Registros de auditoria"

  2. Selecione um projeto, pasta ou organização existente do Google Cloud na parte superior da página.

Ativar registros de auditoria

As etapas a seguir mostram como ativar os registros de acesso a dados:

  1. Na tabela principal da página Registros de auditoria, selecione um ou mais serviços do Google Cloud clicando na caixa à esquerda do nome de um serviço na coluna Título.

  2. Na guia Tipo de registro no painel de informações à direita da tabela, selecione as caixas pelos tipos de registros de auditoria do acesso a dados que você quer ativar e clique em Salvar.

  3. A tabela inclui uma marca de seleção onde os registros de auditoria foram ativados com êxito. No exemplo a seguir, você vê que os registros de auditoria Leitura de administradores e Leitura de dados estão ativados para o serviço API Cloud Composer:

    Configuração de registros de auditoria

Você também pode ativar registros de auditoria para todos os serviços do Google Cloud que produzem registros de auditoria de acesso a dados. Na tabela principal da página Registros de auditoria, selecione todos os serviços do Google Cloud clicando na caixa à esquerda de Título.

Esse método de configuração "em massa" se aplica somente aos serviços do Google Cloud disponíveis no momento. Se um novo serviço do Google Cloud for adicionado, ele herdará sua configuração de auditoria padrão.

Desativar registros de auditoria

Os passos a seguir mostram como desativar os registros do acesso a dados:

  1. Na tabela principal da página Registros de auditoria, selecione um ou mais serviços do Google Cloud clicando na caixa à esquerda do nome de um serviço na coluna Título.

  2. Na guia Tipo de registro no painel de informações à direita da tabela, selecione as caixas pelos tipos de registro de auditoria do acesso a dados que você quer desativar e clique em Salvar.

  3. A tabela indica que os registros de auditoria foram desativados com êxito com um traço cinza. Todos os registros de auditoria ativados são indicados com um símbolo de marca de seleção verde.

Definir isenções de usuários

É possível definir isenções que permitam controlar quais usuários geram registros de auditoria. Ao adicionar um usuário isento, os registros de auditoria não são criados para ele em relação aos tipos de registro selecionados. Observe que os registros de atividades do administrador são sempre gerados, independentemente do status de isenção.

Os passos a seguir mostram como definir isenções:

  1. Na tabela principal da página de configuração Registros de auditoria, selecione um ou mais serviços do Google Cloud clicando na caixa à esquerda do nome de um serviço na coluna Título.

  2. Selecione a guia Usuários isentos no painel de informações à direita da tabela. Em Adicionar usuário isento, escreva o endereço de e-mail do usuário que você quer adicionar à lista de isenções dos serviços selecionados. Você pode adicionar vários usuários selecionando o botão Adicionar usuário isento quantas vezes forem necessárias.

  3. No endereço de e-mail, marque as caixas pelos tipos de registro de auditoria do acesso a dados que você quer desativar para o usuário e clique em Salvar.

  4. A tabela mostra que os usuários isentos foram adicionados com êxito a um serviço com um número sob a coluna Isenções.

Para remover um usuário da lista de isenções:

  1. Acesse a guia Usuários isentos no painel de informações.

  2. Passe o mouse sobre o nome de um usuário e selecione o ícone de lixeira exibido.

  3. Quando o nome do usuário for mostrado em texto riscado, clique em Salvar.

Para editar as informações de um usuário isento:

  1. Acesse a guia Usuários isentos no painel de informações.

  2. Clique na seta de expansão à direita do nome do usuário.

  3. Marque ou desmarque os tipos de registro de auditoria do acesso a dados conforme apropriado para o usuário e clique em Salvar.

Definir a configuração padrão

É possível definir uma configuração que todos os serviços novos e existentes do Google Cloud no seu projeto, pasta ou organização herdarão. A configuração padrão será aplicada se um novo serviço do Google Cloud começar a ser usado pelos usuários na organização: o serviço herdará a política de geração de registros de auditoria já definida para outros serviços do Google Cloud, garantindo a captura dos registros de auditoria de acesso a dados.

  1. Clique em Definir configuração padrão na parte superior da página.

  2. Na guia Tipo de registro, marque as caixas ao lado dos tipos de registro de auditoria do acesso a dados que você quer ativar ou desativar e clique em Salvar.

  3. Na guia Usuários isentos, escreva o endereço de e-mail dos usuários que você quer adicionar à lista de isenções e clique em Salvar. Siga os passos na seção Definir isenções de usuários acima.

Como configurar registros do acesso a dados com a API

Nesta seção, explicamos como usar a API e a interface de linha de comando do SDK do Cloud para configurar os registros de auditoria do acesso a dados de maneira programática.

Muitas dessas tarefas também podem ser realizadas usando o Console do Cloud; consulte Como configurar registros de acesso a dados com o Console do Cloud para detalhes.

Objetos de política de IAM

Para configurar os registros de auditoria do acesso a dados usando a API, é necessário editar a política de IAM associada ao projeto, pasta ou organização. A configuração do registro de auditoria está na seção auditConfigs da política:

"auditConfigs": [
      {
        object(AuditConfig)
      }
    ]
    

Para ver detalhes, consulte o tipo de política de IAM.

As seções a seguir descrevem o objeto AuditConfig em mais detalhes. Para saber quais comandos do SDK do Cloud e API são usados para alterar a configuração, consulte getIamPolicy e setIamPolicy.

Objetos AuditConfig

A configuração do registro de auditoria consiste em uma lista de objetos AuditConfig. Cada objeto configura os registros para um serviço ou estabelece uma configuração mais abrangente para todos os serviços. Esta é a aparência de cada objeto:

{
      "service": [SERVICE],
      "auditLogConfigs": [
        {
          "logType": "ADMIN_READ"
          "exemptedMembers": [ [MEMBER],]
        },
        {
          "logType": "DATA_READ"
          "exemptedMembers": [ [MEMBER],]
        },
        {
          "logType": "DATA_WRITE"
          "exemptedMembers": [ [MEMBER],]
        },
      ]
    },
    

[SERVICE] é o nome do serviço, como "appengine.googleapis.com", ou é o valor especial, "allServices". Se uma configuração não mencionar um serviço específico, a configuração mais abrangente será usada para esse serviço. Se não houver uma configuração, os registros do acesso a dados não serão ativados para esse serviço. Para ver uma lista dos nomes de serviços, consulte Serviços de registro.

A seção auditLogConfigs do objeto AuditConfig é uma lista de 0 a 3 objetos, sendo que cada um deles configura um tipo de informação do registro de auditoria. Se você omitir um dos tipos da lista, esse tipo de informação não será ativado para o serviço.

[MEMBER] é um usuário para quem os registros de auditoria do acesso a dados não são coletados. É possível especificar usuários individuais, grupos ou contas de serviço. O tipo de vinculação descreve tipos diferentes de membros, mas nem todos podem ser usados para configurar os registros de auditoria do acesso a dados.

Veja a seguir um exemplo de uma configuração de auditoria nos formatos JSON e YAML. O formato YAML é o padrão com comandos do SDK do Cloud.

JSON

    "auditConfigs": [
      {
        "auditLogConfigs": [
          {
            "logType": "ADMIN_READ"
          },
          {
            "logType": "DATA_WRITE"
          },
          {
            "logType": "DATA_READ"
          }
        ],
        "service": "allServices"
      },
      {
        "auditLogConfigs": [
          {
            "exemptedMembers": [
              "499862534253-compute@developer.gserviceaccount.com"
            ],
            "logType": "ADMIN_READ"
          }
        ],
        "service": "cloudsql.googleapis.com"
      }
    ],
    

YAML

auditConfigs:
    - auditLogConfigs:
      - logType: ADMIN_READ
      - logType: DATA_WRITE
      - logType: DATA_READ
      service: allServices
    - auditLogConfigs:
      - exemptedMembers:
        - 499862534253-compute@developer.gserviceaccount.com
        logType: ADMIN_READ
      service: cloudsql.googleapis.com
    

Configurações comuns

Veja a seguir algumas configurações comuns de registro de auditoria para projetos.

Essas configurações não consideram qualquer configuração de registro de auditoria na organização ou pasta do projeto. Para mais informações, consulte Configurações de projeto e de organização.

Ativar todos os registros de acesso

A seção auditConfigs a seguir ativa os registros de acesso a dados para todos os serviços e usuários:

JSON

    "auditConfigs": [
          {
            "service": "allServices",
            "auditLogConfigs": [
              { "logType": "ADMIN_READ" },
              { "logType": "DATA_READ"  },
              { "logType": "DATA_WRITE" },
            ]
          },
        ]
    

YAML

auditConfigs:
    - auditLogConfigs:
      - logType: ADMIN_READ
      - logType: DATA_WRITE
      - logType: DATA_READ
      service: allServices
    

Ativar um tipo de informação e serviço

A configuração a seguir ativa registros de auditoria do acesso a dados para o Cloud SQL. Eles registram apenas as gravações de dados definidos pelo usuário:

JSON

    "auditConfigs": [
      {
        "service": "cloudsql.googleapis.com",
        "auditLogConfigs": [
          { "logType": "DATA_WRITE" },
        ]
      },
    ]
    

YAML

auditConfigs:
    - auditLogConfigs:
      - logType: DATA_WRITE
      service: cloudsql.googleapis.com
    

Desativar todos os registros

Para desativar todos os registros de auditoria de acesso a dados (exceto BigQuery) em um projeto, inclua uma seção auditConfigs: vazia na nova política de IAM:

JSON

    "auditConfigs": [],
    

YAML

auditConfigs:
    

Se você remover o auditConfigs de sua nova política, então setIamPolicy não alterará a configuração dos registros de auditoria de acesso a dados existentes. Para mais informações, consulte Máscara de atualização setIamPolicy.

Não é possível desativar os registros de auditoria do acesso a dados do BigQuery.

getIamPolicy e setIamPolicy

Os métodos getIamPolicy e setIamPolicy do Cloud Resource Manager servem para ler e gravar a política de IAM. Existem várias opções, dependendo do método escolhido:

  • A Cloud Resource Manager API tem os seguintes métodos:

    projects.getIamPolicy
        projects.setIamPolicy
        organizations.getIamPolicy
        organizations.setIamPolicy
        
  • O Cloud SDK tem os seguintes comandos do Cloud Resource Manager:

    gcloud projects get-iam-policy
        gcloud projects set-iam-policy
        gcloud organizations get-iam-policy
        gcloud organizations set-iam-policy
        

Seja qual for sua escolha, siga estes três passos:

  1. Leia a política atual usando um dos métodos getIamPolicy. Salve a política em um arquivo temporário.
  2. Edite a política no arquivo temporário. Alterar (ou adicionar) somente a seção auditConfigs.
  3. Grave a política editada no arquivo temporário usando um dos métodos setIamPolicy.

setIamPolicy falhará se o Cloud Resource Manager detectar que outra pessoa alterou a política depois que você a leu na primeira etapa. Se isso acontecer, repita as três etapas.

Exemplos

Os exemplos a seguir demonstram como configurar os registros de auditoria de acesso a dados do projeto usando o comando gcloud e a API Cloud Resource Manager.

Para configurar registros de auditoria do acesso a dados da organização, substitua a versão "projetos" dos comandos e dos métodos de API pela versão "organizações".

Cloud SDK

Para configurar os registros de auditoria de acesso a dados usando o comando gcloud projects, faça o seguinte:

  1. Leia a política de IAM do projeto e guarde-a em um arquivo:

    gcloud projects get-iam-policy [PROJECT_ID] > /tmp/policy.yaml
        

    Veja a seguir a política retornada. Esta política ainda não tem uma seção auditConfigs:

    bindings:
        - members:
          - user:colleague@example.com
          role: roles/editor
        - members:
          - user:myself@example.com
          role: roles/owner
        etag: BwVM-FDzeYM=
        version: 1
        
  2. Edite sua política em /tmp/policy.yaml adicionando ou alterando somente a configuração dos registros de auditoria de acesso a dados.

    Veja a seguir um exemplo da política editada, que ativa registros de auditoria do acesso a dados da gravação de dados do Cloud SQL. Quatro linhas foram adicionadas ao início:

    auditConfigs:
        - auditLogConfigs:
          - logType: DATA_WRITE
          service: cloudsql.googleapis.com
        bindings:
        - members:
          - user:colleague@example.com
          role: roles/editor
        - members:
          - user:myself@example.com
          role: roles/owner
        etag: BwVM-FDzeYM=
        version: 1
        
  3. Grave a nova política de IAM:

    gcloud projects set-iam-policy [PROJECT_ID] /tmp/policy.yaml
        

    Se o comando anterior relatar um conflito com outra alteração, repita essas etapas, começando pela primeira delas.

JSON

Para trabalhar com sua política de IAM no formato JSON em vez de YAML, substitua os seguintes comandos gcloud no exemplo:

gcloud projects get-iam-policy [PROJECT_ID] --format=json >/tmp/policy.json
    gcloud projects set-iam-policy [PROJECT_ID] /tmp/policy.json
    

API

Para configurar seus registros de auditoria do acesso a dados usando a API Cloud Resource Manager, siga estas instruções:

  1. Leia a política de IAM do projeto, que especifica os seguintes parâmetros para o método da API getIamPolicy:

    • recurso: projects/[PROJECT_ID]
    • Corpo da solicitação: vazio

    O método retornará o objeto de política atual, mostrado abaixo. A política deste projeto ainda não tem uma seção auditConfigs:

    {
          "bindings": [
          {
            "members": [
              "user:colleague@example.com"
            ],
            "role": "roles/editor"
          },
          {
            "members": [
              "user:myself@example.com"
            ],
            "role": "roles/owner"
          }
        ],
        "etag": "BwUsv2gimRs=",
        "version": 1
        

    }

  2. Edite a política atual:

    • Altere ou adicione a seção auditConfigs.

      Se você quiser desativar os registros de auditoria de acesso a dados, inclua um valor vazio para a seção: auditConfigs:[].

    • Preserve o valor de etag.

    Se desejar, remova todas as outras informações do novo objeto de política, desde que tenha o cuidado de definir updateMask na próxima etapa. Veja a seguir a política editada, que ativa os registros de auditoria da gravação de dados do Cloud SQL:

    {
          "auditConfigs": [
            {
              "auditLogConfigs": [
                {
                  "logType": "DATA_WRITE"
                }
              ],
              "service": "cloudsql.googleapis.com"
            }
          ],
          "etag": "BwVM-FDzeYM="
        }
        
  3. Grave a nova política usando o método da API setIamPolicy, especificando os seguintes parâmetros:

    • recurso: projects/[PROJECT_ID]
    • Corpo da solicitação:
      • updateMask: "auditConfigs,etag"
      • policy: o objeto de política editado

Máscara de atualização setIamPolicy

Esta seção explica a importância do parâmetro updateMask no método setIamPolicy e explica por que é preciso ter cuidado com o comando set-iam-policy do SDK para que não cause danos acidentais ao projeto ou à organização.

O método da API setIamPolicy usa um parâmetro updateMask para controlar quais campos de política são atualizados. Por exemplo, se a máscara não contiver bindings, você não poderá alterar acidentalmente essa seção da política. Por outro lado, se a máscara contiver bindings, essa seção será sempre atualizada. Se você não incluir um valor atualizado para bindings, essa seção será removida completamente da política.

O comando gcloud projects set-iam-policy, que chama setIamPolicy, não permite que você especifique o parâmetro updateMask. Em vez disso, o comando calcula um valor para updateMask da seguinte maneira:

  • O updateMask sempre contém os campos bindings e etag.
  • Se o objeto de política fornecido em set-iam-policy contiver outros campos de nível superior, como auditConfigs, esses campos serão adicionados a updateMask.

Como consequência dessas regras, o comando set-iam-policy tem os seguintes comportamentos:

  • Se você omitir a seção auditConfigs na nova política, o valor anterior da seção auditConfigs (se houver) não será alterado, porque essa seção não está na máscara de atualização. Isso é inofensivo, mas pode ser confuso.

  • Se você omitir bindings no novo objeto de política, a seção bindings será removida da sua política, já que essa seção aparece na máscara de atualização. Isso é muito prejudicial e faz com que todos os usuários percam o acesso ao seu projeto.

  • Se você omitir etag no novo objeto de política, a verificação de alterações simultâneas em sua política será desativada e suas alterações poderão vir a substituir acidentalmente as alterações de outra pessoa.