Usar tags para gerenciar o acesso a buckets de registros

Este documento descreve como usar tags para gerenciar seus buckets de registro do Cloud Logging. As tags, que são criadas no nível da organização ou do projeto, permitem anotar seus recursos. Também é possível conceder condicionalmente papéis do Identity and Access Management (IAM) ou negar condicionalmente permissões do IAM com base no fato de um recurso ter uma tag específica. Para mais informações sobre tags, consulte Visão geral de tags.

Por exemplo, se você usar o BigQuery para analisar seus dados do Cloud Billing, poderá anexar a tag project:production aos buckets de registro que armazenam dados de registro de recursos de produção, e poderá anexar a tag project:development aos buckets de registro que armazenam dados de registro de recursos de desenvolvimento. Em seguida, é possível consultar dados do Cloud Billing com tags e conferir um detalhamento dos custos entre desenvolvimento e produção.

As tags podem ser anexadas explicitamente aos buckets de registro ou herdadas da organização, pastas e projetos pai.

Antes de começar

Para começar a gerenciar seus buckets de registro usando tags, faça o seguinte:

  1. Verifique se você criou uma tag e configurou os valores dela. Você usa o Resource Manager para gerenciar definições de tags. Para mais informações sobre como criar e gerenciar tags, consulte Como criar e gerenciar tags.
  2. Para receber as permissões necessárias para gerenciar seus buckets de registro usando tags, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto ou na organização:

    Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

    Esses papéis predefinidos contêm as permissões necessárias para gerenciar seus buckets de registro usando tags. Para acessar as permissões exatas que são necessárias, expanda a seção Permissões necessárias:

    Permissões necessárias

    As seguintes permissões são necessárias para gerenciar seus buckets de registro usando tags:

    • Adicionar ou remover tags de buckets de registro:
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • resourcemanager.projects.get
      • logging.buckets.createTagbinding
      • logging.buckets.deleteTagBinding
    • Ver tags anexadas a buckets de registro:
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • logging.buckets.listTagBindings
      • logging.buckets.listEffectiveTags

    Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

  3. Para receber a permissão necessária para gerenciar buckets de registro, peça ao administrador para conceder a você o papel do IAM de Gravador de configuração de registros (roles/logging.configWriter) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

    Esse papel predefinido contém a logging.buckets.list permissão, que é necessária para gerenciar buckets de registro.

    Também é possível receber essa permissão com papéis personalizados ou outros papéis predefinidos.

Anexar tags a um bucket de registros

Para anexar uma tag a um bucket de registros, faça o seguinte:

Google Cloud Console do

  1. No Google Cloud console, acesse a página Armazenamento de registros:

    Acessar o armazenamento de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. Localize o bucket de registros a que você quer anexar uma tag.

  3. No bucket de registros, clique em Mais, e em Editar tags.

  4. Na caixa de diálogo, na seção Tags diretas, localize a tag selecionando o recurso em que ela foi criada. Por exemplo, para usar uma tag criada para envolvidos no projeto, escolha Selecionar projeto atual como escopo.

    Também é possível pesquisar manualmente o ID do projeto, da organização ou da tag selecionando a opção Entrada manual.

  5. Selecione o par de chave-valor apropriado e clique em Salvar.

  6. Uma caixa de diálogo confirmando as alterações será exibida. Clique em Confirmar para finalizar as alterações.

gcloud

Para anexar uma tag a um bucket de registros, crie uma vinculação de tags executando o gcloud resource-manager tags bindings create comando:

gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=BUCKET_NAME \
--location=LOCATION

No comando anterior, faça as seguintes substituições:

  • TAG_VALUE_ID: o ID permanente ou o nome do namespace do valor da tag. Por exemplo, tagValues/4567890123. Para mais informações sobre identificadores de tags, consulte Definições e identificadores de tags.

  • BUCKET_NAME: o nome do bucket de registros. Por exemplo, //logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID.

  • LOCATION: o local do bucket de registros.

API

Para anexar uma tag a um bucket de registros, use o tagBindings.create método.

Terraform

Para anexar uma tag a um bucket de registros usando o Terraform, faça uma das seguintes ações:

Em seguida, execute terraform apply para aplicar as mudanças.

Ver tags anexadas a um bucket de registros

Para ver as tags anexadas a um bucket de registros, faça o seguinte:

Google Cloud Console do

  1. No Google Cloud console, acesse a página Armazenamento de registros:

    Acessar o armazenamento de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. Localize o bucket de registros cujas tags você quer ver.

    Na coluna Tags, uma tag associada ao bucket de registros é listada. Para ver todas as tags associadas ao bucket de registros, clique no Mais botão para expandir a lista de tags.

