Referencia de atributos de condiciones de gestión de identidades y accesos

En este documento se describen los atributos admitidos en una expresión de condición.

Atributos de condición admitidos

En las siguientes secciones se resumen los atributos admitidos y se indica qué servicios deGoogle Cloud reconocen cada atributo.

Atributos de recursos

Los siguientes atributos están relacionados con el recurso que es el tema de la solicitud.

Atributo Resumen de uso Servicios Google Cloud admitidos
Atributo de servicio de recursos

Gestionar el acceso en función del Google Cloud servicio que se esté usando.

Puede usar este atributo en las vinculaciones de roles de la política de permiso.

  • Apigee
  • Application Integration
  • Hub de APIs de Apigee
  • Servicio de copia de seguridad y DR
  • BigQuery
  • API Reservation de BigQuery
  • Bigtable
  • Autorización binaria
  • Cloud Deploy
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Google Kubernetes Engine
  • Firestore
  • Identity-Aware Proxy
  • Integration Connectors
  • Google Cloud Managed Service para Apache Kafka
  • Gestor de parámetros
  • Cloud NGFW
  • Pub/Sub Lite
  • Resource Manager
  • Secret Manager
  • Spanner
Atributo de tipo de recurso

Gestiona el acceso en función del tipo de recurso.

Puede usar este atributo en las vinculaciones de roles de la política de permiso.

  • Apigee
  • Application Integration
  • Hub de APIs de Apigee
  • BigQuery
  • API Reservation de BigQuery
  • Bigtable
  • Autorización binaria
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Google Kubernetes Engine
  • Firestore
  • Cloud NGFW
  • Identity-Aware Proxy
  • Integration Connectors
  • Google Cloud Managed Service para Apache Kafka
  • Gestor de parámetros
  • Pub/Sub Lite
  • Resource Manager
  • Secret Manager
  • Spanner
Atributo de nombre de recurso

Gestionar el acceso en función del nombre del recurso.

Puede usar este atributo en las vinculaciones de roles de la política de permiso.

  • Apigee
  • Application Integration
  • Hub de APIs de Apigee
  • Servicio de copia de seguridad y DR
  • BigQuery
  • API Reservation de BigQuery
  • Bigtable
  • Autorización binaria
  • Cloud Deploy
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Google Kubernetes Engine
  • Firestore
  • Cloud NGFW
  • Integration Connectors
  • Google Cloud Managed Service para Apache Kafka
  • Gestor de parámetros
  • Pub/Sub Lite
  • Secret Manager
  • Spanner
Etiquetas de recursos

Gestionar el acceso en función de las etiquetas asociadas al recurso.

Puede usar este atributo en los siguientes lugares:

  • Permitir vinculaciones de roles de políticas
  • Reglas de denegación de políticas de denegación

Todos los Google Cloud servicios (consulta Compatibilidad con condiciones heredadas)

Para obtener más información sobre los atributos de recursos, consulta la sección Atributos de recursos de esta página.

Atributos principales

Los siguientes atributos están relacionados con la entidad de seguridad que hace la solicitud.

Atributo Resumen de uso Tipos de principales admitidos

Atributo de tipo principal

Aplica políticas en función del tipo de principal de la solicitud.

Puede usar este atributo en las vinculaciones de políticas de las políticas de límites de acceso de entidades.

  • Cuentas de Google
  • Identidades de grupos de identidades de Workforce
  • Identidades de grupos de identidades de carga de trabajo
  • Cuentas de servicio

Atributo de asunto principal

Aplica políticas basadas en la identidad de la entidad de seguridad de la solicitud.

Puede usar este atributo en las vinculaciones de políticas de las políticas de límites de acceso de entidades.

  • Cuentas de Google
  • Identidades de grupos de identidades de Workforce
  • Identidades de grupos de identidades de carga de trabajo
  • Cuentas de servicio

Para obtener más información sobre los atributos principales, consulta la sección Atributos principales de esta página.

Atributos request

Los siguientes atributos están relacionados con los detalles de la solicitud.

Atributo Resumen de uso Servicios Google Cloud admitidos

