Asocia unidades con inquilinos

En este inicio rápido, modificarás tu oferta de SaaS para asociar la unidad de VM implementada con un recurso de arrendatario y aprovisionarás la VM en un proyecto de arrendatario dedicado que sea propiedad de tu arrendatario.

Este enfoque mejora el aislamiento de recursos, lo que te permite administrar los recursos de cada arrendatario por separado y brindar mayor seguridad y cumplimiento para tu oferta de SaaS.

Nos basaremos en la situación del inicio rápido para implementar una instancia de MySQL con App Lifecycle Manager y la modificaremos para asociar la unidad de VM implementada con un recurso de inquilino y aprovisionar la VM en un proyecto dedicado propiedad del inquilino:

  1. Crea un recurso de usuario en App Lifecycle Manager.
  2. Asocia una VM con el recurso del arrendatario.
  3. Configura App Lifecycle Manager y tu configuración de Terraform para implementar recursos en un proyecto de usuario separado.
  4. Aborda los problemas comunes de permisos y habilitación de APIs cuando se realiza la implementación en varios proyectos.

Al final de esta guía de inicio rápido, crearás la base para una oferta de SaaS con varios arrendatarios que te permitirá establecer políticas y parámetros de configuración a nivel del arrendatario creando arrendatarios y asociándolos con unidades.

Antes de comenzar

Antes de crear inquilinos o asociarlos con unidades, debes tener conocimientos básicos sobre el ecosistema de App Lifecycle Manager y crear una oferta de SaaS.

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

  2. Implementa una instancia de MySQL con App Lifecycle Manager, lo que incluye la creación de una configuración de Terraform, un repositorio de Artifact Registry, una oferta de SaaS, un tipo de unidad, una unidad y componentes (incluido terraform-files.zip).

    • Verifica que las APIs que se indican en la sección Antes de comenzar de la guía de inicio rápido estén habilitadas en tu proyecto de productor.
    • Verifica que tengas las cuentas de servicio y los roles de IAM necesarios otorgados dentro del 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.
  3. Tu proyecto de productor y los proyectos de usuario deben crearse antes de que crees y asocies tus recursos de usuario. Para obtener más información, consulta Configura un proyecto de arrendatario.

Crea y asocia un recurso de arrendatario

Puedes usar usuarios para agrupar recursos de unidades. Crea un recurso de usuario en la oferta de SaaS de tu proyecto de productor 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 la página Crear arrendatario, ingresa vm-quickstart-tenant en el cuadro Nombre del arrendatario.

  4. En el cuadro Oferta de SaaS, selecciona vm-quickstart-saas-offering.

  5. En el menú desplegable Región, selecciona us-central1.

  6. Haz clic en Agregar unidad. Aparecerá la sección Unidad nueva.

  7. En el menú desplegable Unidad, selecciona la unidad projects/YOUR-PROJECT-NAME/locations/us-central1/units/vm-quickstart-unit.

  8. Haz clic en Listo para asociar tu recurso vm-quickstart-unit con tu recurso vm-quickstart-tenant.

  9. Haz clic en Crear para crear tu recurso de arrendatario. Creaste correctamente el recurso vm-quickstart-tenant y lo asociaste con el recurso vm-quickstart-unit. Esta asociación principalmente sirve como etiqueta organizativa dentro de la consola deGoogle Cloud , lo que te ayuda a identificar qué unidades pertenecen a qué inquilino.

Crea una versión para usuarios

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

    Ir a Versiones

  2. En la página Lanzamientos, haz clic en Crear.

  3. En la página Crear versión, ingresa vm-quickstart-tenant-release en el cuadro Nombre de la versión.

  4. En el cuadro Tipo de unidad, selecciona vm-quickstart-unit-kind. Haz clic en Siguiente.

  5. En el paso Seleccionar esquema, haz clic en el botón de activación Seleccionar una imagen existente de Artifact Registry.

  6. En el paso Store Blueprint, haz clic en Browse y selecciona el artefacto asociado con vm-quickstart-tenant-blueprint. Haz clic en Siguiente.

  7. Haz clic en Crear. Creaste correctamente el recurso vm-quickstart-tenant-release.

Crea un proyecto de usuario y, luego, implementa una unidad

En el inicio rápido para implementar una instancia de MySQL con App Lifecycle Manager, aprovisionas recursos de App Lifecycle Manager en el mismo proyecto que contiene la configuración de tu oferta de SaaS.

En esta guía de inicio rápido, dirigirás el aprovisionamiento de recursos al proyecto de inquilino en lugar del proyecto de productor.

Deberás pasar variables modificadas tenant_project_id y tenant_project_number durante el aprovisionamiento de la unidad.

  1. Crea un proyecto de usuario en el que implementarás los archivos terraform-vm.zip:

    gcloud projects create quickstart-tenant-project --name="SaaS Tenant A Project"
    
  2. Habilita las APIs y otorga roles de IAM en el proyecto del arrendatario. Para implementar unidades en tu proyecto de arrendatario, debes habilitar la API de Compute Engine y otorgar roles de IAM en tu proyecto de arrendatario.

Habilita las APIs en tu proyecto de usuario

Habilita la API de Compute Engine en el proyecto de usuario con la consola de Google Cloud :

  1. Ve al selector de proyectos.

    Ir al selector de proyectos

  2. Haz clic en Seleccionar un proyecto.

  3. Selecciona quickstart-tenant-project.

  4. Habilita la API de Compute Engine.

    Roles necesarios para habilitar las APIs

    Para habilitar 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 obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.

    Habilitar la API

  5. Asegúrate de tener los siguientes roles en el proyecto: roles/compute.admin

    Verifica los roles

    1. En la consola de Google Cloud , dirígete a la página IAM.

      Ir a IAM
    2. Selecciona el proyecto.
    3. En la columna Principal, busca todas las filas que te identifiquen a ti o a un grupo en el que se te incluya. Para saber en qué grupos estás incluido, comunícate con tu administrador.

    4. Para todas las filas en las que se te especifique o se te incluya, verifica la columna Rol para ver si la lista de roles incluye los roles necesarios.

    Otorga los roles

    1. En la consola de Google Cloud , dirígete a la página IAM.

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Otorgar acceso.
    4. En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.

    5. Haz clic en Seleccionar un rol y, luego, busca el rol.
    6. Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega uno más.
    7. Haz clic en Guardar.

Aprovisiona una unidad con variables del proyecto de usuario

Desde tu proyecto de productor, aprovisiona una unidad nueva con las variables de entrada de tu proyecto de usuario:

  1. Ve al selector de proyectos.

    Ir al selector de proyectos

  2. Haz clic en Seleccionar un proyecto.

  3. Selecciona tu proyecto de productor.

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

    Ir a Unidades

  5. Selecciona el recurso vm-quickstart-unit.

  6. Haz clic en Provision.

  7. Selecciona el recurso vm-quickstart-tenant-release.

  8. Selecciona la cuenta de servicio de activación a la que otorgaste permisos en el proyecto del arrendatario.

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

    • La variable tenant_project_id aparece como la definiste en variables.tf.
    • En el cuadro ID del proyecto del usuario, ingresa quickstart-tenant-project.
  10. 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 usuario.

Realiza una limpieza

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.

  1. En la Google Cloud consola, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. Cuando se te solicite, escribe el ID del proyecto y, luego, haz clic en Cerrar.

¿Qué sigue?