Como configurar registros de auditoria de acesso a dados

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

Os registros de auditoria de atividade 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 de acesso a dados (exceto BigQuery) são desativados por padrão. É possível ativar e configurar determinados aspectos dos registros de auditoria de acesso a dados:

  • Organizações. Ative e configure os registros de auditoria de acesso a dados em uma organização, o que se aplica a todos os projetos e pastas novos e atuais na organização.

  • Pastas. Ative e configure os registros de auditoria de acesso a dados em uma pasta, o que se aplica a todos os projetos novos e atuais na pasta. Não é possível desativar um registro de auditoria de acesso a dados que foi ativado na organização do projeto.

  • Projetos. Configure os registros de auditoria de acesso a dados para um projeto específico. Não é possível desativar um registro de auditoria de acesso a dados que foi ativado na organização ou na pasta do projeto.

  • Contas de faturamento. Para configurar registros de auditoria de acesso a dados para contas de faturamento, use a ferramenta de linha de comando gcloud. Para mais informações sobre como usar a ferramenta gcloud com registros de auditoria de acesso a dados e contas de faturamento, consulte a documentação de referência do comando gcloud beta billing accounts set-iam-policy.

  • 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. Especifique de que 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. Controle os tipos de informação que figuram nos registros de auditoria. Há três tipos de informação de registro de auditoria de acesso a dados:

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

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

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

    • Gravação de dados: 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. Isente usuários ou grupos específicos de ter os acessos de dados deles registrados. Por exemplo, é possível isentar suas contas de teste internas de ter as operações do Cloud Debugger registradas.

É possível configurar os registros de auditoria de acesso a dados por meio do console de registros de auditoria do IAM ou da API. Esses métodos são explicados nas seções abaixo.

Configurações específicas do serviço

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

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

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

  • É possível adicionar usuários a listas de isenção, mas não é possível remover usuários de listas de isenção na configuração mais ampla.

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

Você pode configurar os registros de auditoria de 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:

  • É possível ativar registros para um serviço do Google Cloud, mas não é possível desativá-los para um serviço do Google Cloud ativado na pasta ou organização.

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

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

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

Controle de acesso

Você precisa dos seguintes papéis do Identity and Access Management para configurar os registros de auditoria de acesso a dados dos recursos do Google Cloud:

Como configurar registros de auditoria 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 a ferramenta de linha de comando gcloud para executar essas tarefas de maneira programática. Consulte Como configurar registros de auditoria de acesso a dados com a API para detalhes.

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 administrador → Registros de auditoria:

    Acessar a página "Registros de auditoria"

  2. Selecione um projeto, uma pasta ou uma 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 auditoria de acesso a dados:

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

  2. Na guia Tipo de registro, selecione as caixas ao lado dos tipos de registro de auditoria de 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

Também é possível 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.

Esse método de configuração em massa se aplica apenas 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.

Como desativar registros de auditoria de acesso a dados

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

  1. Na tabela principal da página Registros de auditoria, selecione um ou mais serviços do Google Cloud.

  2. Na guia Tipo de registro, selecione os tipos de registro de auditoria de acesso a dados que você quer desativar e clique em Salvar.

  3. Quando você desativa os registros de auditoria de acesso a dados, a tabela indica isso com um traço cinza. Todos os registros de auditoria de acesso a dados ativados são indicados com uma marca de seleção verde.

Como definir isenções de usuários

É possível definir isenções que permitam controlar quais usuários geram registros de auditoria. Quando você adiciona um usuário isento, os registros de auditoria não são criados para esse usuário para os 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 na coluna Título.

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

  3. Marque as caixas ao lado dos tipos de registro de auditoria de 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 na 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.

Como 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 auditoria de registros 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 de auditoria de acesso a dados com a API

Nesta seção, explicamos como usar a API e a ferramenta gcloud para configurar os registros de auditoria de 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 auditoria 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 a API e os comandos da ferramenta gcloud 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 configuração, os registros de auditoria de 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, 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 estará ativado para o serviço.

MEMBER é um usuário de quem os registros de auditoria de acesso a dados não são coletados. Você pode especificar usuários individuais, grupos ou contas de serviço. O tipo 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 ao usar a ferramenta de linha de comando gcloud.

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 incluem nenhuma 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.

Como ativar todos os registros de auditoria de acesso a dados

A seção auditConfigs a seguir ativa registros de auditoria 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

Como ativar um tipo de serviço e informaçã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

Como desativar todos os registros de auditoria de acesso a dados

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 completamente a seção auditConfigs da nova política, o setIamPolicy não alterará a configuração dos registros de auditoria de acesso a dados. 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

Use os métodos getIamPolicy e setIamPolicy da API Resource Manager para ler e gravar sua política de IAM. Existem várias opções, dependendo do método escolhido:

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

    projects.getIamPolicy
    projects.setIamPolicy
    organizations.getIamPolicy
    organizations.setIamPolicy
    
  • A ferramenta de linha de comando gcloud tem os seguintes comandos do Resource Manager:

    gcloud projects get-iam-policy
    gcloud projects set-iam-policy
    gcloud organizations get-iam-policy
    gcloud organizations set-iam-policy
    gcloud beta billing accounts get-iam-policy
    gcloud beta billing accounts 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 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 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".

gcloud

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. Editar sua política em /tmp/policy.yaml, adicionar ou alterar 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 de gravação 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 os registros de auditoria de acesso a dados usando a API Resource Manager, faça o seguinte:

  1. Leia a política do 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.

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

    • Preserve o valor de etag.

    Também é possível remover todas as outras informações do novo objeto de política, desde que você tenha cuidado para 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 você precisa ter cuidado com a ferramenta gcloud comando set-iam-policy para não causar danos acidentais ao projeto ou organização.

O setIamPolicy API method usa um parâmetro updateMask para controlar quais campos da política são atualizados. Por exemplo, se a máscara não contiver bindings, não será possível alterar acidentalmente essa seção de 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 totalmente 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 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 resultar na substituição acidental das alterações de outra pessoa.