Configura proyectos y recursos de usuarios

En esta guía, se explica cómo usar los usuarios de App Lifecycle Manager para organizar tus unidades implementadas y cómo implementar recursos en proyectos de usuarios separados para aislar y administrar tus recursos.

Para obtener una descripción general de los usuarios y los proyectos de usuario, consulta Usuarios y proyectos de usuario.

Antes de comenzar

Antes de crear proyectos o recursos de usuarios, haz lo siguiente:

  1. Crea una configuración de Terraform, un repositorio de Artifact Registry y un artefacto que contenga tu aplicación de SaaS en tu proyecto de productor. Consulta cómo implementar una instancia de servicio con App Lifecycle Manager para obtener información sobre cómo configurar una oferta de SaaS.
  2. Habilita las APIs que requiere App Lifecycle Manager.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar las API

  3. Verifica que tengas las cuentas de servicio y los roles de Identity and Access Management necesarios otorgados en el proyecto del productor. Esto incluye la cuenta de servicio creada por el usuario y los permisos otorgados a la cuenta service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com en el proyecto del productor.

Configura un proyecto de usuario

Cuando aprovisionas los recursos de tu arrendatario en proyectos separados, los recursos, las políticas de IAM, las cuotas y las configuraciones de red se separan para cada uno de tus arrendatarios, lo que hace que sea menos probable que los incumplimientos o las configuraciones incorrectas de un arrendatario afecten a los demás.

Necesitarás lo siguiente:

  • un proyecto de un productor
  • un proyecto de usuario para cada uno de tus usuarios

Console

Para configurar proyectos de usuario y de productor con la consola de Google Cloud , haz lo siguiente:

  1. Crea un proyecto de productor y un proyecto de usuario para cada uno de tus usuarios.
  2. Habilita la facturación en tus proyectos de usuario y de productor.
  3. Habilita las APIs que requiere App Lifecycle Manager en tus proyectos de usuario.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar las API

  4. Verifica que tus proyectos de usuarios tengan cuentas de servicio de activación con los permisos requeridos.

    Para obtener más información, consulta Cuentas de servicio de App Lifecycle Manager.

Configuraste correctamente tus proyectos de arrendatario y productor. Una vez que hayas creado y habilitado la facturación para tus proyectos de productor y de usuario, podrás crear recursos de usuario y asociar unidades con usuarios.

gcloud

Para configurar proyectos de productor y de arrendatario con Google Cloud CLI, haz lo siguiente:

  1. Crea tu proyecto de productor y un proyecto de usuario para cada uno de tus usuarios:

    gcloud projects create PRODUCER_PROJECT_ID --name="SaaS producer project" [--folder=folder-id]
    gcloud projects create TENANT_PROJECT_ID --name="SaaS tenant A project" [--folder=folder-id]
    

    Reemplaza lo siguiente:

    • PRODUCER_PROJECT_ID: Es un identificador de cadena que representa el ID del proyecto del productor.
    • TENANT_PROJECT_ID: Es un identificador de cadena que representa el ID del proyecto del arrendatario.
  2. Habilita la facturación para tus proyectos de usuario y de productor:

     gcloud beta billing projects link PRODUCER_PROJECT_ID --billing-account=BILLING_ACCOUNT_ID
     gcloud beta billing projects link TENANT_PROJECT_ID --billing-account=BILLING_ACCOUNT_ID
    

    Reemplaza lo siguiente:

    • PRODUCER_PROJECT_ID: Es un identificador de cadena que representa el ID del proyecto del productor.
    • TENANT_PROJECT_ID: Es un identificador de cadena que representa el ID del proyecto del arrendatario.
    • BILLING_ACCOUNT_ID: Es el ID de la cuenta de facturación que deseas asociar con el proyecto especificado.
  3. Otorga a la cuenta de servicio de activación los roles de Identity and Access Management necesarios para cada proyecto de usuario:

     gcloud projects add-iam-policy-binding TENANT_PROJECT_ID \
     --member='serviceAccount:SERVICE_ACCOUNT@PRODUCER_PROJECT_ID.iam.gserviceaccount.com' \
     --role=ROLE
    

    Reemplaza lo siguiente:

    • TENANT_PROJECT_ID: Es un identificador de cadena que representa el ID del proyecto del arrendatario.
    • PRODUCER_PROJECT_ID: Es un identificador de cadena que representa el ID del proyecto del productor.
    • SERVICE_ACCOUNT: Es la cuenta de servicio a la que deseas otorgar roles en el proyecto especificado.
    • ROLE: Es el rol de Identity and Access Management que se otorgará.

      Deberás ejecutar gcloud projects add-iam-policy-binding para cada rol que quieras otorgar a la cuenta de servicio especificada (--role='roles/compute.admin', por ejemplo).