Atributo de niveles de acceso

Gestionar el acceso en función de niveles de acceso específicos.

Un nivel de acceso es un atributo calculado a partir de atributos sin procesar sobre la solicitud y el solicitante, como la dirección IP de origen, los atributos del dispositivo y la hora del día. Por ejemplo, un onNetwork nivel de acceso puede requerir que el dispositivo que realiza la solicitud proceda de un intervalo de direcciones IP concreto. Los administradores de una organización definen los niveles de acceso.

Puede usar este atributo en las vinculaciones de roles de la política de permiso.

Identity-Aware Proxy

Atributos de la API

Gestionar el acceso en función de los datos proporcionados por una API o un servicio específicos. Google Cloud

Puede usar este atributo en las vinculaciones de roles de la política de permiso.

  • API Gateway
  • AutoML
  • Servicio de Autoridades de Certificación
  • Cloud Run Functions
  • API de Cloud Healthcare
  • Cloud Key Management Service
  • Cloud Run
  • API Cloud Runtime Configuration
  • Cloud Storage
  • Compute Engine
  • Artifact Analysis
  • Dataproc
  • Earth Engine
  • Game Servers
  • Gestión de Identidades y Accesos
  • Identity-Aware Proxy
  • Servicio gestionado de Microsoft Active Directory
  • Cuadernos gestionados por usuarios
  • Resource Manager
  • Secret Manager
  • Service Management

Atributos de fecha y hora

Configura el acceso a los recursos de Google Cloud para que caduque, se programe o tenga una duración limitada.

Puede usar estos atributos en las vinculaciones de roles de la política de permiso.

Todos los Google Cloud servicios (consulta Compatibilidad con condiciones heredadas)

Atributos de IP o puerto de destino

Gestiona el acceso en función de la dirección IP y/o el puerto de destino de una solicitud. Por ejemplo, una instancia de máquina virtual (VM) de Compute Engine puede exponer una IP externa, como 10.0.0.2, pero el puerto 22 solo se puede exponer para uso administrativo.

Se usa para el reenvío de TCP de Identity-Aware Proxy.

Puede usar estos atributos en las vinculaciones de roles de la política de permiso.

Identity-Aware Proxy

Atributos de la regla de reenvío

Especifica los tipos de reglas de reenvío que puede crear una entidad. Por ejemplo, puede permitir que un principal cree reglas de reenvío para balanceadores de carga internos Google Cloud , que gestionan el tráfico que se origina en una Google Cloud red, pero no para balanceadores de carga externos Google Cloud , que gestionan el tráfico que se origina en Internet.

Puede usar estos atributos en las vinculaciones de roles de la política de permiso.

Atributos de ruta o host de URL

Gestiona el acceso en función de la ruta de la URL o del host de una solicitud. Por ejemplo, una condición podría especificar que https://example.com es la aplicación principal a la que puede acceder un dominio general de usuarios, mientras que https://hr.example.com/admin se usa para acceder a una página de la aplicación a la que solo pueden acceder los administradores de Recursos Humanos.

Puede usar estos atributos en las vinculaciones de roles de la política de permiso.

  • Identity-Aware Proxy
  • Cloud Run

Para obtener más información sobre los atributos de solicitud, consulta la sección Atributos de solicitud de esta página.

Compatibilidad con condiciones heredadas

Algunos tipos de Google Cloud recursos no permiten condiciones en sus políticas de permiso. Sin embargo, puedes añadir enlaces de roles condicionales a nivel de organización, carpeta o proyecto, y otros recursos heredarán esos enlaces de roles a través de la jerarquía de recursos. Para obtener más información, consulta Tipos de recursos que aceptan enlaces de roles condicionales.

Cuando uses atributos a nivel de organización, carpeta o proyecto, ten en cuenta que la mayoría de los atributos solo están disponibles para tipos de recursos específicos. Si una parte de una condición usa un atributo que no está disponible, esa parte de la condición nunca se interpreta como que concede acceso. Por ejemplo, la condición resource.name.endsWith == devResource nunca concederá acceso a ningún recurso de gestión de identidades y accesos, ya que los recursos de gestión de identidades y accesos no proporcionan el nombre del recurso.

