Usuarios y proyectos de usuarios

En esta guía, se proporciona una descripción general de los usuarios del entorno de ejecución de SaaS y cómo puedes usarlos para organizar tu oferta de SaaS.

Usuarios y proyectos de usuarios

Un recurso de usuario de SaaS Runtime representa un cliente, un cliente o un usuario lógico de tu oferta de SaaS. Actúa principalmente como una herramienta de organización que te ayuda a agrupar las unidades que pertenecen a un inquilino específico.

Si tu oferta de SaaS tiene varios usuarios, te recomendamos que aprovisiones los recursos de cada usuario en un proyecto Google Cloud independiente. Para separar los recursos de tu arrendatario en proyectos Google Cloud dedicados, deberás crear al menos dos proyectos:

  • Proyecto del productor: Es el proyecto en el que se configura tu oferta de SaaS. Solo necesitas un proyecto de productor para tu aplicación de SaaS.
  • Proyectos de usuarios: Son los proyectos con recursos del entorno de ejecución de SaaS para un usuario específico. Te recomendamos que crees un proyecto para cada uno de tus inquilinos.

Usar proyectos separados para cada arrendatario te permite establecer configuraciones (políticas de IAM o interconexión de redes, por ejemplo) dentro de los proyectos de arrendatarios y te ayuda a hacer un seguimiento de los costos y administrar los recursos para cada arrendatario.

Cuentas de servicio de activación en un proyecto de usuario

La cuenta de servicio de activación necesita permisos en el proyecto de inquilino para crear y administrar los recursos definidos en tu configuración de Terraform. Te recomendamos que configures una cuenta de activación independiente para cada uno de tus arrendatarios.

Para obtener más información sobre las cuentas de servicio de activación y sus permisos potencialmente requeridos, consulta cuenta de servicio de activación.

APIs en un proyecto de inquilino

Cuando SaaS Runtime (a través de Infrastructure Manager y la cuenta de servicio de activación) intenta crear recursos (una VM, por ejemplo) en un proyecto de inquilino, las APIs necesarias deben estar habilitadas en ese proyecto de inquilino. De lo contrario, el aprovisionamiento fallará.

Debes habilitar las APIs para todos los tipos de recursos que use tu configuración de Terraform en un proyecto de inquilino.

Usa un tipo de unidad provisional para automatizar la configuración de tu inquilino

Crear proyectos, habilitar APIs y configurar IAM de forma manual para cada arrendatario nuevo lleva mucho tiempo y es propenso a errores. Puedes automatizar el proceso de configuración del arrendatario con el entorno de ejecución de SaaS creando un tipo de unidad provisional que contenga una configuración de Terraform que haga lo siguiente:

  • Crea un proyecto Google Cloud nuevo para el inquilino.
  • Habilita las APIs necesarias en ese proyecto nuevo.
  • Crea una cuenta de servicio de activación dedicada para el inquilino aprovisionado (ya sea en el proyecto del productor o en el proyecto del inquilino).
  • Otorga los permisos de IAM necesarios a las cuentas de servicio dentro del proyecto del arrendatario.
  • Configura redes, registros o cualquier otra infraestructura básica.

Tu tipo de unidad provisional debe cumplir con los siguientes requisitos:

  • Define las variables output de Terraform para tenant_project_id, tenant_project_number y el correo electrónico actuation_sa que crea.
  • Recibe el tenant_id como una variable input.

Configura el tipo de unidad de la aplicación para que dependa del tipo de unidad provisional y asigna las variables de salida a las variables de entrada correspondientes de la unidad de la aplicación.

Después de configurar las dependencias de tu tipo de unidad, el tiempo de ejecución de SaaS verifica que se aprovisione la unidad de infraestructura subyacente del inquilino (creando un proyecto de inquilino y configurando sus permisos) antes de que se aprovisione la unidad que contiene tu aplicación.

Consulta Administra las dependencias entre unidades y usa variables para obtener más detalles sobre la implementación de este patrón.

¿Qué sigue?