Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Administrar los inquilinos de varios productos SaaS en un único plano de control
Creado por Ramanna Avancha (AWS), Jenifer Pascal (AWS), Kishan Kavala (AWS) y Anusha Mandava (AWS)
Resumen
Este patrón muestra cómo gestionar los ciclos de vida de los inquilinos en varios productos de software como servicio (SaaS) en un único plano de control en la nube de AWS. La arquitectura de referencia proporcionada puede ayudar a las organizaciones a reducir la implementación de características redundantes y compartidas en sus productos SaaS individuales y a proporcionar eficiencias de gobierno a escala.
Las grandes empresas pueden tener varios productos SaaS en varias unidades de negocio. A menudo, estos productos deben aprovisionarse para que los utilicen inquilinos externos con diferentes niveles de suscripción. Sin una solución de usuario común, los administradores de TI deben dedicar tiempo a administrar funciones indiferenciadas en varios APIs SaaS, en lugar de centrarse en el desarrollo de las funciones principales del producto.
La solución de inquilino común que se proporciona en este patrón puede ayudar a centralizar la administración de muchas de las características de los productos SaaS compartidos de una organización, incluidas las siguientes:
Seguridad
Aprovisionamiento de inquilinos
Almacenamiento de datos del inquilino
Comunicaciones con los inquilinos
Gestión de productos
Registro y supervisión de métricas
Requisitos previos y limitaciones
Requisitos previos
Una cuenta de AWS activa
Conocimiento de Amazon Cognito o de un proveedor de identidades (IdP) externo
Conocimiento de Amazon API Gateway
Conocimiento de AWS Lambda
Conocimiento de Amazon DynamoDB
Conocimientos de AWS Identity and Access Management (IAM)
Conocimiento de AWS Step Functions
Conocimiento de AWS CloudTrail y Amazon CloudWatch
Conocimiento de las bibliotecas y el código de Python
Conocimiento del SaaS APIs, incluidos los diferentes tipos de usuarios (organizaciones, inquilinos, administradores y usuarios de aplicaciones), los modelos de suscripción y los modelos de aislamiento de inquilinos
Conocimiento de los requisitos de SaaS multiproducto y de las suscripciones multiusuario de su organización
Limitaciones
Las integraciones entre la solución de inquilino común y los productos SaaS individuales no se incluyen en este patrón.
Este patrón implementa el servicio Amazon Cognito únicamente en una sola región de AWS.
Arquitectura
Pila de tecnología de destino
Amazon API Gateway
Amazon Cognito
AWS CloudTrail
Amazon CloudWatch
Amazon DynamoDB
IAM
AWS Lambda
Amazon Simple Storage Service (Amazon S3)
Amazon Simple Notification Service (Amazon SNS)
AWS Step Functions
Arquitectura de destino
El siguiente diagrama muestra un ejemplo de flujo de trabajo para administrar los ciclos de vida de los inquilinos en varios productos SaaS en un único plano de control en la nube de AWS.