Para evitar este problema, utilice los atributos tipo de recurso y servicio de recurso que se describen en esta página para limitar el ámbito de la condición. Por ejemplo, la siguiente condición se evalúa como true para todos los tipos de recursos que no sean instancias de Compute Engine. Por el contrario, en el caso de las instancias de Compute Engine, la condición comprueba el nombre del recurso:

resource.type != 'compute.googleapis.com/Disk' ||
    resource.name.endsWith('devResource')

No es necesario que limites el ámbito de las condiciones que comprueban las etiquetas asociadas a un recurso. Cuando una condición comprueba las claves y los valores de las etiquetas, no puede comprobar ningún otro atributo, incluidos el tipo de recurso y el servicio de recursos.

Atributos de recursos

Los atributos de servicio de recursos, tipo de recurso y nombre de recurso se suelen usar para cambiar el ámbito de una concesión de acceso proporcionada por el enlace de rol. Cuando un rol contiene permisos que se aplican a diferentes atributos específicos de un recurso, se pueden usar condiciones basadas en recursos para conceder un subconjunto de los permisos del rol a tipos o servicios específicos.

Atributo resource.service

El atributo resource.service le permite definir una condición en función delGoogle Cloud servicio que se esté usando. Por ejemplo, puedes definir una condición que limite el acceso de un usuario a los recursos que usan el servicio cloudresourcemanager.googleapis.com. Para ver una lista de los valores admitidos, consulta Valores del servicio de recursos.

Puede usar el atributo resource.service en las vinculaciones de roles de la política de permiso.

Variable de atributo resource.service
Tipo de atributo

string

Para ver una lista de los valores admitidos, consulta Valores del servicio de recursos.

Operadores admitidos ,
Detalles Cuando utilice el atributo resource.type en las condiciones, compruebe si el atributo es exactamente igual () o exactamente distinto (). Otras comparaciones, como comprobar si hay un prefijo o un sufijo, pueden dar resultados inesperados.
Ejemplo

Devuelve true para los recursos de Compute Engine:

resource.service == "compute.googleapis.com"
Servicios admitidos
  • Apigee
  • Application Integration
  • Hub de APIs de Apigee
  • Servicio de copia de seguridad y DR
  • BigQuery
  • API Reservation de BigQuery
  • Bigtable
  • Autorización binaria
  • Cloud Deploy
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Google Kubernetes Engine
  • Firestore
  • Identity-Aware Proxy
  • Integration Connectors
  • Google Cloud Managed Service para Apache Kafka
  • Gestor de parámetros
  • Cloud NGFW
  • Pub/Sub Lite
  • Resource Manager
  • Secret Manager
  • Spanner

Atributo resource.type

El atributo resource.type le permite definir una condición en función del tipo de recurso. Por ejemplo, puedes definir una condición que limite el acceso de un usuario a los recursos de tipo storage.googleapis.com/Object. Para ver una lista de los valores admitidos, consulta Valores de tipo de recurso.

Si tu condición usa el atributo resource.name, te recomendamos que utilices el atributo resource.type para controlar a qué tipos de recursos se aplica la condición. Para obtener más información, consulta el atributo resource.name en esta página.

Puede usar el atributo resource.type en las vinculaciones de roles de la política de permiso.

Variable de atributo resource.type
Tipo de atributo

string

Para ver una lista de los valores admitidos, consulta Valores de tipo de recurso.

Operadores admitidos ,
Detalles Cuando utilice el atributo resource.type en las condiciones, compruebe si el atributo es exactamente igual () o exactamente distinto (). Otras comparaciones, como comprobar si hay un prefijo o un sufijo, pueden dar resultados inesperados.
Ejemplos

Devuelve true a menos que el recurso sea una imagen de Compute Engine:

resource.type != "compute.googleapis.com/Image"

Devuelve true solo si el recurso es una imagen o un disco persistente de Compute Engine:

(resource.type == "compute.googleapis.com/Image" ||
 resource.type == "compute.googleapis.com/Disk")
