Usar tags para gerenciar o acesso a buckets de registro

Neste documento, descrevemos como usar tags para gerenciar seus buckets de registros 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 papéis do Identity and Access Management (IAM) condicionalmente ou negar permissões do IAM condicionalmente com base no fato de um recurso ter uma tag específica. Para informações sobre tags, consulte Visão geral de tags.

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

As tags podem ser anexadas explicitamente a buckets de registros ou herdadas da organização, pastas e projetos principais.

Antes de começar

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

  1. Confirme se você criou uma tag e configurou os valores dela. Você usa o Resource Manager para gerenciar definições de tags. Para saber como criar e gerenciar tags, consulte Como criar e gerenciar tags.
  2. Para receber as permissões necessárias para gerenciar seus buckets de registros 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 registros usando tags. Para conferir as permissões exatas 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 registros usando tags:

    • Adicione ou remova tags dos buckets de registros:
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • resourcemanager.projects.get
      • logging.buckets.createTagbinding
      • logging.buckets.deleteTagBinding
    • Confira as tags anexadas aos buckets de registros:
      • 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 registros, peça ao administrador para conceder a você o papel do IAM de Gravador de configuração de registros (roles/logging.configWriter) no seu 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 permissão logging.buckets.list , que é necessária para gerenciar buckets de registros.

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

  1. No console Google Cloud , 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 no nível do projeto, escolha Selecionar projeto atual como o escopo.

    Você também pode 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 adequado e clique em Salvar.

  6. Uma caixa de diálogo confirmando suas mudanças vai aparecer. Clique em Confirmar para finalizar as mudanças.

gcloud

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

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 tag, consulte Definições e identificadores de tag.

  • 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 método tagBindings.create.

Ver tags anexadas a um bucket de registros

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

Google Cloud console

  1. No console Google Cloud , 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 visualizar.

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

gcloud

Execute o comando gcloud resource-manager tags bindings list:

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 conferir as tags herdadas pelo bucket de registros, adicione a flag --effective. Isso retorna uma resposta semelhante a esta:

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 for herdada, o campo inherited será falso e ficará omitido.

API

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

Remover tags de um bucket de registros

Para remover as tags anexadas a um bucket de registros, exclua a vinculação de tag anexada a ele. Para excluir uma tag, remova-a de todos os recursos anexados.

Google Cloud console

  1. No console Google Cloud , 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 que você quer remover e clique em Excluir item. Clique em Salvar para armazenar as mudanças.

  5. Uma caixa de diálogo confirmando suas mudanças vai aparecer. Clique em Confirmar para finalizar as mudanças.

gcloud

Execute o comando gcloud resource-manager tags bindings delete:

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 tag, consulte Definições e identificadores de tag.

  • 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 de um bucket de registros, use o método tagBindings.delete.

Limitações

  • Não é possível usar concessões de papéis do IAM para controlar quais buckets de registros um principal vê ao listar os buckets de registros em um projeto Google Cloud . Um principal vai ver uma lista completa ou 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ê usa exportações de dados do Cloud Billing com o BigQuery, as tags podem levar até uma hora para serem usadas na exportação. Se uma tag tiver sido adicionada ou removida em uma hora, ou se o bucket de registros existir por menos de uma hora, talvez ela não apareça 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 papel.

Para o Cloud Logging, as seguintes permissões do IAM são invalidadas quando uma concessão de papel 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 com outras permissões específicas do bucket. Por exemplo, você pode 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 papel. 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