Soluciona problemas de errores de autorización

En esta página, se explican los errores de autorización que podrías encontrar después de los cambios de autorización y cómo resolverlos.

Por lo general, las acciones rechazadas se producen por uno de los siguientes dos motivos:

  • Permisos de la cuenta de servicio de ejecución: El emisor no tiene permiso para actuar como la cuenta de servicio o la cuenta de servicio no tiene los permisos de recursos necesarios. Consulta Errores de la cuenta de servicio de ejecución como.
  • Roles de IAM del emisor: El emisor no tiene el rol de IAM necesario para realizar la acción. Consulta Errores de roles de IAM.

Debido a que Application Integration verifica ambos requisitos, resolver un problema con uno no resuelve automáticamente los problemas con el otro.

Errores de la cuenta de servicio de ejecución como

Debido a que algunas de estas verificaciones de autorización aún se están implementando, es posible que no encuentres todos estos errores de inmediato. En los mensajes de error, PRINCIPAL es la cuenta que evalúa el sistema. El mensaje muestra The caller si no se puede determinar la identidad de la cuenta.

Condición Error o comportamiento Solución
Una principal (usuario, automatización o activador) inicia una integración, pero no tiene permiso para actuar como la cuenta de servicio de ejecución de la integración. La ejecución se rechaza con el siguiente error: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to run this integration.
  • Una llamada a la API devuelve el error directamente y no aparece ninguna entrada en tus registros de ejecución.
  • Un activador de eventos de Cloud Pub/Sub, Eventarc o Integration Connectors registra una ejecución con errores en tus registros de ejecución, y el evento no se vuelve a entregar.
  • Un trabajo de Cloud Scheduler informa un error PERMISSION_DENIED.
Otorga el rol de usuario de cuenta de servicio a la principal que inicia la integración. Para un activador, otorga este rol a la cuenta de servicio del activador.
Una integración creada el 15 de octubre de 2026 o después de esa fecha con un activador que no sea de API o privado no tiene una cuenta de servicio de ejecución. La publicación y las pruebas fallan con el siguiente error: Set a run-as service account. These triggers run with no caller: TRIGGERS. Required for integrations created on or after October 15, 2026 (UTC). Establece una cuenta de servicio de ejecución.
Una ejecución activada sin credenciales de usuario no tiene una cuenta de servicio de ejecución. Si la administración de integraciones está habilitada para la región, la publicación y las pruebas fallarán con el siguiente error, independientemente de la fecha de creación de la integración: Your project requires a run-as service account. Set one before publish or test. La administración se refiere al parámetro de configuración Habilitar administración que se describe en Editar región.

En el caso de las regiones sin administración, el sistema no rechazará estas ejecuciones a partir del 15 de octubre de 2026. Sin embargo, se prevé que los siguientes elementos fallen en una versión futura:
  • Tareas que no tienen una identidad, como las tareas de conectores, de llamada a extremo de REST o de Cloud Run Functions.
  • Ejecuciones asíncronas, que fallarán con el siguiente error: Integration NAME needs a run-as service account to run asynchronously via trigger TRIGGER_ID.
Establece una cuenta de servicio de ejecución.
Una tarea de integración de llamadas no puede iniciar su subintegración. La tarea Integración de llamadas de la integración que realiza la llamada falla por uno de los siguientes motivos:
  • La subintegración se llama de forma asíncrona y no tiene una cuenta de servicio de ejecución, incluso si la integración que llama tiene una: Integration NAME needs a run-as service account to run asynchronously via trigger TRIGGER_ID.
  • La principal que inició la integración de llamada o la cuenta de servicio de ejecución de la integración de llamada no tiene permiso para actuar como la cuenta de servicio de ejecución de la subintegración: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to run this integration.
