Faça a gestão de recursos do GKE através de etiquetas

Esta página mostra como usar etiquetas para gerir os seus clusters do Google Kubernetes Engine (GKE) e aplicar condicionalmente políticas de gestão de identidades e acessos aos nós.

Vista geral

As etiquetas são pares de chave-valor que lhe permitem anotar e gerir os seus Trusted Cloud recursos ao nível da organização ou do projeto. Pode usar etiquetas para organizar os seus recursos e aplicar condicionalmente políticas, como firewalls ou políticas de IAM. As etiquetas suportam o controlo de acesso da IAM, que lhe permite definir quem pode anexar, criar, atualizar ou eliminar etiquetas.

Exemplos de utilização de etiquetas no GKE

Pode usar etiquetas no GKE para situações como as seguintes:

  • Aplicar condicionalmente políticas de firewall de rede a nós específicos. Por exemplo, negar o tráfego de entrada da Internet pública a todos os nós de um cluster em ambientes de preparação ou teste. Para obter instruções, consulte o artigo Aplique seletivamente políticas de firewall de rede no GKE.
  • Conceda condicionalmente funções IAM com base em etiquetas. Por exemplo, conceder automaticamente aos contratados acesso a ambientes específicos que, normalmente, só estariam disponíveis para funcionários a tempo inteiro. Para ver instruções, consulte o resto deste documento.
  • Auditar e analisar informações de faturação com base nas etiquetas aplicadas ao nível do projeto ou da organização.

Como funciona

Para a aplicação de políticas de firewall de rede especificamente, cria uma etiqueta e designa-a explicitamente para utilização da firewall. Para todos os outros fins, pode criar uma etiqueta sem definir uma designação de firewall.

Depois de criar a etiqueta, anexa-a aos recursos do GKE como um par chave-valor. Para políticas de firewall de rede, usa a API GKE, enquanto para todos os outros fins usa a API Tags.

Para cada chave, pode anexar um valor a um recurso. Por exemplo, se anexou env:dev a um cluster do GKE, também não pode anexar env:prod nem env:test. Pode anexar até 50 etiquetas não relacionadas com a firewall e até cinco etiquetas relacionadas com a firewall a cada recurso.

Métodos de anotação de recursos no GKE

No GKE, existem vários métodos para anotar os seus recursos, conforme descrito na tabela seguinte:

Tipo da nota Descrição Exemplo
Etiquetas (não relacionadas com firewall)
  • Aplique ao recurso de cluster através da API Tags
  • Organize os recursos para acompanhar a utilização e a faturação
  • Aplique condicionalmente políticas de IAM
  • Controle o acesso a etiquetas específicas com a IAM

Para saber mais, consulte a Vista geral das etiquetas.

Conceder condicionalmente funções de IAM para controlar o acesso a recursos que tenham etiquetas específicas
Etiquetas (firewall)
  • Aplique ao cluster ou ao node pool através da API GKE
  • Aplicar condicionalmente políticas de firewall de rede do firewall de nova geração do Google Cloud.
  • Controle o acesso a etiquetas específicas com a IAM
  • O GKE anexa os pares de chave-valor às VMs do Compute Engine subjacentes.

Para saber mais, consulte o artigo Aplique seletivamente políticas de firewall de rede no GKE.

Negar automaticamente o tráfego de entrada da Internet pública para todos os ambientes de preparação ou teste
Etiquetas de rede
  • Aplique ao cluster ou ao node pool através da API GKE
  • Strings simples sem controlo de acesso IAM
  • Use para aplicar condicionalmente regras de firewall da VPC
  • O GKE anexa os pares de chave-valor às VMs do Compute Engine subjacentes

Para saber mais, consulte o artigo Use etiquetas de rede para aplicar regras de firewall a nós.

Negar automaticamente o tráfego de entrada da Internet pública para todos os ambientes de preparação ou teste
Etiquetas do cluster do GKE
  • Aplique ao cluster ou ao node pool através da API GKE
  • Organize os recursos para acompanhar a utilização e a faturação

Para saber mais, consulte o artigo Etiquetas de cluster.

Diferenciar entre clusters pertencentes a centros de custos ou equipas específicos na sua organização.
Etiquetas do Kubernetes
  • Aplique a objetos da API Kubernetes
  • Associar componentes e recursos do cluster entre si e gerir os ciclos de vida dos recursos.

Para saber mais, consulte o artigo Etiquetas e seletores do Kubernetes.

Exigir que as cargas de trabalho sejam agendadas em nós com etiquetas específicas.

Antes de começar

Antes de começar, certifique-se de que realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ative a API Google Kubernetes Engine
  • Se quiser usar a CLI gcloud para esta tarefa, instale-a e, em seguida, inicialize-a. Se instalou anteriormente a CLI gcloud, execute gcloud components update para obter a versão mais recente.

Anexe etiquetas a um cluster

Pode anexar etiquetas a um cluster existente se tiver as autorizações corretas através da CLI Google Cloud, da Trusted Cloud consola, da API Tags ou do Terraform.

gcloud

