En esta página se describe cómo usar etiquetas con Gestión de Identidades y Accesos (IAM) para controlar el acceso a tus Trusted Cloud by S3NS recursos.
Para obtener más información sobre las etiquetas, consulte el artículo Descripción general de las etiquetas.
Descripción general de las etiquetas
Una etiqueta es un par clave-valor que se adjunta a un Trusted Cloud recurso. Puedes conceder roles de gestión de identidades y accesos de forma condicional o denegar permisos de gestión de identidades y accesos de forma condicional en función de si un recurso tiene una etiqueta específica.
Los recursos heredan los valores de las etiquetas de su organización, carpetas y proyecto superiores. Por lo tanto, puedes usar etiquetas para gestionar el acceso a cualquierTrusted Cloud recurso.
Estos son algunos casos prácticos habituales para gestionar el acceso con etiquetas:
- Entornos de desarrollo, de staging y de producción. Por ejemplo, puedes añadir las etiquetas
environment: dev
a tu entorno de desarrollo yenvironment: prod
a tu entorno de producción. - Tipos de componentes. Por ejemplo, puedes añadir las etiquetas
component: frontend
a los recursos del frontend ycomponent: batch
a los recursos del procesamiento por lotes. - Nombres de proyecto. Por ejemplo, si tu equipo está trabajando en un proyecto con el nombre en clave Atlas, puedes añadir la etiqueta
project: atlas
a los recursos de desarrollo del equipo.
Definiciones e identificadores de etiquetas
Antes de asociar etiquetas a los recursos, debe definir la clave de la etiqueta, así como los valores que permite. Puedes crear estas definiciones a nivel de organización o de proyecto. Usa Gestor de recursos para gestionar las definiciones de etiquetas. Para obtener más información, consulta Crear y definir una etiqueta.
Cada clave y valor de etiqueta tiene varios identificadores diferentes:
-
Un ID permanente, que es único a nivel mundial y no se puede reutilizar. Por ejemplo, una clave de etiqueta podría tener el ID permanente
tagKeys/123456789012
y un valor de etiqueta podría tener el ID permanentetagValues/567890123456
. -
Un nombre corto. El nombre abreviado de cada clave debe ser único en el proyecto o la organización en la que se defina la clave, y el nombre abreviado de cada valor debe ser único para la clave asociada. Por ejemplo, una clave de etiqueta podría tener el nombre abreviado
env
y un valor de etiqueta podría tener el nombre abreviadoprod
. -
Un nombre con espacio de nombres, que añade el ID numérico de tu organización o el ID del proyecto al nombre corto de una clave de etiqueta. Por ejemplo, una clave de etiqueta creada para una organización podría tener el nombre con espacio de nombres
123456789012/env
. Para saber cómo obtener el ID de tu organización, consulta el artículo Obtener el ID de recurso de tu organización. Una clave de etiqueta creada para un proyecto podría tener el nombre con espacio de nombresmyproject/env
. Para saber cómo obtener el ID de tu proyecto, consulta el artículo sobre cómo identificar proyectos.
Como se explica en esta página, después de asociar etiquetas a un recurso, puede escribir condiciones para conceder acceso en función de las etiquetas. Para escribir una condición, debe elegir qué tipo de identificador quiere usar en ella. Siga estas directrices para elegir entre ellos:
- Para experimentar con las etiquetas, puedes usar el nombre con espacio de nombres (para las claves) y el nombre corto (para los valores). Estos identificadores son más fáciles de entender y recordar, sobre todo al principio.
Si gestionas tu configuración de forma declarativa con una herramienta como Terraform, te recomendamos que uses el nombre con espacio de nombres (para las claves) y el nombre corto (para los valores). Puedes reutilizar estos identificadores a lo largo del tiempo, lo que significa que una herramienta declarativa puede eliminarlos y volver a crearlos, y tus condiciones seguirán funcionando.
Sin embargo, este enfoque tiene un inconveniente: supongamos que elimina una clave o un valor de etiqueta y, a continuación, crea una clave o un valor con el mismo nombre, pero con un significado diferente. Si la condición hace referencia al nombre con espacio de nombres o al nombre abreviado, la condición se sigue aplicando a la nueva clave o valor.
En algunos casos, este comportamiento puede provocar que las entidades consigan acceso a elementos a los que no querías que accedieran.
Para minimizar los riesgos, te recomendamos que uses IDs permanentes, que nunca se pueden reutilizar.
Estos son los motivos por los que los IDs permanentes ayudan a minimizar los riesgos: supongamos que elimina una clave o un valor de etiqueta y, a continuación, crea una clave o un valor con el mismo nombre, pero con un significado diferente. Si la condición hace referencia al ID permanente, no se aplica a la nueva clave ni al nuevo valor. Por lo tanto, es menos probable que las entidades consigan acceso a recursos a los que no quieres que accedan.
Un inconveniente es que, si eliminas y vuelves a crear claves y valores, y quieres conservar el acceso de las entidades, también debes actualizar tus políticas de permisos para que hagan referencia a los nuevos IDs permanentes.
Acceso a recursos etiquetados
Puedes usar etiquetas con condiciones de gestión de identidades y accesos para conceder un rol de forma condicional, en función de las etiquetas que se hayan adjuntado a un recurso o que este haya heredado. Si una condición se evalúa como true
, se concede acceso. De lo contrario, no se concede acceso. Para obtener más información, consulta la introducción a las condiciones de gestión de identidades y accesos.
Algunas áreas de la consola Trusted Cloud no reconocen las vinculaciones de roles de políticas de permiso con condiciones basadas en etiquetas. Por lo tanto, si tienes un rol con una condición basada en etiquetas, es posible que la consola Trusted Cloud te impida realizar determinadas acciones por error. Si te encuentras con este problema, utiliza un método alternativo, como la CLI de gcloud, para realizar la acción.
En las siguientes secciones se muestran ejemplos de expresiones de condición que comprueban las etiquetas de un recurso. La condición llama a diferentes funciones en función de si comprueba el ID permanente o el nombre abreviado. Para obtener más información sobre estas funciones, consulta Etiquetas de recursos.
Condiciones que usan IDs permanentes
Esta condición concede un rol en los recursos con la etiqueta
tagKeys/123456789012: tagValues/567890123456
:
resource.matchTagId('tagKeys/123456789012', 'tagValues/567890123456')
Esta condición asigna un rol a los recursos que tienen cualquier etiqueta con la clave tagKeys/123456789012
, independientemente de su valor:
resource.hasTagKeyId('tagKeys/123456789012')
Esta condición concede un rol en los recursos que tienen la etiqueta tagKeys/123456789012: tagValues/567890123456
y cualquier etiqueta que use la clave tagKeys/987654321098
:
resource.matchTagId('tagKeys/123456789012', 'tagValues/567890123456') &&
resource.hasTagKeyId('tagKeys/987654321098')
Condiciones que usan nombres con espacio de nombres y nombres cortos
Esta condición asigna un rol a los recursos con la etiqueta env: prod
, lo que indica que el recurso está en un entorno de producción:
resource.matchTag('123456789012/env', 'prod')
Esta condición asigna un rol a los recursos que tienen cualquier etiqueta con la clave env
, independientemente de su valor:
resource.hasTagKey('123456789012/env')
Esta condición asigna un rol a los recursos que tienen la etiqueta env: prod
y cualquier etiqueta que use la clave project
:
resource.matchTag('123456789012/env', 'prod') &&
resource.hasTagKey('123456789012/project')
Siguientes pasos
- Consulta cómo gestionar etiquetas y adjuntarlas a recursos.
- Consulta los detalles sobre cómo comprobar etiquetas en una condición.