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) |
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) |
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 |
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 |
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 |
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.
Certifique-se de que tem as seguintes funções IAM:
roles/resourcemanager.tagAdmin
roles/resourcemanager.tagUser
Para ver informações sobre as autorizações concedidas por estas funções, consulte a secção Autorizações necessárias.
Certifique-se de que tem um cluster do GKE em execução.
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.
Aceda à página do Google Kubernetes Engine na Trusted Cloud consola.
Na lista de clusters, clique no nome do cluster que quer modificar.
Na secção Metadados, junto a Etiquetas, clique em
Editar etiquetas.Se a sua organização não aparecer no painel Etiquetas, clique em Selecionar âmbito. Selecione a sua organização e clique em Abrir.
No painel Etiquetas, selecione Adicionar etiqueta.
Selecione a chave da etiqueta que quer anexar na lista. Pode filtrar a lista escrevendo palavras-chave.
Selecione o valor da etiqueta que quer anexar na lista. Pode filtrar a lista escrevendo palavras-chave.
Clique em Guardar.
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:
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
Aceda à página do Google Kubernetes Engine na Trusted Cloud consola.
Na lista de clusters, clique no nome do cluster que quer ver.
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
Aceda à página do Google Kubernetes Engine na Trusted Cloud consola.
Na lista de clusters, clique no nome do cluster que quer modificar.
Na secção Metadados, junto a Etiquetas, clique em
Editar etiquetas.No painel Etiquetas, junto à etiqueta que quer desassociar, clique em
Eliminar item.Clique em Guardar.
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 tagBinding
objeto 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?
- Saiba como definir uma política da organização com etiquetas.
- Saiba como gerir etiquetas e anexá-las a recursos.
- Veja os outros serviços que suportam etiquetas.
- Saiba como usar etiquetas com o IAM.