Nesta página, mostramos como criar e gerenciar tags nos clusters anexados do GKE.
Visão geral
Uma tag é um par de chave-valor que pode ser anexado a um recurso no Google Cloud. É possível usar tags para permitir ou negar políticas condicionalmente com base no fato de um recurso ter uma tag específica.
Como administrador da plataforma, um caso de uso para tags pode ser conceder papéis do Identity and Access Management (IAM) condicionalmente, de acordo com a indicação de uma tag específica no cluster. Por exemplo, é possível configurar o GKE para conceder automaticamente papéis do Identity and Access Management a usuários prestadores de serviços a fim de que possam acessar clusters específicos que normalmente estão disponíveis apenas para funcionários em tempo integral.
Depois de criar uma tag, é possível anexá-la a um recurso Google Cloud como um
par de chave-valor usando uma vinculação de tags. Para cada chave, é possível anexar um valor a um
recurso. Por exemplo, se você anexou env:dev ao cluster, não é possível
anexar env:prod ou env:test. É possível anexar até 50 tags a cada
recurso.
Nos clusters anexados do GKE, há vários métodos para anotar seus recursos, conforme descrito na tabela a seguir:
| Tipo de anotação | Nível | Descrição | Exemplo |
|---|---|---|---|
| Tags | Cluster do GKE |
Permitir ou negar políticas condicionalmente com base na tag. Para saber mais, consulte a Visão geral das tags na documentação do Resource Manager. |
Conceder automaticamente aos usuários prestadores de serviços acesso a clusters específicos que normalmente estão disponíveis apenas para funcionários em tempo integral. |
| Rótulos de cluster do GKE | Cluster do GKE |
Organizar os recursos do GKE para rastrear o uso e o faturamento. Para saber mais, consulte Rótulos de cluster. |
Diferenciar os clusters de centros de custo ou equipes específicos da sua organização. |
| Rótulos do Kubernetes | Cluster do GKE |
Associar componentes e recursos do cluster uns aos outros e gerenciar os ciclos de vida dos recursos. Para saber mais, consulte Rótulos e seletores do Kubernetes. |
Exigir que as cargas de trabalho sejam programadas em nós com rótulos específicos. |
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ativar a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a CLI do Google Cloud para essa tarefa,
instale e inicialize a
gcloud CLI. Se você instalou a gcloud CLI anteriormente, instale a versão
mais recente executando o comando
gcloud components update. Talvez as versões anteriores da gcloud CLI não sejam compatíveis com a execução dos comandos neste documento.
Verifique se você tem os seguintes papéis do IAM para trabalhar com tags:
roles/resourcemanager.tagAdminroles/resourcemanager.tagUser
Para informações sobre as permissões concedidas por esses papéis, consulte Permissões necessárias.
Criar chaves e valores de tags
Antes de anexar uma tag aos recursos do GKE, é preciso criar a tag e configurar os valores dela. Para criar chaves e valores de tag, consulte Como criar uma tag e Como adicionar valores de tag na documentação do Resource Manager.
Anexar tags a um cluster
É possível anexar tags a um cluster atual se você tiver as permissões corretas usando a Google Cloud CLI, o console Google Cloud ou a API Tags.
gcloud
Para criar uma vinculação de tag e anexar uma tag a um cluster, execute o seguinte comando:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Substitua:
TAG_VALUE_ID: o ID permanente ou o namespace do valor de tag a ser anexado. Por exemplo,tagValues/4567890123. Para ver detalhes sobre os identificadores de tags, consulte Definições e identificadores de tags.RESOURCE_ID: o nome completo do recurso do cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME.No ID do recurso:
PROJECT_ID: o ID do projeto do Google Cloud .CLUSTER_NAME: o nome do cluster.
CLUSTER_LOCATION: o nome do local Google Cloud de onde o cluster é gerenciado.
Console
Acesse a página do Google Kubernetes Engine no console do Google Cloud .
Na lista de clusters, clique no nome do cluster que você quer modificar.
Na seção Metadados, ao lado de Tags, clique em Editar tags.
Se a organização não aparecer no painel Tags, clique em Selecionar escopo. Selecione sua organização e clique em Abrir.
No painel Tags, selecione Adicionar tag.
Selecione na lista a chave da tag que você quer anexar. Para filtrar a lista, digite palavras-chave.
Selecione na lista o valor da tag que você quer anexar. Para filtrar a lista, digite palavras-chave.
Clique em Salvar.
Na caixa de diálogo Confirmar, clique em Confirmar para anexar a tag.
Uma notificação confirma que suas tags foram atualizadas.
API
Para anexar uma tag a um recurso, primeiro crie uma representação JSON de uma vinculação de tag que inclua os códigos permanentes do valor da tag e do recurso. Para mais informações sobre o formato de uma vinculação de tags, consulte a referência de TagBinding.
Use o método tagBindings.create com o endpoint em que o cluster está
localizado.
POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Substitua LOCATION pelo local Google Cloud
em que o cluster está localizado, como us-central1.
Corpo da solicitação JSON:
{
"parent": "RESOURCE_ID",
"tagValue": "TAG_VALUE_ID"
}
Substitua:
RESOURCE_ID: o nome completo do recurso do cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME.No ID do recurso:
PROJECT_ID: o ID do projeto do Google Cloud .CLUSTER_NAME: o nome do cluster.
TAG_VALUE_ID: o ID permanente ou o namespace do valor de tag a ser anexado. Por exemplo,tagValues/4567890123. Para ver detalhes sobre os identificadores de tags, consulte Definições e identificadores de tags.
A saída será assim:
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.TagBinding",
"name": "tagBindings///container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/attachedClusters/CLUSTER_NAME/tagValues/TAG_VALUE_ID",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/attachedClusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
}
Listar tags anexadas a um cluster
É possível listar as tags anexadas a um cluster usando a CLI gcloud, o console Google Cloud ou a API Tags.
gcloud
Para ver uma lista de vinculações de tags anexadas a um cluster, execute o seguinte comando:
gcloud resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Substitua:
RESOURCE_ID: o nome completo do recurso do cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME.No ID do recurso:
PROJECT_ID: o ID do projeto do Google Cloud .CLUSTER_NAME: o nome do cluster.
CLUSTER_LOCATION: o local Google Cloud em que o cluster está localizado.
Console
Acesse a página do Google Kubernetes Engine no console do Google Cloud .
Na lista de clusters, clique no nome do cluster que você quer ver.
Na seção Metadados, ao lado de Tags, procure os valores de tag anexados atualmente.
API
Para receber uma lista das vinculações de tag de um cluster, use o método tagBindings.list
com o endpoint em que o cluster está localizado.
GET https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Corpo da solicitação JSON:
{
"parent": RESOURCE_ID,
}
Substitua:
RESOURCE_ID: o nome completo do recurso do cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME.No ID do recurso:
PROJECT_ID: o ID do projeto do Google Cloud .CLUSTER_NAME: o nome do cluster.
O resultado será o seguinte:
"tagBindings": [
{
"name": "tagBindings/%2F%2Fcontainer.googleapis.com%2Fprojects%2Ftags-bugbash-project%2Flocations%2Fus-central1%2Fclusters%2Ftestcluster/tagValues/758072120217",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/attachedClusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
]
Remover tags de um cluster
É possível desanexar uma tag de um cluster excluindo o recurso de vinculação de tags anexado ao cluster usando a CLI gcloud, o consoleGoogle Cloud ou a API Tags. Se você precisar excluir uma tag, primeiro remova todos os recursos anexados.
gcloud
Para remover uma vinculação de tag anexada a um cluster, execute o seguinte comando:
gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Substitua:
TAG_VALUE_ID: o ID permanente ou o namespace do valor de tag que será desanexado. Por exemplo,tagValues/4567890123. Para ver detalhes sobre os identificadores de tags, consulte Definições e identificadores de tags.RESOURCE_ID: o nome completo do recurso do cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME.No ID do recurso:
PROJECT_ID: o ID do projeto do Google Cloud .CLUSTER_NAME: o nome do cluster.
CLUSTER_LOCATION: o local Google Cloud em que o cluster está localizado.
Console
Acesse a página do Google Kubernetes Engine no console do Google Cloud .
Na lista de clusters, clique no nome do cluster que você quer modificar.
Na seção Metadados, ao lado de Tags, clique em Editar tags.
No painel Tags, ao lado da tag que você quer remover, clique em Excluir item.
Clique em Salvar.
Na caixa de diálogo Confirmar, clique em Confirmar para remover a tag.
Uma notificação confirma que suas tags foram atualizadas.
API
Para excluir vinculações de tags de um cluster, use o método tagBindings.delete
com o endpoint em que o cluster está localizado.
DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/TAG_BINDING_NAME
Substitua TAG_BINDING_NAME pelo nome completo
do recurso do objeto tagBinding
que você quer remover. Por exemplo, tagBindings/container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/tagValues/TAG_VALUE_ID.
Excluir chaves e valores de tag
Antes de excluir chaves e valores de tags, verifique se as tags foram removidas de todos os recursos. Em seguida, consulte Como excluir tags para excluir as chaves e os valores.
Condições e tags do Identity and Access Management
É possível usar tags e condições do IAM para conceder vinculações de papéis condicionalmente aos usuários na hierarquia do projeto. Quando você muda ou exclui a tag anexada a um cluster que tem uma política do IAM com vinculações de papéis condicionais, o GKE reavalia as permissões de acesso com base nas condições atualizadas.
A autorização para listar e criar clusters do GKE é verificada no nível do projeto, não no nível do cluster individual. Se você usa vinculações condicionais de papel do IAM com tags no nível do cluster para restringir o acesso a clusters específicos, esses usuários talvez enfrentem erros ao tentar listar ou criar clusters no projeto. Para evitar esses erros, anexe uma tag ao projeto pai e use uma vinculação de papel condicional para conceder à lista ou criar acesso. Para informações sobre papéis e permissões, consulte a Referência de papéis do IAM.
Para mais informações sobre concessões de acesso condicional no IAM, consulte Condições e tags do Identity and Access Management.
A seguir
- Saiba como definir uma política da organização com tags.
- Saiba mais sobre como gerenciar tags e anexá-las a recursos.
- Veja os outros serviços compatíveis com tags.
- Saiba como usar tags com o IAM.