Antes de poder anexar uma etiqueta aos seus recursos do GKE através da CLI gcloud, tem de criar a etiqueta e configurar os respetivos valores. Para criar chaves e valores de etiquetas, consulte os artigos Criar uma etiqueta e Adicionar valores de etiquetas.

Para criar uma associação de etiquetas para anexar uma etiqueta a um cluster, execute o seguinte comando:

gcloud alpha resource-manager tags bindings create \
    --tag-value=TAG_VALUE_ID \
    --parent=RESOURCE_ID \
    --location=CLUSTER_LOCATION

Substitua o seguinte:

  • TAG_VALUE_ID: o ID permanente ou o nome com espaço de nomes do valor da etiqueta a anexar. Por exemplo, tagValues/4567890123. Para ver detalhes sobre os identificadores de etiquetas, consulte o artigo Definições e identificadores de etiquetas.
  • CLUSTER_LOCATION: a localização do Compute Engine. Para clusters zonais, especifique a zona de computação.
  • RESOURCE_ID: O nome completo do recurso do seu cluster, como //container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME.

    No ID do recurso:

    • PROJECT_ID: o ID do seu Trusted Cloud by S3NS projeto.
    • CLUSTER_NAME: o nome do seu cluster.

Consola

Antes de poder anexar uma etiqueta aos seus recursos do GKE através da Trusted Cloud consola, tem de criar a etiqueta e configurar os respetivos valores. Para criar chaves e valores de etiquetas, consulte os artigos Criar uma etiqueta e Adicionar valores de etiquetas.

  1. Aceda à página do Google Kubernetes Engine na Trusted Cloud consola.

    Aceder ao Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que quer modificar.

  3. Na secção Metadados, junto a Etiquetas, clique em Editar etiquetas.

  4. Se a sua organização não aparecer no painel Etiquetas, clique em Selecionar âmbito. Selecione a sua organização e clique em Abrir.

  5. No painel Etiquetas, selecione Adicionar etiqueta.

  6. Selecione a chave da etiqueta que quer anexar na lista. Pode filtrar a lista escrevendo palavras-chave.

  7. Selecione o valor da etiqueta que quer anexar na lista. Pode filtrar a lista escrevendo palavras-chave.

  8. Clique em Guardar.

  9. Na caixa de diálogo Confirmar, clique em Confirmar para anexar a etiqueta.

    É apresentada uma notificação a confirmar que as etiquetas foram atualizadas.

API

Para anexar uma etiqueta a um recurso, primeiro tem de criar uma representação JSON de uma associação de etiquetas que inclua os IDs permanentes do valor da etiqueta e do recurso. Para mais informações sobre o formato de uma associação de etiquetas, consulte a referência TagBinding.

Use o método tagBindings.create com o ponto final regional ou zonal onde o cluster está localizado.

POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings

Substitua LOCATION pela região ou zona onde o cluster está localizado.

Corpo do pedido JSON:

{
  "parent": "RESOURCE_ID",
  "tagValue": "TAG_VALUE_ID"
}

Substitua o seguinte:

  • RESOURCE_ID: O nome completo do recurso do seu cluster, como //container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME.

    No ID do recurso:

    • PROJECT_ID: o ID do seu Trusted Cloud by S3NS projeto.
    • CLUSTER_NAME: o nome do seu cluster.
  • TAG_VALUE_ID: o ID permanente ou o nome com espaço de nomes do valor da etiqueta a anexar. Por exemplo, tagValues/4567890123. Para ver detalhes sobre os identificadores de etiquetas, consulte o artigo Definições e identificadores de etiquetas.

O resultado é semelhante ao seguinte:

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.TagBinding",
    "name": "tagBindings///container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME/tagValues/TAG_VALUE_ID",
    "parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME",
    "tagValue": "TAG_VALUE_ID"
  }
}

Terraform

Para criar uma etiqueta, configurar os respetivos valores e anexar uma etiqueta a um recurso com o Terraform, consulte o seguinte exemplo:

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-tag"
  location = "us-central1"

  enable_autopilot = true
}

data "google_project" "default" {}

resource "google_tags_tag_key" "default" {
  parent      = "projects/${data.google_project.default.project_id}"
  short_name  = "env"
  description = "Environment tag key"
}

resource "google_tags_tag_value" "default" {
  parent      = "tagKeys/${google_tags_tag_key.default.name}"
  short_name  = "dev"
  description = "Development environment tag value."
}

resource "google_tags_location_tag_binding" "default" {
  parent    = "//container.googleapis.com/${google_container_cluster.default.id}"
  location  = google_container_cluster.default.location
  tag_value = "tagValues/${google_tags_tag_value.default.name}"
}

Para saber mais sobre a utilização do Terraform, consulte o artigo Compatibilidade do Terraform com o GKE.

Listar etiquetas anexadas a um cluster

Pode listar as etiquetas anexadas a um cluster através da CLI gcloud, da Trusted Cloud consola ou da API Tags.

gcloud

Para obter uma lista de associações de etiquetas anexadas a um cluster, execute o seguinte comando:

gcloud alpha resource-manager tags bindings list \
    --parent=RESOURCE_ID \
    --location=CLUSTER_LOCATION

