Repositórios de tags

Use tags para agrupar repositórios e outros recursos no Google Cloud para gerar relatórios, auditoria e controle de acesso na sua organização do Google Cloud.

Para agrupar repositórios do Artifact Registry para fins de automação e faturamento, use rótulos. As tags e os rótulos funcionam de maneira independente uns dos outros, e é possível aplicar ambos no mesmo repositório. Para mais informações sobre as diferenças entre tags e rótulos, consulte Tags e rótulos.

O que são tags?

Tags são pares de chave-valor que podem ser aplicadas aos recursos para controle de acesso detalhado.

Os administradores do projeto criam tags para recursos no Google Cloud no nível da organização e as gerenciam no Resource Manager. Ao anexar uma tag a um repositório do Artifact Registry, é possível usá-la com condições do IAM para conceder acesso condicional ao repositório. Não é possível anexar tags a artefatos individuais.

Lembre-se destas restrições:

  • As políticas da organização podem fazer referência condicional às tags herdadas do projeto pai e superiores, mas não são compatíveis com tags anexadas diretamente aos repositórios.

  • Os registros de auditoria do Cloud não são gerados para anexar tags e visualizar as vinculações de tags nos repositórios.

Para mais informações sobre tags e controle de acesso condicional com tags, consulte Tags e controle de acesso.

Permissões necessárias

As permissões necessárias dependem da ação que você precisa realizar.

Para receber essas permissões, peça ao administrador para conceder o papel sugerido no nível apropriado da hierarquia de recursos.

Visualizar tags

Para visualizar as definições de tag e tags anexadas aos recursos, você precisa do papel Visualizador de tags (roles/resourcemanager.tagViewer) ou de outro papel que inclua as seguintes permissões:

Permissões necessárias

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • listTagBindings para o tipo de recurso apropriado. Por exemplo, compute.instances.listTagBindings para visualizar as tags anexadas a instâncias do Compute Engine.
  • listEffectiveTags
  • para o tipo de recurso apropriado. Por exemplo, compute.instances.listEffectiveTags para visualizar todas as tags anexadas ou herdadas pelas instâncias do Compute Engine.

Para visualizar as tags no nível da organização, é preciso ter o papel de Visualizador da organização (roles/resourcemanager.organizationViewer) no recurso da organização.

Administrar tags

Para criar, atualizar e excluir definições de tag, você precisa do papel Administrador de tags (roles/resourcemanager.tagAdmin) ou de outro papel que inclua as seguintes permissões:

Permissões necessárias

  • resourcemanager.tagKeys.create
  • resourcemanager.tagKeys.update
  • resourcemanager.tagKeys.delete
  • resourcemanager.tagKeys.list
  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.getIamPolicy
  • resourcemanager.tagKeys.setIamPolicy
  • resourcemanager.tagValues.create
  • resourcemanager.tagValues.update
  • resourcemanager.tagValues.delete
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • resourcemanager.tagValues.getIamPolicy
  • resourcemanager.tagValues.setIamPolicy

Para administrar tags no nível da organização, você precisa do papel de Visualizador da organização (roles/resourcemanager.organizationViewer) no recurso da organização.

Gerenciar tags em recursos

Para adicionar e remover tags anexadas a recursos, você precisa do papel Usuário da tag (roles/resourcemanager.tagUser) ou de outro papel com permissões equivalentes, nos tag e os recursos que você está anexando ao valor da tag. O papel Tag User inclui as seguintes permissões:

Permissões necessárias

  • As permissões necessárias para o recurso ao qual você está anexando o valor da tag
    • Permissão createTagBinding específica do recurso, como compute.instances.createTagBinding para instâncias do Compute Engine
    • Permissão deleteTagBinding específica do recurso, como compute.instances.deleteTagBinding para instâncias do Compute Engine
  • As permissões necessárias para o valor da tag:
    • resourcemanager.tagValueBindings.create
    • resourcemanager.tagValueBindings.delete
  • Permissões que permitem visualizar projetos e definições de tags:
    • resourcemanager.tagValues.get
    • resourcemanager.tagValues.list
    • resourcemanager.tagKeys.get
    • resourcemanager.tagKeys.list
    • resourcemanager.projects.get

Como anexar tags a repositórios

Depois que um administrador de projeto cria tags, é possível anexar tags a um repositório. Cada tag tem uma chave e um valor. Marque um repositório vinculando um valor a ele.

Para anexar uma tag a um repositório:

Console

  1. Solicite do administrador o valor da tag para anexar.

    Você pode anexar um valor de tag com um destes tipos de identificadores:

    • Um nome com namespace, como 123456789012/env/dev
    • Um ID permanente, como tagValues/567890123456
  2. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  3. Selecione o repositório que você quer marcar com tag.

  4. Na seção Detalhes do repositório, clique em Mostrar mais.

    As tags existentes para o repositório, incluindo as herdadas, são mostradas.

  5. Clique no ícone Editar Editar tags.

  6. Na seção Tags diretas, clique em Selecionar escopo.

  7. Selecione o projeto do repositório.

  8. No campo chave, digite para filtrar a lista de tags e selecione a chave.

  9. No campo Valor, digite para filtrar a lista de tags e selecione o valor.

  10. Clique em Save.

  11. Clique em Confirm.

    A tag é anexada ao seu repositório.

CLI da gcloud

  1. Solicite do administrador o valor da tag para anexar.

    Você pode anexar um valor de tag com um destes tipos de identificadores:

    • Um nome com namespace, como 123456789012/env/dev
    • Um ID permanente, como tagValues/567890123456
  2. Anexe o valor da tag com o seguinte comando:

    gcloud alpha resource-manager tags bindings create \
        --tag-value=TAG_VALUE \
        --parent=REPOSITORY_ID \
        --location=LOCATION
    

    Substitua os seguintes valores:

    • TAG_VALUE é o ID permanente ou o nome com namespace do valor da tag a ser anexado.

    • REPOSITORY_ID é o ID completo do repositório, incluindo o nome de domínio da API para identificar o tipo de recurso (//artifactregistry.googleapis.com/). Por exemplo, //artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo

    • LOCATION é o local do repositório.

    Veja o exemplo a seguir.

    • Valor da tag: 815471563813/env/dev
    • Projeto: my-project
    • Repositório: my-repo
    • Local do repositório: us-east1

    O comando da CLI gcloud a seguir anexa a tag ao repositório:

    gcloud alpha resource-manager tags bindings create \
        --tag-value=815471563813/env/dev \
        --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
        --location=us-east1
    

Como listar tags anexadas aos repositórios

É possível listar as tags anexadas a um recurso que você tem permissão para acessar.

Console

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Selecione o repositório que você quer visualizar.

  3. Na seção Detalhes do repositório, clique em Mostrar mais.

    A lista Tags mostra todas as tags de repositório, incluindo tags diretas e tags herdadas de níveis superiores na hierarquia de recursos.

CLI da gcloud

Para listar as tags anexadas a um repositório, execute o seguinte comando:

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

O comando lista apenas as tags diretamente anexadas ao recurso especificado. Portanto, ele não retorna tags herdadas do projeto pai ou de níveis superiores. Para listar tags herdadas do projeto pai, especifique um projeto em vez de um repositório com a sinalização --parent.

Por exemplo, este comando lista as tags anexadas ao repositório my-repo no projeto my-project e no local us-east1:

gcloud alpha resource-manager tags bindings list \
    --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
    --location=us-east1

Este comando lista as tags anexadas ao número de projeto 7890123456:

gcloud alpha resource-manager tags bindings list \
    --parent=//cloudresourcemanager.googleapis.com/projects/7890123456 \

Como remover tags de repositórios

É possível remover uma tag que está diretamente anexada a um repositório. Se você precisar remover uma tag herdada do projeto pai ou de outra parte da hierarquia de recursos, um administrador do projeto precisará removê-la do recurso em que a tag está anexada.

Para remover uma tag anexada a um repositório:

Console

  1. Consiga o valor da tag que você quer remover. Se você não souber o valor da tag, liste as tags anexadas ao repositório.

  2. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  3. Selecione o repositório.

  4. Na seção Detalhes do repositório, clique em Mostrar mais.

    As tags existentes para o repositório, incluindo as herdadas, são mostradas.

  5. Clique no ícone Editar Editar tags.

  6. Na seção Tags diretas, localize a tag que você quer remover.

  7. Clique no ícone excluir ao lado da tag que você quer remover.

  8. Clique em Save.

  9. Clique em Confirm.

    A tag é removida do repositório.

CLI da gcloud

  1. Consiga o valor da tag que você quer remover. Se você não souber o valor da tag, liste as tags anexadas ao repositório.

  2. Remova o valor da tag com o seguinte comando:

    gcloud alpha resource-manager tags bindings delete \
        --tag-value=TAG_VALUE \
        --parent=REPOSITORY_ID \
        --location=LOCATION
    

    Substitua os seguintes valores:

    • Valor da tag TAG_VALUE a ser removido.

    • REPOSITORY_ID é o ID completo do repositório, incluindo o nome de domínio da API para identificar o tipo de recurso (//artifactregistry.googleapis.com/). Por exemplo, //artifactregistry.googleapis.com/projects/my-project/my-repo

    • LOCATION é o local do repositório.

    Veja o exemplo a seguir.

    • Valor da tag: 815471563813/env/dev
    • Projeto: my-project
    • Repositório: my-repo
    • Local do repositório: us-east1

    O comando da CLI gcloud a seguir remove a tag do repositório:

    gcloud alpha resource-manager tags bindings delete \
        --tag-value=815471563813/env/dev \
        --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
        --location=us-east1
    

A seguir