Tipos de recursos admitidos
Apigee
  • Atributos de producto de API
  • Productos de API
  • Proxies de APIs
  • Entradas de mapas clave-valor de proxies de APIs
  • Mapas de valores clave de proxies de API
  • Revisiones de proxies de API
  • Cachés
  • Atributos de aplicación de desarrollador
  • Aplicaciones para desarrolladores
  • Atributos de desarrollador
  • Desarrolladores
  • Entradas de mapa de clave-valor de entorno
  • Mapas de clave-valor de entorno
  • Exportaciones
  • Hooks de flujos
  • Alias del almacén de claves
  • Almacenes de claves
  • Consultas
  • Planes de precios
  • Referencias
  • Revisiones de flujos compartidos
  • Flujos compartidos
  • Servidores de destino
  • Sesiones de seguimiento (depuración)
Application Integration
  • Configuraciones de autorización
  • Ejecuciones
  • Versiones de integración
  • Integraciones
  • Ubicaciones
  • Suspensiones
Hub de APIs de Apigee
  • APIs
  • Operaciones con el API
  • Definiciones
  • Despliegues
  • Especificaciones
  • Versiones
Servicio de copia de seguridad y DR
  • Depósitos de copias de seguridad
BigQuery
  • Conjuntos de datos
  • Modelos
  • Rutinas
  • Tablas
API Reservation de BigQuery
  • Tareas
  • Reservas de BI
  • Compromisos de capacidad
  • Ubicaciones
  • Reservas
Bigtable
  • Clústeres
  • Instancias
  • Tablas
Autorización binaria
  • Encargados de la atestación
  • Configuraciones de validación continua
  • Políticas
Cloud Key Management Service
  • Versiones de claves criptográficas
  • Claves criptográficas
  • Conjuntos de claves
  • Ubicaciones
Cloud Logging
  • Segmentos de registros
  • Vistas de registros
Cloud NGFW
  • Grupos de direcciones
Cloud SQL
  • Ejecuciones de copias de seguridad
  • Instancias
Cloud Storage
  • Segmentos
  • Carpetas gestionadas
  • Objetos
Compute Engine
  • Servicios de backend (globales y regionales)
  • Cortafuegos
  • Reglas de reenvío (globales y regionales)
  • Imágenes
  • Plantillas de instancia
  • Instancias
  • Discos persistentes (regionales y de zona)
  • Capturas
  • Proxies HTTP(S) de destino (globales y regionales)
  • Proxies SSL de destino
  • Proxies TCP de destino
Dataform
  • Resultados de la compilación
  • Ubicaciones
  • Configuraciones de lanzamiento
  • Repositorios
  • Configuraciones de flujo de trabajo
  • Invocaciones de flujos de trabajo
  • Espacios de trabajo
Google Cloud
  • Ubicaciones1
Google Kubernetes Engine
  • Clústeres
Firestore
  • Bases de datos
Identity-Aware Proxy
  • Todos los servicios de backend y las aplicaciones de App Engine
  • Todos los recursos de túneles
  • Todas las zonas de túneles
  • Todos los servicios web
  • Versiones de servicio de aplicaciones de App Engine
  • Servicios de aplicaciones de App Engine
  • Servicios de backend de Compute Engine
  • Instancias de túnel
Integration Connectors
  • Conexiones
  • Metadatos de esquema de conexión
  • Archivos adjuntos de los endpoints
  • Suscripciones a eventos
  • Zonas gestionadas
Google Cloud Managed Service para Apache Kafka
  • Clústeres
  • Grupos de consumidores
  • Operaciones
  • Temas
Gestor de parámetros
  • Versiones de los parámetros
  • Parámetros
Pub/Sub Lite
  • Ubicaciones
  • Suscripciones
  • Temas
Resource Manager
  • Proyectos
Secret Manager
  • Versiones de secretos
  • Secretos
Spanner
  • Copias de seguridad
  • Bases de datos
  • Instancias

1 Cloud Key Management Service usa este tipo de recurso como elemento superior de los recursos de conjunto de claves.