Substitua o seguinte:

  • CLUSTER_LOCATION: para clusters regionais, especifique a região de computação. Para clusters zonais, especifique a zona de computação.

  • RESOURCE_ID: O nome completo do recurso do seu cluster, como //container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME.

    No ID do recurso:

    • PROJECT_ID: o ID do seu Trusted Cloud by S3NS projeto.

    • CLUSTER_NAME: o nome do seu cluster.

Consola

  1. Aceda à página do Google Kubernetes Engine na Trusted Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que quer ver.

  3. Na secção Metadados, junto a Etiquetas, procure os valores das etiquetas atualmente anexados.

API

Para obter uma lista de associações de etiquetas para um cluster, use o tagBindings.list método com o ponto final regional ou zonal onde o cluster está localizado.

GET https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings

Corpo do pedido JSON:

{
  "parent": RESOURCE_ID,
}

Substitua o seguinte:

  • RESOURCE_ID: O nome completo do recurso do seu cluster, como //container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME.

    No ID do recurso:

    • PROJECT_ID: o ID do seu Trusted Cloud by S3NS projeto.
    • CLUSTER_NAME: o nome do seu cluster.

O resultado é semelhante ao seguinte:

"tagBindings": [
  {
    "name": "tagBindings/%2F%2Fcontainer.googleapis.com%2Fprojects%2Ftags-bugbash-project%2Flocations%2LOCATION%2Fclusters%2Ftestcluster/tagValues/758072120217",
    "parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME",
    "tagValue": "TAG_VALUE_ID"
  }
]

Desassocie etiquetas de um conjunto

Pode desassociar uma etiqueta de um cluster eliminando o recurso de associação de etiquetas anexado ao cluster através da CLI gcloud, da Trusted Cloud consola ou da API Tags. Se precisar de eliminar uma etiqueta, tem de a desanexar primeiro de todos os recursos anexados.

gcloud

Para desassociar uma associação de etiquetas anexada a um cluster, execute o seguinte comando:

gcloud alpha resource-manager tags bindings delete \
    --tag-value=TAG_VALUE_ID \
    --parent=RESOURCE_ID \
    --location=CLUSTER_LOCATION

Substitua o seguinte:

  • TAG_VALUE_ID: o ID permanente ou o nome com espaço de nomes do valor da etiqueta a desassociar. Por exemplo, tagValues/4567890123. Para ver detalhes sobre os identificadores de etiquetas, consulte o artigo Definições e identificadores de etiquetas.

  • CLUSTER_LOCATION: Para clusters regionais, especifique a região de computação. Para clusters zonais, especifique a zona de computação.

  • RESOURCE_ID: O nome completo do recurso do seu cluster, como //container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME.

    No ID do recurso:

    • PROJECT_ID: o ID do seu Trusted Cloud by S3NS projeto.

    • CLUSTER_NAME: o nome do seu cluster.

Consola

  1. Aceda à página do Google Kubernetes Engine na Trusted Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que quer modificar.

  3. Na secção Metadados, junto a Etiquetas, clique em Editar etiquetas.

  4. No painel Etiquetas, junto à etiqueta que quer desassociar, clique em Eliminar item.

  5. Clique em Guardar.

  6. Na caixa de diálogo Confirmar, clique em Confirmar para desassociar a etiqueta.

    É apresentada uma notificação a confirmar que as etiquetas foram atualizadas.

API

Para eliminar associações de etiquetas para um cluster, use o método tagBindings.delete com o ponto final regional ou zonal onde o cluster está localizado.

DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/TAG_BINDING_NAME

Substitua TAG_BINDING_NAME pelo nome completo do recurso do tagBindingobjeto que quer desanexar. Por exemplo, tagBindings/container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/tagValues/TAG_VALUE_ID.

Elimine chaves de etiquetas e valores de etiquetas

Antes de eliminar chaves e valores de etiquetas, certifique-se de que as etiquetas estão desassociadas de todos os recursos. Em seguida, consulte o artigo Eliminar etiquetas para eliminar as chaves e os valores.

Condições e etiquetas da gestão de identidade e de acesso

Pode usar etiquetas e condições da IAM para conceder condicionalmente associações de funções aos utilizadores na hierarquia do seu projeto. Quando altera ou elimina a etiqueta associada a um cluster, o GKE pode remover o acesso do utilizador a esse cluster se tiver sido aplicada uma política de autorização da IAM com associações de funções condicionais.

A autorização para listar e criar clusters do GKE é verificada ao nível do projeto e não ao nível do cluster individual. Se usar associações de funções do IAM condicionais com etiquetas ao nível do cluster para restringir o acesso a clusters específicos, esses utilizadores podem ter erros ao tentar listar ou criar clusters no projeto. Para evitar estes erros, anexe uma etiqueta ao projeto principal e use uma associação de funções condicional para conceder acesso à lista ou criar acesso. Para informações sobre funções e autorizações, consulte a referência de funções de IAM.

Para mais informações acerca das concessões de acesso condicional na IAM, consulte o artigo Condições e etiquetas da gestão de identidade e de acesso.

O que se segue?