gcloud

Execute o gcloud resource-manager tags bindings list comando:

gcloud resource-manager tags bindings list \
--parent=BUCKET_NAME \
--location=LOCATION

No comando anterior, faça as seguintes substituições:

  • BUCKET_NAME: o nome do bucket de registros. Por exemplo, //logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID.

  • LOCATION: o local do bucket de registros.

Opcional: para ver as tags herdadas pelo bucket de registros, adicione a flag --effective. A adição dessa flag retorna uma resposta semelhante à seguinte:

namespacedTagKey: 961309089256/environment
namespacedTagValue: 961309089256/environment/production
tagKey: tagKeys/417628178507
tagValue: tagValues/247197504380
inherited: true

Se todas as tags forem anexadas explicitamente ao bucket de registros e nenhuma tag for herdada, o campo inherited será falso e será omitido.

API

Para receber uma lista de vinculações de tags para um bucket, use o tagBindings.list método.

Terraform

É possível usar o Terraform para anexar uma tag a um bucket de registros. No entanto, não é possível usar o Terraform para listar as tags.

Remover tags de um bucket de registros

Para remover as tags anexadas a um bucket de registros, é necessário excluir a vinculação de tags anexada ao bucket de registros. Para excluir uma tag, é necessário remover as tags de todos os recursos anexados.

Google Cloud Console do

  1. No Google Cloud console, acesse a página Armazenamento de registros:

    Acessar o armazenamento de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. Localize o bucket de registros cuja tag você quer remover.

  3. No bucket de registros, clique em Mais, e em Editar tags.

  4. Na caixa de diálogo, mantenha o ponteiro sobre a tag a ser removida e clique em excluir Excluir item. Clique em Salvar para salvar as alterações.

  5. Uma caixa de diálogo confirmando as alterações será exibida. Clique em Confirmar para finalizar as alterações.

gcloud

Execute o gcloud resource-manager tags bindings delete comando:

gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=BUCKET_NAME \
--location=LOCATION

No comando anterior, faça as seguintes substituições:

  • TAG_VALUE_ID: o ID permanente ou o nome do namespace do valor da tag. Por exemplo, tagValues/4567890123. Para mais informações sobre identificadores de tags, consulte Definições e identificadores de tags.

  • BUCKET_NAME: o nome do bucket de registros. Por exemplo, //logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID.

  • LOCATION: o local do bucket de registros.

API

Para remover uma tag em um bucket de registros, use o tagBindings.delete método.

Terraform

Para remover uma tag em um bucket de registros usando o Terraform, exclua o recurso de vinculação de tags na configuração e execute terraform apply para aplicar as mudanças.

Limitações

  • Não é possível usar concessões de papéis do IAM para controlar quais buckets de registro um principal vê quando lista os buckets de registro em um Google Cloud projeto. Um principal verá uma lista completa ou uma lista vazia. No entanto, é possível usar concessões de papéis do IAM com condições do IAM para restringir as ações que um principal pode realizar em um bucket de registros. Por exemplo, é possível restringir se um principal pode excluir um bucket de registros específico.

  • Se você usar exportações de dados do Cloud Billing com o BigQuery, as tags poderão levar até uma hora para serem usadas na exportação. Se uma tag foi adicionada ou removida em uma hora ou se o bucket de registros existe há menos de uma hora, ela poderá não aparecer na exportação.

Papéis personalizados e concessões de papéis com condições do IAM

Se você planeja usar papéis personalizados do IAM e anexar condições do IAM às concessões de papéis, talvez seja necessário criar vários papéis personalizados. Algumas permissões do IAM são invalidadas quando uma condição do IAM é anexada a uma concessão de papéis.

Para o Cloud Logging, as seguintes permissões do IAM são invalidadas quando uma concessão de papéis contém uma condição do IAM:

  • logging.buckets.list
  • logging.buckets.create

Portanto, talvez seja necessário criar um papel com as permissões list e create e outro papel que contenha outras permissões específicas do bucket. Por exemplo, é possível criar um papel que contenha as permissões logging.buckets.delete e logging.buckets.update.

Ao conceder o papel que contém as permissões list e create, não anexe uma condição do IAM à concessão de papéis. Ao conceder o papel que contém as permissões delete e update, é possível adicionar uma condição do IAM que restringe a concessão a recursos com uma tag específica.

A seguir