En el diagrama, se muestra el siguiente flujo de trabajo:
Un usuario de AWS inicia el aprovisionamiento de inquilinos, el aprovisionamiento de productos o las acciones relacionadas con la administración mediante una llamada a un punto de conexión de API Gateway.
El usuario se autentica mediante un token de acceso que se recupera de un grupo de usuarios de Amazon Cognito o de otro IdP.
Las tareas individuales de aprovisionamiento o administración se ejecutan mediante funciones de Lambda que se integran con los puntos de conexión de API de API Gateway.
La administración APIs de la solución de arrendamiento común (para inquilinos, productos y usuarios) recopila todos los parámetros de entrada, encabezados y símbolos necesarios. A continuación, la administración APIs invoca las funciones Lambda asociadas.
El servicio de IAM valida los permisos de IAM tanto para la administración APIs como para las funciones de Lambda.
Las funciones de Lambda almacenan y recuperan datos de los catálogos (para inquilinos, productos y usuarios) en DynamoDB y Amazon S3.
Una vez validados los permisos, se invoca un flujo de trabajo de AWS Step Functions para realizar una tarea específica. El ejemplo del diagrama muestra un flujo de trabajo de aprovisionamiento de inquilinos.
Las tareas individuales del flujo de trabajo de AWS Step Functions se ejecutan en un flujo de trabajo predeterminado (máquina de estado).
Todos los datos esenciales necesarios para ejecutar la función de Lambda asociada a cada tarea del flujo de trabajo se recuperan de DynamoDB o Amazon S3. Es posible que sea necesario aprovisionar otros recursos de AWS mediante una CloudFormation plantilla de AWS.
Si es necesario, el flujo de trabajo envía una solicitud para aprovisionar recursos de AWS adicionales para un producto SaaS específico a la cuenta de AWS de ese producto.
Cuando la solicitud se realiza correctamente o no, el flujo de trabajo publica la actualización de estado como un mensaje en un tema de Amazon SNS.
Amazon SNS está suscrito al tema Amazon SNS del flujo de trabajo Step Functions.
A continuación, Amazon SNS envía la actualización del estado del flujo de trabajo al usuario de AWS.
Los registros de las acciones de cada servicio de AWS, incluida una pista de auditoría de las llamadas a la API, se envían a CloudWatch. Se pueden configurar reglas y alarmas específicas CloudWatch para cada caso de uso.
Los registros se archivan en buckets de Amazon S3 para fines de auditoría.
Automatizar y escalar
Este patrón utiliza una CloudFormation plantilla para ayudar a automatizar la implementación de la solución Common Tenant. La plantilla también puede ayudarle a ampliar o reducir rápidamente los recursos asociados.
Para obtener más información, consulte Trabajar con CloudFormation plantillas de AWS en la Guía del CloudFormation usuario de AWS.
Herramientas
Servicios de AWS
Amazon API Gateway le ayuda a crear, publicar, mantener, supervisar y proteger REST, HTTP y WebSocket APIs a cualquier escala.
Amazon Cognito ofrece autenticación, autorización y administración de usuarios para aplicaciones móviles y web.
AWS le CloudTrail ayuda a auditar la gobernanza, el cumplimiento y el riesgo operativo de su cuenta de AWS.
Amazon le CloudWatch ayuda a supervisar las métricas de sus recursos de AWS y las aplicaciones que ejecuta en AWS en tiempo real.
Amazon DynamoDB es un servicio de base de datos de NoSQL completamente administrado que ofrece un rendimiento rápido, predecible y escalable.
AWS Identity and Access Management (IAM) le permite administrar de forma segura el acceso a los recursos de AWS mediante el control de quién está autenticado y autorizado a utilizarlos.
AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
Amazon Simple Notification Service (Amazon SNS) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico.
AWS Step Functions es un servicio de orquestación sin servidor que le permite combinar funciones de Lambda AWS y otros servicios de AWS para crear aplicaciones esenciales desde el punto de vista empresarial.
Prácticas recomendadas
La solución de este patrón utiliza un único plano de control para gestionar la incorporación de varios inquilinos y proporcionar acceso a varios productos de SaaS. El plano de control ayuda a los usuarios administrativos a gestionar otros cuatro planos con características específicas:
Plano de seguridad
Plano de flujo de trabajo
Plano de comunicación
Plano de registro y monitoreo
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Establezca los requisitos para su plataforma SaaS multiusuario. | Establezca requisitos detallados para lo siguiente:
| Arquitecto de la nube, administrador de sistemas de AWS |
Configure el servicio de Amazon Cognito. | Siga las instrucciones de Introducción a Amazon Cognito de la Guía para desarrolladores de Amazon Cognito. | Arquitecto de la nube |
Configure las políticas de IAM necesarias. | Cree las políticas de IAM necesarias para su caso de uso. A continuación, asigne las políticas a los roles de IAM en Amazon Cognito. Para obtener más información, consulte Administrar el acceso mediante políticas y Control de acceso basado en roles en la Guía para desarrolladores de Amazon Cognito. | Administrador de la nube, arquitecto de la nube, seguridad de AWS IAM |
Configure los permisos de API necesarios. | Configure los permisos de acceso a API Gateway mediante roles y políticas de IAM y autorizadores Lambda. Para obtener instrucciones, consulte las secciones siguientes de la Guía de desarrolladores de Amazon API Gateway: | Administrador de la nube, arquitecto de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree los catálogos de datos necesarios. |
Para obtener más información, consulte Configuración de DynamoDB en la Guía para desarrolladores de Amazon DynamoDB. | Administrador de base de datos |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree funciones Lambda y API Gateway APIs para ejecutar las tareas necesarias del plano de control. | Cree funciones Lambda y API Gateway independientes APIs para añadir, eliminar y gestionar lo siguiente:
Para obtener más información, consulte Uso de AWS Lambda con Amazon API Gateway en la Guía para desarrolladores de AWS Lambda. | Desarrollador de aplicaciones |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Identifique las tareas que deben ejecutar los flujos de trabajo de AWS Step Functions. | Identifique y documente los requisitos detallados del flujo de trabajo de AWS Step Functions para lo siguiente:
importanteAsegúrese de que las partes interesadas clave aprueben los requisitos. | Propietario de la aplicación |
Cree los flujos de trabajo de AWS Step Functions necesarios. |
| Desarrollador de aplicaciones, responsable de compilación |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Crear temas de Amazon SNS. | Cree temas de Amazon SNS para recibir notificaciones sobre lo siguiente:
Para obtener más información, consulte Creación de un tema de SNS en la Guía para desarrolladores de Amazon SNS. | Propietario de la aplicación, arquitecto de la nube |
Suscribir puntos de conexión a cada tema de Amazon SNS. | Para recibir los mensajes publicados en un tema de Amazon SNS, tiene que suscribirse a un punto de conexión en cada tema. Para obtener más información, consulte el tema Suscripción a un tema de Amazon SNS en la Guía para desarrolladores de Amazon SNS. | Desarrollador de aplicaciones, arquitecto de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Active el registro para cada componente de la solución común para inquilinos. | Active el registro a nivel de componente para cada recurso de la solución de inquilino común que haya creado. Para obtener instrucciones, consulte lo siguiente:
notaPuede consolidar los registros de cada recurso en una cuenta de registro centralizada mediante las políticas de IAM. Para obtener más información, consulte Registro centralizado y barreras de protección para varias cuentas. | Administrador de sistemas de AWS, desarrollador de aplicaciones, administrador de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree CloudFormation plantillas. | Automatice la implementación y el mantenimiento de la solución Common Tenant completa y todos sus componentes mediante CloudFormation plantillas. Para obtener más información, consulte la Guía del CloudFormation usuario de AWS. | Desarrollador, DevOps ingeniero y CloudFormation desarrollador de aplicaciones |
Recursos relacionados
Control del acceso a una API de REST con grupos de usuarios de Amazon Cognito como autorizador (Guía para desarrolladores de Amazon API Gateway)
Uso de autorizadores Lambda de API Gateway (Guía para desarrolladores de Amazon API Gateway)
Grupos de usuarios de Amazon Cognito (Guía para desarrolladores de Amazon Cognito)
CloudWatch Consola multicuentas entre regiones (Guía del CloudWatch usuario de Amazon)