Atributo resource.name

El atributo resource.name le permite definir una condición basada en todo o parte de un nombre de recurso. Para ver una lista de formatos de nombres de recursos, consulta Formato de nombre de recurso.

El atributo resource.name solo está disponible para determinados tipos de recursos, que se indican en la tabla de esta sección. Te recomendamos que limites la aplicabilidad de la condición al tipo de recurso previsto. Si un rol contiene permisos para un tipo de recurso que no proporciona el atributo resource.name, debes asegurarte de que esos permisos no estén restringidos por la parte de la condición que comprueba resource.name.

En el siguiente ejemplo se muestra cómo asegurar este comportamiento. En este ejemplo, la condición permite el acceso a todos los tipos de recursos, excepto a los segmentos y objetos de Cloud Storage. Por el contrario, en el caso de los segmentos y los objetos, la condición solo permite el acceso al segmento example-bucket y a los objetos que contiene:

(resource.type != 'storage.googleapis.com/Bucket' &&
 resource.type != 'storage.googleapis.com/Object') ||
resource.name.startsWith('projects/_/buckets/example-bucket')

Ten en cuenta que la primera parte de la condición comprueba si el recurso no es un segmento ni un objeto. Si el recurso es de otro tipo, toda la condición se evalúa como true, independientemente del nombre del recurso.

Ten en cuenta también que la condición comprueba el atributo resource.type, no el atributo resource.service. Comprobar el atributo resource.type tiene varias ventajas:

  • Limita la comprobación de resource.name al conjunto de recursos adecuado. Por ejemplo, si quieres conceder acceso a instancias de Compute Engine con un nombre específico, es lógico excluir todos los tipos de recursos que no sean instancias de Compute Engine.
  • De esta forma, se evita que el ámbito de la condición cambie si un servicio añade nuevos tipos de recursos en el futuro.

Por último, ten en cuenta que la condición usa la función startsWith() para evaluar el nombre del recurso, en lugar de comprobar la igualdad con el operador . Como la condición se fija en el inicio del nombre del recurso, coincide con un segmento y con los objetos de ese segmento. Si se comprueba la igualdad, solo coincidirá con el segmento.

No puedes usar caracteres comodín, como *, para buscar coincidencias en varios nombres de recursos. Plantéate estas alternativas:

  • Usa la función extract() para extraer un valor de un nombre de recurso. Por ejemplo, puedes extraer un ID de proyecto del nombre de recurso de una instancia de VM de Compute Engine y, a continuación, escribir una expresión de condición que haga referencia al ID de proyecto.

    Para obtener más información, consulta la sección Extraer valores de atributos de esta página.

  • Usa la función startsWith() o endsWith() para escribir una condición que evalúe el inicio o el final del nombre del recurso.

Puede usar el atributo resource.name en las vinculaciones de roles de la política de permiso.

Variable de atributo resource.name
Tipo de atributo

string

Cada tipo de recurso usa un formato específico para el nombre del recurso. Para ver una lista de formatos, consulta Formato de nombre de recurso.

Funciones y operadores admitidos startsWith(), endsWith(), extract(), ,
Detalles

El resource.name contiene el nombre de recurso relativo del recurso de destino de la solicitud. El nombre de recurso relativo es una ruta de URI sin una barra inclinada inicial (/).

La función startsWith() toma el literal de cadena de prefijo que se va a evaluar con resource.name.

La función endsWith() toma el literal de cadena de sufijo que se va a evaluar con resource.name.

La función extract() usa una plantilla de extracción para extraer parte de resource.name. Para obtener más información, consulta el artículo Extraer valores de nombres de recursos de esta página.

Los operadores y se usan para comparar con todo el resource.name o con una parte extraída del resource.name.

Ejemplos

Devuelve true a menos que el nombre del recurso identifique un segmento de Cloud Storage llamado secret-bucket-123:

resource.name != "projects/_/buckets/secret-bucket-123"

Devuelve true si el nombre del recurso empieza por el prefijo especificado, con el formato que usan las instancias de VM de Compute Engine: