Nesta página, mostramos como usar tags para gerenciar os clusters do Google Kubernetes Engine (GKE) e aplicar condicionalmente políticas do Identity and Access Management aos nós.
Visão geral
As tags são pares de chave-valor que permitem anotar e gerenciar os recursos do Google Cloud no nível da organização ou do projeto. Use tags para organizar seus recursos e aplicar condicionalmente políticas, como firewalls ou políticas do IAM. Elas oferecem suporte ao controle de acesso do IAM, que permite definir quem pode anexar, criar, atualizar ou excluir tags.
Casos de uso de tags no GKE
Use tags no GKE em situações como as seguintes:
- Aplique condicionalmente políticas de firewall de rede a nós específicos. Por exemplo, negue o tráfego de entrada da Internet pública para todos os nós de um cluster em ambientes de preparo ou teste. Para instruções, consulte Aplicar seletivamente políticas de firewall de rede no GKE.
- Conceda condicionalmente papéis do IAM com base em tags. Por exemplo, conceder automaticamente aos contratados acesso a ambientes específicos que normalmente estariam disponíveis apenas para funcionários em tempo integral. Para ver instruções, consulte o restante deste documento.
- Audite e analise as informações de faturamento com base nas tags aplicadas no nível do projeto ou da organização.
Como funciona
Especificamente para a aplicação da política de firewall de rede, crie uma tag e designe explicitamente a tag para uso do firewall. Para todas as outras finalidades, você cria uma tag sem definir uma designação de firewall.
Depois de criar a tag, anexe-a aos recursos do GKE como um par de chave-valor. Para políticas de firewall de rede, use a API GKE e, para todas as outras finalidades, use a API Tags.
Para cada chave, é possível anexar um valor a um
recurso. Por exemplo, se você anexou env:dev
a um cluster
GKE, também não é possível anexar env:prod
ou env:test
. É possível anexar até
50 tags que não são de firewall e até cinco tags de firewall
a cada recurso.
Métodos de anotação de recurso no GKE
No GKE, há vários métodos para anotar seus recursos, conforme descrito na tabela a seguir:
Tipo de anotação | Descrição | Exemplo |
---|---|---|
Tags (sem firewall) |
Para saber mais, consulte a Visão geral das tags. |
Conceda condicionalmente papéis do IAM para controlar o acesso a recursos que têm tags específicas |
Tags (firewall) |
Para saber mais, consulte Aplicar políticas de firewall de rede de forma seletiva no GKE. |
Negar automaticamente o tráfego de entrada da Internet pública para todos os ambientes de preparo ou teste |
Tags de rede |
Para saber mais, consulte Usar tags de rede para aplicar regras de firewall aos nós. |
Negar automaticamente o tráfego de entrada da Internet pública para todos os ambientes de preparo ou teste |
Rótulos de cluster do GKE |
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 |
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 Google Cloud CLI para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando
gcloud components update
.
Verifique se você tem os seguintes papéis do IAM:
roles/resourcemanager.tagAdmin
roles/resourcemanager.tagUser
Para informações sobre as permissões concedidas por esses papéis, consulte Permissões necessárias.
Verifique se você tem um cluster do GKE em execução.
Anexar tags a um cluster
É possível anexar tags a um cluster já existente quando você tem as permissões corretas usando a CLI do Google Cloud, o console do Google Cloud, a API Tags ou o Terraform.
gcloud
Antes de anexar uma tag aos recursos do GKE usando a gcloud CLI, crie a tag e configure os valores dela. Para criar chaves e valores de tag, consulte Como criar uma tag e Como adicionar valores de tag.
Para criar uma vinculação de tag e anexar uma tag 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:
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.CLUSTER_LOCATION
: o local do Compute Engine. Para clusters zonais, especifique a zona do Compute.RESOURCE_ID
: o nome completo do recurso do cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.No ID do recurso:
PROJECT_ID
pelo ID do projeto no Google Cloud.CLUSTER_NAME
: o nome do cluster.
Console
Antes de anexar uma tag aos recursos do GKE usando o console do Google Cloud, crie a tag e configure os valores dela. Para criar chaves e valores de tag, consulte Como criar uma tag e Como adicionar valores de tag.
Acesse a página 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.
Utilize o método tagBindings.create
com o endpoint regional ou zonal em
que o cluster está localizado.
POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Substitua LOCATION
pela região ou zona em que seu
cluster está localizado.
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/clusters/CLUSTER_NAME
.No ID do recurso:
PROJECT_ID
pelo ID do projeto no 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.
O resultado será assim:
{
"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 tag, configurar os valores dela e anexá-la a um recurso usando o Terraform, consulte o exemplo a seguir:
Para saber mais como usar o Terraform, consulte o Suporte do Terraform para GKE.
Listar tags anexadas a um cluster
É possível listar as tags anexadas a um cluster usando a CLI gcloud, o console do 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 alpha resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Substitua:
CLUSTER_LOCATION
: para clusters regionais, especifique a região do Compute. Para zona clusters, especifique a zona do Compute.RESOURCE_ID
: o nome completo do recurso do cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.No ID do recurso:
PROJECT_ID
pelo ID do projeto no Google Cloud.CLUSTER_NAME
: o nome do cluster.
Console
Acesse a página 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 regional ou zonal em que o cluster está.
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/clusters/CLUSTER_NAME
.No ID do recurso:
PROJECT_ID
pelo ID do projeto no Google Cloud.CLUSTER_NAME
: o nome do cluster.
A saída será assim:
"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"
}
]
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 console do Google 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 alpha 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.CLUSTER_LOCATION
: para clusters regionais, especifique a região do Compute. Para clusters zonais, especifique a zona do Compute.RESOURCE_ID
: o nome completo do recurso do cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.No ID do recurso:
PROJECT_ID
pelo ID do projeto no Google Cloud.CLUSTER_NAME
: o nome do cluster.
Console
Acesse a página 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 regional ou zonal 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ê altera ou exclui a tag anexada a um cluster, o GKE pode remover o acesso do usuário a esse cluster de acordo com a aplicação ou não de uma política do IAM com vinculações de papéis condicionais.
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.