Configuraste correctamente tus proyectos de arrendatario y productor. Una vez que hayas creado y habilitado la facturación para tus proyectos de productor y de usuario, podrás crear recursos de usuario y asociar unidades con usuarios.

Crea un recurso de usuario

Crea un recurso de usuario en tu oferta de SaaS para representar a tu cliente:

  1. En la consola de Google Cloud , ve a App Lifecycle Manager > Tenants.

    Ir a Grupos de usuarios

  2. Haz clic en Crear.

  3. En el cuadro Nombre del arrendatario, ingresa un nombre para el recurso del arrendatario.

  4. Opcional: En el cuadro Recurso del cliente, proporciona un recurso del consumidor con la configuración definida por el consumidor para la integración.

  5. En el cuadro Oferta de SaaS, selecciona la oferta de SaaS con la que deseas asociar tu usuario.

  6. En el menú desplegable Región, selecciona una región en la que se almacenarán los metadatos del arrendatario.

  7. Opcional: Haz clic en Agregar etiqueta para agregar una etiqueta de par clave-valor a tu arrendatario.

  8. Haz clic en Crear para crear tu recurso de arrendatario.

Creaste correctamente un recurso de arrendatario.

Asocia una unidad con un inquilino

Después de crear un inquilino y, luego, implementar una unidad, puedes vincularlos entre sí. Esta asociación sirve principalmente como una etiqueta organizativa que te ayuda a organizar qué unidades pertenecen a qué inquilino.

Para obtener más información sobre la implementación de unidades, consulta Implementa una VM con App Lifecycle Manager.

Para asociar una unidad con un inquilino, sigue estos pasos:

  1. En la consola de Google Cloud , ve a App Lifecycle Manager > Tenants.

    Ir a Grupos de usuarios

  2. Haz clic en el nombre del arrendatario que deseas asociar a una unidad.

  3. Haz clic en Editar.

  4. En la sección Unidades asociadas, haz clic en Agregar unidad.

  5. Selecciona las unidades que deseas asociar a este usuario.

  6. Haz clic en Listo.

  7. Haz clic en Guardar.

Las unidades seleccionadas están asociadas al usuario indicado.

Aprovisiona una unidad nueva con variables del proyecto de usuario

Cuando aprovisionas una unidad asociada a un arrendatario, debes proporcionar la variable tenant_project_id.

  1. Navega a App Lifecycle Manager > Units en la consola de Google Cloud .

    Ir a Unidades

  2. Crea una unidad nueva asociada a tu tipo de unidad.

  3. Haz clic en Provision.

  4. Selecciona la versión que deseas aprovisionar en la unidad del usuario.

  5. Selecciona la cuenta de servicio de activación a la que otorgaste permisos en tu proyecto de arrendatario. Debes seguir el principio de privilegio mínimo y otorgar solo los roles necesarios para los recursos que se administran.

  6. En la sección Variables de entrada, haz lo siguiente:

    1. Verifica que la variable tenant_project_id aparezca como la definiste en el archivo variables.tf de configuración de Terraform.
    2. En el cuadro ID del proyecto del usuario, proporciona el nombre de tu proyecto del usuario.
    3. Proporciona las variables de entrada definidas en tu configuración de Terraform. Si no definiste otras variables en tu configuración de Terraform, omite este paso.
  7. Haz clic en Provision.

App Lifecycle Manager activa Infrastructure Manager con la cuenta de servicio de activación especificada. Infrastructure Manager lee la variable tenant_project_id y crea la VM dentro de ese proyecto de arrendatario.

Cómo volver a aprovisionar una unidad con una versión nueva

Cuando vuelvas a aprovisionar una unidad existente con un lanzamiento nuevo, debes proporcionar la variable tenant_project_id.

  1. Navega a App Lifecycle Manager > Units en la consola de Google Cloud .

    Ir a Unidades

  2. Selecciona la unidad asociada a tu tipo de unidad.

  3. Haz clic en Edit Provisioning.

  4. Selecciona la versión que creaste con la configuración actualizada de Terraform.

  5. Selecciona la cuenta de servicio de activación a la que otorgaste permisos en tu proyecto de arrendatario. Debes seguir el principio de privilegio mínimo y otorgar solo los roles necesarios para los recursos que se administran.

  6. En la sección Variables de entrada, haz lo siguiente:

    1. Verifica que la variable tenant_project_id aparezca como la definiste en el archivo variables.tf de configuración de Terraform.
    2. En el cuadro ID del proyecto del usuario, proporciona el nombre de tu proyecto del usuario.
    3. Proporciona las variables de entrada definidas en tu configuración de Terraform. Si no definiste otras variables en tu configuración de Terraform, omite este paso.
  7. Haz clic en Actualizar.

App Lifecycle Manager activa Infrastructure Manager con la cuenta de servicio de activación especificada. Infrastructure Manager lee la variable tenant_project_id y crea la VM dentro de ese proyecto de arrendatario.

¿Qué sigue?