Configura proyectos y recursos de usuarios

Los usuarios de App Lifecycle Manager te permiten organizar las unidades implementadas y, además, implementar recursos en proyectos de usuarios independientes para aislar y administrar tu infraestructura.

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 usuario, 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. Para obtener información sobre cómo crear y subir un plano, consulta Crea y sube un plano. Para obtener información sobre cómo configurar una oferta de SaaS, consulta Guía de inicio rápido: Implementa una aplicación con App Lifecycle Manager.
  2. Habilita las APIs que requiere App Lifecycle Manager.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.

    Habilitar las API

  3. Verifica que se hayan creado las cuentas de servicio necesarias y que se hayan otorgado los roles de Identity and Access Management necesarios en el proyecto del productor. Esto incluye la cuenta de servicio creada por el usuario y los roles otorgados al agente de servicio de service-PROJECT_NUMBER@gcp-sa-saasservicemgmt. en el proyecto de productor, en el que PROJECT_NUMBER es el número de tu proyecto de productor.

Configura un proyecto de usuario

Cuando aprovisionas los recursos de tu usuario en proyectos independientes, tus recursos, políticas de IAM, cuotas y parámetros de configuración de red se separan para cada uno de tus usuarios, lo que reduce la probabilidad de que las violaciones de la seguridad o los errores de configuración con un usuario afecten a los demás.

Debes tener lo siguiente:

  • Un proyecto de productor
  • Un proyecto de usuario para cada usuario

Console

Para configurar proyectos de usuario y de productor con la consola de Google Cloud , sigue estos pasos:

  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 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 permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.

    Habilitar las API

  4. Verifica que tus proyectos de usuario tengan cuentas de servicio de ejecución de acciones con los permisos necesarios.

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

Después de crear y habilitar la facturación para tus proyectos de productor y de usuario, puedes crear recursos de usuario y asociar unidades con usuarios.

gcloud

Para configurar proyectos de productor y de usuario 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"
    gcloud projects create \
        TENANT_PROJECT_ID \
        --name="SaaS tenant A project"
    

    Reemplaza lo siguiente:

    • PRODUCER_PROJECT_ID: el ID del proyecto del productor
    • TENANT_PROJECT_ID: Es el ID del proyecto de usuario.
  2. Habilita la facturación para tus proyectos de usuario y productor:

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

    Reemplaza lo siguiente:

    • BILLING_ACCOUNT_ID: Es el ID de la cuenta de facturación que deseas asociar con los proyectos especificados.
  3. Habilita las APIs que requiere App Lifecycle Manager en tus proyectos de usuario:

    gcloud services enable \
        saasservicemgmt.googleapis.com \
        artifactregistry.googleapis.com \
        config.googleapis.com \
        developerconnect.googleapis.com \
        cloudbuild.googleapis.com \
        storage.googleapis.com \
        --project=TENANT_PROJECT_ID
    
  4. Otorga a la cuenta de servicio de ejecución de acciones los roles de IAM necesarios para cada proyecto de usuario:

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

    Reemplaza lo siguiente:

    • SERVICE_ACCOUNT_ID: Es el ID de la cuenta de servicio de ejecución de acciones.
    • ROLE: Es el rol de IAM que se otorgará (por ejemplo, roles/compute.admin).

    Ejecuta gcloud projects add-iam-policy-binding para cada rol que quieras otorgar a la cuenta de servicio especificada.

Después de crear y habilitar la facturación para tus proyectos de productor y de usuario, puedes crear recursos de usuario y asociar unidades con usuarios.

Crea un recurso de usuario

Crea un recurso de usuario final 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 Arrendatarios

  2. Haz clic en Crear.

  3. En el campo Nombre del usuario, ingresa un nombre para tu recurso de usuario.

  4. Opcional: En el campo Recurso del consumidor, ingresa un recurso del consumidor con parámetros de configuración definidos por el consumidor para la integración.

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

  6. En la lista Región, selecciona una región en la que se almacenen los metadatos del usuario.

  7. Opcional: Haz clic en Agregar etiqueta para agregar una etiqueta a tu usuario como un par clave-valor.

  8. Haz clic en Crear.

Asocia una unidad con un usuario

Después de crear un inquilino y de 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 cada usuario.

Para obtener más información sobre la implementación de unidades, consulta Implementa una oferta de SaaS.

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

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

    Ir a Arrendatarios

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

  3. Haz clic en Editar.

  4. En Selecciona una unidad para incluirla en el usuario, haz clic en Agregar unidad.

  5. En la lista Unidad, selecciona la unidad que deseas asociar a este usuario.

  6. Haz clic en Listo.

  7. Haz clic en Guardar.

Las unidades seleccionadas se asocian con el usuario indicado.

Aprovisiona una unidad nueva con variables del proyecto de usuario

Cuando aprovisionas una unidad asociada con un usuario, debes proporcionar las variables tenant_project_id y tenant_project_number.

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

    Ir a Unidades

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

  3. Haz clic en Aprovisionar.

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

  5. En Cuenta de servicio de ejecución de acciones, en la lista Cuenta de servicio, selecciona la cuenta de servicio a la que le otorgaste roles en tu proyecto de usuario. Sigue el principio de privilegio mínimo y otorga solo los roles necesarios para los recursos que se administran.

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

    1. Haz clic en Agregar variables del proyecto de usuario y, luego, selecciona tu proyecto de usuario para propagar las variables tenant_project_id y tenant_project_number.
    2. Opcional: Haz clic en Agregar variable de entrada para ingresar otras variables de entrada definidas en tu configuración de Terraform.
  7. Haz clic en Provision.

App Lifecycle Manager activa Infrastructure Manager con la cuenta de servicio de ejecución de acciones especificada. Infrastructure Manager lee las variables tenant_project_id y tenant_project_number, y aprovisiona los recursos de Terraform dentro de ese proyecto de usuario.

Vuelve a aprovisionar una unidad con una versión nueva

Cuando vuelvas a aprovisionar una unidad existente con una versión nueva, debes proporcionar las variables tenant_project_id y tenant_project_number.

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

    Ir a Unidades

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

  3. Haz clic en Actualizar.

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

  5. En Cuenta de servicio de ejecución de acciones, en la lista Cuenta de servicio, selecciona la cuenta de servicio a la que le otorgaste roles en tu proyecto de usuario. Sigue el principio de privilegio mínimo y otorga solo los roles necesarios para los recursos que se administran.

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

    1. Haz clic en Agregar variables del proyecto de usuario y, luego, selecciona tu proyecto de usuario para propagar las variables tenant_project_id y tenant_project_number.
    2. Opcional: Haz clic en Agregar variable de entrada para ingresar otras variables de entrada definidas en tu configuración de Terraform.
  7. Haz clic en Actualizar.

App Lifecycle Manager activa Infrastructure Manager con la cuenta de servicio de ejecución de acciones especificada. Infrastructure Manager lee las variables tenant_project_id y tenant_project_number, y actualiza los recursos de Terraform dentro de ese proyecto de usuario.

¿Qué sigue?