Establece una cuenta de servicio de ejecución en la subintegración o configura la llamada para que se ejecute de forma síncrona. Luego, otorga el rol de usuario de cuenta de servicio en la cuenta de servicio de la integración secundaria.
Una principal publica o prueba una integración que usa un perfil de autenticación sin permiso para actuar como su cuenta de servicio, o una ejecución alcanza una tarea que usa ese perfil. La publicación o las pruebas fallan, o la tarea falla, con el siguiente error: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to use auth config "AUTH_PROFILE_NAME". Si la ejecución continúa, depende de cómo se configure la tarea para controlar los errores. Otorga el rol de usuario de cuenta de servicio en la cuenta de servicio especificada en el perfil.
Una principal crea o edita un perfil de autenticación de cuenta de servicio o token de OIDC sin permiso para actuar como la cuenta de servicio especificada. No se puede guardar el perfil debido al siguiente error: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to save this auth config. Otorga el rol de usuario de cuenta de servicio en la cuenta que se indica en el perfil a la principal que la administra.
Un aprobador no tiene permiso para actuar como la cuenta de servicio de ejecución. La aprobación o reanudación de la ejecución falla con el siguiente error: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to resume this execution. La ejecución permanece detenida hasta que vence, lo que puede hacer que las aprobaciones parezcan como si hubieran dejado de funcionar. Otorga el rol de usuario de cuenta de servicio a todos los aprobadores potenciales.
Una principal publica o prueba una integración sin permiso para actuar como su cuenta de servicio de ejecución. PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to publish or test this integration. Las versiones publicadas anteriormente siguen ejecutándose. Si usas la automatización para publicar, este error aparecerá en los registros de la canalización de implementación, en lugar de en la consola de Google Cloud . Otorga el rol de usuario de cuenta de servicio a los publicadores, verificadores y cuentas de servicio de implementación automatizada.
Una tarea se ejecuta con las credenciales de la principal que la activó, y esa principal no tiene acceso al recurso de destino. En una integración nueva y, a partir del 15 de octubre de 2026, en una prueba de cualquier integración, las tareas de JavaScript, secuencia de comandos del transformador de datos y asignación de datos funcionan de esta manera. La ejecución se inicia con normalidad, pero una tarea falla y hace referencia a un recurso, incluso si no se realizaron cambios en la integración. Otorga a la principal acceso al recurso o asigna a la integración una cuenta de servicio de ejecución que ya tenga el acceso requerido. Se recomienda usar una cuenta de servicio de ejecución, ya que garantiza que el acceso de la integración siga siendo coherente, independientemente de quién la active.

Para obtener la lista completa de códigos de error de Application Integration, consulta Códigos de error.

Errores de roles de IAM

Además de verificar la cuenta de servicio de ejecución, Application Integration verifica los permisos de IAM del emisor para cada acción. Si encuentras un error PERMISSION_DENIED cuando interactúas con una integración o si no se cargan los registros de ejecución, asegúrate de tener un rol que otorgue los permisos necesarios:

Acción Roles obligatorios
Ver y abrir integraciones roles/integrations.integrationViewer
Consulta los registros y los detalles de la ejecución roles/integrations.integrationViewer o roles/integrations.integrationInvoker
Ejecuta una integración roles/integrations.integrationInvoker o roles/integrations.integrationEditor
Crear y editar integraciones roles/integrations.integrationEditor
Publica una integración roles/integrations.integrationDeployer o roles/integrations.integrationEditor
Cómo aprobar o reanudar una ejecución suspendida roles/integrations.suspensionResolver o roles/integrations.integrationAdmin
Obtén acceso completo a todas las integraciones roles/integrations.integrationAdmin

Para otorgar un rol, ejecuta el siguiente comando:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='user:PRINCIPAL' \
    --role='ROLE'

Para obtener más información, consulta los siguientes recursos:

Soluciona problemas de otorgamientos ineficaces

  • Se otorgó el permiso al proyecto equivocado: El permiso se debe otorgar en el proyecto que es propietario de la cuenta de servicio, que no necesariamente es el proyecto que es propietario de la integración.
  • Retraso de propagación: Las decisiones de autorización se almacenan en caché brevemente, además de los retrasos de propagación estándar de IAM. Espera unos minutos antes de volver a intentarlo.
  • Varias cuentas de servicio involucradas: La cuenta de servicio de ejecución, la cuenta de servicio de cada perfil de autenticación y la cuenta de servicio de ejecución de cada subintegración se evalúan por separado. Cada uno requiere su propio otorgamiento explícito.
  • Permiso otorgado a la principal incorrecta: Para un activador de eventos de Cloud Scheduler, Cloud Pub/Sub, Eventarc o Integration Connectors, la principal que requiere el permiso es la cuenta de servicio del activador, no tu cuenta de usuario. Consulta Quién necesita el rol de usuario de cuenta de servicio.
  • Bloqueado por roles del emisor: El rol de usuario de cuenta de servicio determina si puedes actuar como la cuenta de servicio de ejecución. Sin embargo, un rol de IAM independiente determina si tienes permiso para realizar la acción de integración en sí. Consulta Errores de roles de IAM.