Repositórios de etiquetas

Use etiquetas para agrupar repositórios e outros recursos para Google Cloud relatórios, auditorias e controlo de acesso na sua Google Cloudorganização.

Para agrupar repositórios no Artifact Registry para fins de automatização e faturação, use etiquetas. As etiquetas e os marcadores funcionam independentemente uns dos outros e pode aplicá-los ambos ao mesmo repositório. Para mais informações sobre as diferenças entre etiquetas e rótulos, consulte o artigo Etiquetas e rótulos.

O que são etiquetas?

As etiquetas são pares de chave-valor que pode aplicar aos seus recursos para um controlo de acesso detalhado.

Os administradores de projetos criam etiquetas para recursos em toda a organização Google Cloud ao nível da organização e gerem-nas no Resource Manager. Quando associa uma etiqueta a um repositório do Artifact Registry, pode usar a etiqueta com condições do IAM para conceder acesso condicional ao repositório. Não pode anexar etiquetas a artefactos individuais.

Tenha em atenção estas restrições:

  • As políticas da organização podem referenciar condicionalmente etiquetas que são herdadas do projeto principal e superiores, mas não suportam etiquetas que anexa diretamente aos repositórios.

  • Os registos de auditoria do Google Cloud não são gerados para anexar etiquetas e ver associações de etiquetas em repositórios.

Para mais informações sobre etiquetas e controlo de acesso condicional com etiquetas, consulte o artigo Etiquetas e controlo de acesso.

Autorizações necessárias

As autorizações de que precisa dependem da ação que tem de realizar.

Para obter estas autorizações, peça ao administrador para conceder a função sugerida no nível adequado da hierarquia de recursos.

Ver etiquetas

Para ver as definições de etiquetas e as etiquetas anexadas a recursos, precisa da função Visualizador de etiquetas (roles/resourcemanager.tagViewer) ou de outra função que inclua as seguintes autorizações:

Autorizações necessárias

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • listTagBindings para o tipo de recurso adequado. Por exemplo, compute.instances.listTagBindings para ver etiquetas anexadas a instâncias do Compute Engine.
  • listEffectiveTags
  • para o tipo de recurso adequado. Por exemplo, compute.instances.listEffectiveTags para ver todas as etiquetas anexadas ou herdadas por instâncias do Compute Engine.

Para ver etiquetas ao nível da organização, precisa da função Visitante da organização (roles/resourcemanager.organizationViewer) no recurso da organização.

Administre etiquetas

Para criar, atualizar e eliminar definições de etiquetas, precisa da função de administrador de etiquetas (roles/resourcemanager.tagAdmin) ou de outra função que inclua as seguintes autorizações:

Autorizaçõ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 etiquetas ao nível da organização, precisa da função de Leitor da organização (roles/resourcemanager.organizationViewer) no recurso da organização.

Faça a gestão de etiquetas em recursos

Para adicionar e remover etiquetas anexadas a recursos, precisa da função Utilizador de etiquetas (roles/resourcemanager.tagUser) ou de outra função com autorizações equivalentes, no valor da etiqueta e nos recursos aos quais está a anexar o valor da etiqueta. A função Utilizador da etiqueta inclui as seguintes autorizações:

Autorizações necessárias

  • Autorizações necessárias para o recurso ao qual está a anexar o valor da etiqueta
    • Autorização createTagBinding específica do recurso, como compute.instances.createTagBinding para instâncias do Compute Engine.
    • Autorização deleteTagBinding específica do recurso, como compute.instances.deleteTagBinding para instâncias do Compute Engine.
  • Autorizações necessárias para o valor da etiqueta:
    • resourcemanager.tagValueBindings.create
    • resourcemanager.tagValueBindings.delete
  • Autorizações que lhe permitem ver projetos e definições de etiquetas:
    • resourcemanager.tagValues.get
    • resourcemanager.tagValues.list
    • resourcemanager.tagKeys.get
    • resourcemanager.tagKeys.list
    • resourcemanager.projects.get

Anexar etiquetas a repositórios

Depois de um administrador do projeto criar etiquetas, pode anexá-las a um repositório. Cada etiqueta tem uma chave e um valor. Etiqueta um repositório associando um valor ao repositório.

Para anexar uma etiqueta a um repositório:

Consola

  1. Obtenha o valor da etiqueta a anexar junto do seu administrador.

    Pode anexar um valor de etiqueta com um destes tipos de identificadores:

    • Um nome com espaço de nomes, como 123456789012/env/dev
    • Um ID permanente, como tagValues/567890123456
  2. Abra a página Repositórios na Google Cloud consola.

    Abra a página Repositórios

  3. Selecione o repositório que quer etiquetar.

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

    São apresentadas as etiquetas existentes para o repositório, incluindo as etiquetas herdadas.

  5. Clique no ícone Editar Editar etiquetas.

  6. Na secção Etiquetas diretas, clique em Selecionar âmbito.

  7. Selecione o projeto do repositório.

  8. No campo chave, escreva para filtrar a lista de etiquetas e, de seguida, selecione a chave da etiqueta.

  9. No campo Valor, escreva para filtrar a lista de etiquetas e, de seguida, selecione o valor da etiqueta.

  10. Clique em Guardar.

  11. Clique em Confirm.

    A etiqueta está anexada ao seu repositório.

CLI gcloud

  1. Obtenha o valor da etiqueta a anexar junto do seu administrador.

    Pode anexar um valor de etiqueta com um destes tipos de identificadores:

    • Um nome com espaço de nomes, como 123456789012/env/dev
    • Um ID permanente, como tagValues/567890123456
  2. Anexe o valor da etiqueta com o seguinte comando:

    gcloud 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 espaço de nomes do valor da etiqueta a anexar.

    • REPOSITORY_ID é o ID completo do repositório, incluindo o nome do 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 é a localização do repositório.

    Considere o seguinte exemplo:

    • Valor da etiqueta: 815471563813/env/dev
    • Projeto: my-project
    • Repositório: my-repo
    • Localização do repositório: us-east1

    O seguinte comando da CLI gcloud anexa a etiqueta ao repositório:

    gcloud 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
    

Listagem de etiquetas anexadas a repositórios

Pode listar as etiquetas anexadas a um recurso ao qual tem autorização de acesso.

Consola

  1. Abra a página Repositórios na Google Cloud consola.

    Abra a página Repositórios

  2. Selecione o repositório que quer ver.

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

    A lista Etiquetas mostra todas as etiquetas do repositório, incluindo etiquetas diretas e etiquetas herdadas de um nível superior na hierarquia de recursos.

CLI gcloud

Para apresentar uma lista de etiquetas anexadas a um repositório, execute o seguinte comando:

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

O comando apenas lista as etiquetas diretamente anexadas ao recurso especificado, pelo que não devolve etiquetas herdadas do projeto principal ou superior. Pode listar as etiquetas herdadas do projeto principal especificando um projeto em vez de um repositório com a flag --parent.

Por exemplo, este comando lista as etiquetas anexadas ao repositório my-repo no projeto my-project e na localização us-east1:

gcloud 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 etiquetas anexadas ao número do projeto 7890123456:

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

Desassociar etiquetas de repositórios

Pode desanexar uma etiqueta que esteja diretamente anexada a um repositório. Se precisar de remover uma etiqueta herdada do projeto principal ou de outra parte da hierarquia de recursos, um administrador do projeto tem de a desassociar do recurso ao qual a etiqueta está anexada.

Para remover uma etiqueta associada a um repositório:

Consola

  1. Obtenha o valor da etiqueta que quer remover. Se não souber o valor da etiqueta, liste as etiquetas anexadas ao repositório.

  2. Abra a página Repositórios na Google Cloud consola.

    Abra a página Repositórios

  3. Selecione o repositório.

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

    São apresentadas as etiquetas existentes para o repositório, incluindo as etiquetas herdadas.

  5. Clique no ícone Editar Editar etiquetas.

  6. Na secção Etiquetas diretas, localize a etiqueta que quer remover.

  7. Clique no ícone eliminar junto à etiqueta que quer remover.

  8. Clique em Guardar.

  9. Clique em Confirm.

    A etiqueta é removida do seu repositório.

CLI gcloud

  1. Obtenha o valor da etiqueta que quer remover. Se não souber o valor da etiqueta, liste as etiquetas anexadas ao repositório.

  2. Desassocie o valor da etiqueta com o seguinte comando:

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

    Substitua os seguintes valores:

    • Valor da etiqueta TAG_VALUE a desassociar.

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

    • LOCATION é a localização do repositório.

    Considere o seguinte exemplo:

    • Valor da etiqueta: 815471563813/env/dev
    • Projeto: my-project
    • Repositório: my-repo
    • Localização do repositório: us-east1

    O seguinte comando da CLI gcloud desassocia a etiqueta do repositório:

    gcloud 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
    

O que se segue?