En esta página, se muestra cómo usar etiquetas para administrar los clústeres de Google Kubernetes Engine (GKE) y aplicar de forma condicional las políticas de Identity and Access Management a los nodos.
Descripción general
Las etiquetas son pares clave-valor que te permiten anotar y administrar tus recursos de Google Cloud a nivel de organización o de proyecto. Puedes usar etiquetas para organizar los recursos y aplicar de forma condicional políticas como firewalls o políticas de IAM. Las etiquetas admiten el control de acceso de IAM, que te permite definir quién puede adjuntar, crear, actualizar o borrar etiquetas.
Casos de uso para etiquetas en GKE
Puedes usar etiquetas en GKE para situaciones como las siguientes:
- Aplicar condicionalmente políticas de firewall de red a nodos específicos. Por ejemplo, denegar el tráfico de entrada de la Internet pública a todos los nodos de un clúster en entornos de etapa de pruebas o de prueba. Para obtener instrucciones, consulta Aplica de forma selectiva las políticas de firewall de red en GKE.
- Otorga roles de IAM de forma condicional en función de las etiquetas. Por ejemplo, otorgar automáticamente a los contratistas acceso a entornos específicos que, por lo general, solo estarían disponibles para empleados de tiempo completo. Para obtener instrucciones, consulta el resto de este documento.
- Audita y analiza los datos de facturación según las etiquetas aplicadas a nivel de proyecto o de la organización.
Cómo funciona
Para la aplicación de políticas de firewall de red específicamente, debes crear una etiqueta y designarla de forma explícita para el uso del firewall. Para todos los demás fines, puedes crear una etiqueta sin configurar una designación de firewall.
Después de crear la etiqueta, debes adjuntarla a tus recursos de GKE como un par clave-valor. Para las políticas de firewall de red, usa la API de GKE, mientras que para todos los demás fines, usa la API de etiquetas.
Para cada clave, puedes adjuntar un valor a un recurso. Por ejemplo, si adjuntaste env:dev
a un clúster de GKE, no puedes adjuntar también env:prod
o env:test
. Puedes adjuntar hasta 50 etiquetas que no sean de firewall y hasta cinco etiquetas de firewall a cada recurso.
Métodos de anotación de recursos en GKE
En GKE, existen varios métodos para anotar tus recursos, como se describe en la siguiente tabla:
Tipo de anotación | Descripción | Ejemplo |
---|---|---|
Etiquetas (no son de firewall) |
Para obtener más información, consulta Descripción general de etiquetas. |
Otorgar roles de IAM de forma condicional para controlar el acceso a los recursos que tienen etiquetas específicas. |
Etiquetas (firewall) |
Para obtener más información, consulta Aplica de forma selectiva las políticas de firewall de red en GKE. |
Deniega automáticamente el tráfico de entrada desde la Internet pública a todos los entornos de etapa de pruebas o de prueba |
Etiquetas de red |
Si deseas obtener más información, consulta Usa etiquetas de red para aplicar reglas de firewall a los nodos. |
Deniega automáticamente el tráfico de entrada desde la Internet pública a todos los entornos de etapa de pruebas o de prueba |
Etiquetas de clúster de GKE |
Para obtener más información, consulta Etiquetas de clúster. |
Diferenciar entre clústeres que pertenecen a equipos o centros de costos específicos de tu organización. |
Etiquetas de Kubernetes |
Para obtener más información, consulta Etiquetas y selectores de Kubernetes. |
Requerir que las cargas de trabajo estén programadas en nodos con etiquetas específicas. |
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta
gcloud components update
para obtener la versión más reciente.
Asegúrate de tener los siguientes roles de IAM:
roles/resourcemanager.tagAdmin
roles/resourcemanager.tagUser
Para obtener información sobre los permisos otorgados por estos roles, consulta Permisos obligatorios.
Asegúrate de tener un clúster de GKE en ejecución.
Adjunta etiquetas a un clúster
Puedes adjuntar etiquetas a un clúster existente si tienes los permisos correctos mediante Google Cloud CLI, la API de etiquetas o la consola de Google Cloud.
gcloud
Antes de poder adjuntar una etiqueta a tus recursos de GKE a través de gcloud CLI, debes crear la etiqueta y configurar sus valores. Para crear valores y claves de etiqueta, consulta Crea una etiqueta y Agrega valores de etiqueta.
Para crear una vinculación de etiqueta a fin de adjuntar una etiqueta a un clúster, ejecuta el siguiente comando:
gcloud alpha resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Reemplaza lo siguiente:
TAG_VALUE_ID
: el ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se adjuntará. Por ejemplo,tagValues/4567890123
Para obtener más detalles sobre los identificadores de etiquetas, consulta Identificadores y definiciones de etiquetas.CLUSTER_LOCATION
: la ubicación de Compute Engine. Para los clústeres zonales, especifica la zona de procesamiento.RESOURCE_ID
: el nombre completo del recurso de tu clúster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.En el ID de recurso:
PROJECT_ID
es el ID del proyecto de Google Cloud.CLUSTER_NAME
: Es el nombre del clúster.
Console
Antes de poder adjuntar una etiqueta a tus recursos de GKE a través de la consola de Google Cloud, debes crear la etiqueta y configurar sus valores. Para crear valores y claves de etiqueta, consulta Crea una etiqueta y Agrega valores de etiqueta.
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.
En la sección Metadatos, junto a Etiquetas, haz clic en
Editar etiquetas.Si tu organización no aparece en el panel Etiquetas, haz clic en Seleccionar alcance. Selecciona tu organización y haz clic en Abrir.
En el panel Etiquetas, selecciona Agregar etiqueta.
Selecciona la clave para la etiqueta que deseas adjuntar de la lista. Para filtrar la lista, escribe palabras clave.
Selecciona el valor de la etiqueta que deseas adjuntar de la lista. Para filtrar la lista, escribe palabras clave.
Haz clic en Guardar.
En el cuadro de diálogo Confirmar, haz clic en Confirmar para adjuntar la etiqueta.
Una notificación confirma que se actualizaron tus etiquetas.
API
Para adjuntar una etiqueta a un recurso, primero debes crear una representación JSON de una vinculación de etiqueta que incluya los ID permanentes del valor de la etiqueta y el recurso. Para obtener más información sobre el formato de una vinculación de etiqueta, consulta la Referencia de TagBinding.
Usa el método tagBindings.create
con el extremo regional o zonal en el que se encuentra tu clúster.
POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Reemplaza LOCATION
por la región o zona en la que se encuentra el clúster.
Cuerpo de la solicitud JSON:
{
"parent": "RESOURCE_ID",
"tagValue": "TAG_VALUE_ID"
}
Reemplaza lo siguiente:
RESOURCE_ID
: el nombre completo del recurso de tu clúster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.En el ID de recurso:
PROJECT_ID
es el ID del proyecto de Google Cloud.CLUSTER_NAME
: Es el nombre del clúster.
TAG_VALUE_ID
: el ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se adjuntará. Por ejemplo,tagValues/4567890123
Para obtener más detalles sobre los identificadores de etiquetas, consulta Identificadores y definiciones de etiquetas.
El resultado es similar al siguiente:
{
"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"
}
}
Enumerar las etiquetas adjuntas a un clúster
Puedes enumerar las etiquetas adjuntas a un clúster mediante la gcloud CLI, la consola de Google Cloud o la API de etiquetas.
gcloud
Para obtener una lista de vinculaciones de etiquetas adjuntas a un clúster, ejecuta el siguiente comando:
gcloud alpha resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Reemplaza lo siguiente:
CLUSTER_LOCATION
: Para los clústeres regionales, especifica la región de procesamiento. Para los clústeres zonales, especifica la zona de procesamiento.RESOURCE_ID
: el nombre completo del recurso de tu clúster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.En el ID de recurso:
PROJECT_ID
es el ID del proyecto de Google Cloud.CLUSTER_NAME
: Es el nombre del clúster.
Console
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
En la lista de clústeres, haz clic en el nombre del clúster que deseas ver.
En la sección Metadatos, junto a Etiquetas, busca los valores de etiqueta adjuntos actualmente.
API
Si deseas obtener una lista de vinculaciones de etiquetas de un clúster, usa el método tagBindings.list
con el extremo regional o zonal en el que se encuentra tu clúster.
GET https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Cuerpo de la solicitud JSON:
{
"parent": RESOURCE_ID,
}
Reemplaza lo siguiente:
RESOURCE_ID
: el nombre completo del recurso de tu clúster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.En el ID de recurso:
PROJECT_ID
es el ID del proyecto de Google Cloud.CLUSTER_NAME
: Es el nombre del clúster.
El resultado es similar a este:
"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"
}
]
Desconecta etiquetas de un clúster
Puedes desconectar una etiqueta de un clúster si borras el recurso de vinculación de etiqueta adjunto al clúster mediante la gcloud CLI, la consola de Google Cloud o la API de etiquetas. Si necesitas borrar una etiqueta, primero debes desconectarte de todos los recursos adjuntos.
gcloud
Para desconectar una vinculación de etiqueta adjunta a un clúster, ejecuta el siguiente comando:
gcloud alpha resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Reemplaza lo siguiente:
TAG_VALUE_ID
: el ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se desconectará. Por ejemplo,tagValues/4567890123
Para obtener más detalles sobre los identificadores de etiquetas, consulta Identificadores y definiciones de etiquetas.CLUSTER_LOCATION
: Para los clústeres regionales, especifica la región de procesamiento. Para los clústeres zonales, especifica la zona de procesamiento.RESOURCE_ID
: el nombre completo del recurso de tu clúster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.En el ID de recurso:
PROJECT_ID
es el ID del proyecto de Google Cloud.CLUSTER_NAME
: Es el nombre del clúster.
Console
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.
En la sección Metadatos, junto a Etiquetas, haz clic en
Editar etiquetas.En el panel Etiquetas, junto a la etiqueta que deseas desconectar, haz clic en
Borrar elemento.Haz clic en Guardar.
En el cuadro de diálogo Confirmar, haz clic en Confirmar para desconectar la etiqueta.
Una notificación confirma que se actualizaron tus etiquetas.
API
Para borrar las vinculaciones de etiquetas de un clúster, usa el método tagBindings.delete
con el extremo regional o zonal en el que se encuentra tu clúster.
DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/TAG_BINDING_NAME
Reemplaza TAG_BINDING_NAME
por el nombre completo de recurso del objeto tagBinding
que deseas desconectar. Por ejemplo, tagBindings/container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/tagValues/TAG_VALUE_ID
Borra claves de etiquetas y valores de etiquetas
Antes de borrar las claves y los valores de las etiquetas, asegúrate de que estén desconectadas de todos los recursos. Luego, consulta Borra etiquetas para borrar las claves y los valores.
Etiquetas y condiciones de Identity and Access Management
Puedes usar etiquetas y condiciones de IAM para otorgar de forma condicional vinculaciones de roles a los usuarios en la jerarquía de tu proyecto. Cuando cambias o borras la etiqueta adjunta a un clúster, GKE puede quitar el acceso de usuarios a ese clúster si se aplicó una política de permisos de IAM con vinculaciones de roles condicionales.
La autorización para enumerar y crear clústeres de GKE se verifica a nivel de proyecto, no a nivel de clúster individual. Si usas vinculaciones de roles de IAM condicionales con etiquetas a nivel de clúster para restringir el acceso a clústeres específicos, esos usuarios pueden experimentar errores cuando intentan enumerar o crear clústeres en el proyecto. Para evitar estos errores, adjunta una etiqueta al proyecto superior y usa una vinculación de rol condicional para otorgar la lista o crear acceso. Para obtener información sobre los roles y los permisos, consulta la referencia de roles de IAM.
Para obtener más información sobre los otorgamientos de acceso condicional en IAM, consulta Etiquetas y condiciones de Identity and Access Management.
¿Qué sigue?
- Obtén información sobre cómo establecer una política de la organización con etiquetas.
- Obtén más información sobre cómo administrar etiquetas y adjuntar etiquetas a los recursos.
- Consulta los demás servicios que admiten etiquetas.
- Obtén más información sobre cómo usar etiquetas con IAM.