Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Gestion des locataires sur plusieurs produits SaaS sur un seul plan de contrôle
Créée par Ramanna Avancha (AWS), Jenifer Pascal (AWS), Kishan Kavala (AWS) et Anusha Mandava (AWS)
Récapitulatif
Ce modèle montre comment gérer le cycle de vie des clients sur plusieurs produits SaaS (Software as a Service) sur un seul plan de contrôle dans le cloud AWS. L'architecture de référence fournie peut aider les entreprises à réduire la mise en œuvre de fonctionnalités redondantes et partagées dans leurs produits SaaS individuels et à améliorer l'efficacité de la gouvernance à grande échelle.
Les grandes entreprises peuvent proposer plusieurs produits SaaS dans différentes unités commerciales. Ces produits doivent souvent être fournis pour être utilisés par des locataires externes à différents niveaux d'abonnement. Sans solution mutualisée, les administrateurs informatiques doivent passer du temps à gérer des fonctionnalités indifférenciées entre plusieurs SaaS APIs, au lieu de se concentrer sur le développement des fonctionnalités de base du produit.
La solution de locataire commun proposée dans ce modèle peut aider à centraliser la gestion de nombreuses fonctionnalités des produits SaaS partagés d'une entreprise, notamment les suivantes :
Sécurité
Provisionnement pour les locataires
Stockage des données des locataires
Communications avec les locataires
Gestion des produits
Enregistrement et surveillance des métriques
Conditions préalables et limitations
Prérequis
Un compte AWS actif
Connaissance d'Amazon Cognito ou d'un fournisseur d'identité (IdP) tiers
Connaissance d'Amazon API Gateway
Connaissance d'AWS Lambda
Connaissance d'Amazon DynamoDB
Connaissance d'AWS Identity and Access Management (IAM)
Connaissance d'AWS Step Functions
Connaissance d'AWS CloudTrail et d'Amazon CloudWatch
Connaissance des bibliothèques et du code Python
Connaissance du SaaS APIs, notamment des différents types d'utilisateurs (organisations, locataires, administrateurs et utilisateurs d'applications), des modèles d'abonnement et des modèles d'isolation des locataires
Connaissance des exigences SaaS multi-produits et des abonnements multi-locataires de votre entreprise
Limites
Les intégrations entre la solution mutualisée et les produits SaaS individuels ne sont pas couvertes par ce modèle.
Ce modèle déploie le service Amazon Cognito uniquement dans une seule région AWS.
Architecture
Pile technologique cible
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)
Fonctions d'AWS Step
Architecture cible
Le schéma suivant montre un exemple de flux de travail pour gérer le cycle de vie des locataires sur plusieurs produits SaaS sur un seul plan de contrôle dans le cloud AWS.

Le schéma suivant illustre le flux de travail suivant :
Un utilisateur AWS lance le provisionnement des locataires, le provisionnement des produits ou des actions liées à l'administration en appelant un point de terminaison API Gateway.
L'utilisateur est authentifié par un jeton d'accès extrait d'un groupe d'utilisateurs Amazon Cognito ou d'un autre IdP.
Les tâches d'approvisionnement ou d'administration individuelles sont exécutées par des fonctions Lambda intégrées aux points de terminaison de l'API API Gateway.
L'administration APIs de la solution commune (pour les locataires, les produits et les utilisateurs) rassemble tous les paramètres d'entrée, en-têtes et jetons requis. L'administration APIs invoque ensuite les fonctions Lambda associées.
Les autorisations IAM pour les fonctions d'administration APIs et Lambda sont validées par le service IAM.
Les fonctions Lambda stockent et extraient les données des catalogues (pour les locataires, les produits et les utilisateurs) dans DynamoDB et Amazon S3.
Une fois les autorisations validées, un flux de travail AWS Step Functions est invoqué pour effectuer une tâche spécifique. L'exemple du diagramme montre un flux de travail de provisionnement des locataires.
Les tâches individuelles du flux de travail AWS Step Functions sont exécutées dans un flux de travail prédéterminé (machine à états).
Toutes les données essentielles nécessaires à l'exécution de la fonction Lambda associée à chaque tâche de flux de travail sont extraites de DynamoDB ou d'Amazon S3. D'autres ressources AWS devront peut-être être mises en service à l'aide d'un CloudFormation modèle AWS.
Le cas échéant, le flux de travail envoie une demande de mise à disposition de ressources AWS supplémentaires pour un produit SaaS spécifique sur le compte AWS de ce produit.
Lorsque la demande aboutit ou échoue, le flux de travail publie la mise à jour du statut sous forme de message sur une rubrique Amazon SNS.
Amazon SNS est abonné à la rubrique Amazon SNS du flux de travail Step Functions.
Amazon SNS renvoie ensuite la mise à jour de l'état du flux de travail à l'utilisateur AWS.
Les journaux des actions de chaque service AWS, y compris une piste d'audit des appels d'API, sont envoyés à CloudWatch. Des règles et des alarmes spécifiques peuvent être configurées CloudWatch pour chaque cas d'utilisation.
Les journaux sont archivés dans des compartiments Amazon S3 à des fins d'audit.
Automatisation et mise à l'échelle
Ce modèle utilise un CloudFormation modèle pour automatiser le déploiement de la solution mutualisée. Le modèle peut également vous aider à augmenter ou à réduire rapidement les ressources associées.
Pour plus d'informations, consultez la section Utilisation des CloudFormation modèles AWS dans le guide de CloudFormation l'utilisateur AWS.
Outils
Services AWS
Amazon API Gateway vous aide à créer, publier, gérer, surveiller et sécuriser REST, HTTP, et ce, WebSocket APIs à n'importe quelle échelle.
Amazon Cognito fournit des fonctionnalités d'authentification, d'autorisation et de gestion des utilisateurs pour les applications Web et mobiles.
AWS vous CloudTrail aide à auditer la gouvernance, la conformité et le risque opérationnel de votre compte AWS.
Amazon vous CloudWatch aide à surveiller les indicateurs de vos ressources AWS et des applications que vous exécutez sur AWS en temps réel.
Amazon DynamoDB est un service de base de données NoSQL entièrement géré, offrant des performances rapides, prévisibles et évolutives.
AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.
AWS Lambda est un service de calcul qui vous permet d'exécuter du code sans avoir à approvisionner ou à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.
Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.
Amazon Simple Notification Service (Amazon SNS) vous aide à coordonner et à gérer l'échange de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail.
AWS Step Functions est un service d'orchestration sans serveur qui vous permet de combiner les fonctions AWS Lambda et d'autres services AWS pour créer des applications critiques pour l'entreprise.
Bonnes pratiques
Dans ce modèle, la solution utilise un plan de contrôle unique pour gérer l'intégration de plusieurs locataires et pour fournir un accès à plusieurs produits SaaS. Le plan de contrôle permet aux utilisateurs administratifs de gérer quatre autres plans spécifiques aux fonctionnalités :
Avion de sécurité
Plan de flux de travail
Plan de communication
Plan de journalisation et de surveillance
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Définissez les exigences relatives à votre plateforme SaaS à locataires multiples. | Établissez des exigences détaillées pour les éléments suivants :
| Architecte cloud, administrateur système AWS |
Configurez le service Amazon Cognito. | Suivez les instructions de la section Getting started with Amazon Cognito Developer Guide du développeur Amazon Cognito. | Architecte du cloud |
Configurez les politiques IAM requises. | Créez les politiques IAM requises pour votre cas d'utilisation. Mappez ensuite les politiques aux rôles IAM dans Amazon Cognito. Pour plus d'informations, consultez la section Gestion de l'accès à l'aide de politiques et de contrôle d'accès basé sur les rôles dans le manuel Amazon Cognito Developer Guide. | Administrateur cloud, architecte cloud, sécurité AWS IAM |
Configurez les autorisations d'API requises. | Configurez les autorisations d'accès à API Gateway à l'aide des rôles et politiques IAM et des autorisateurs Lambda. Pour obtenir des instructions, consultez les sections suivantes du manuel Amazon API Gateway Developer Guide : | Administrateur cloud, architecte cloud |
Tâche | Description | Compétences requises |
---|---|---|
Créez les catalogues de données requis. |
Pour plus d'informations, consultez la section Configuration de DynamoDB dans le manuel du développeur Amazon DynamoDB. | DBA |
Tâche | Description | Compétences requises |
---|---|---|
Créez des fonctions Lambda et une API Gateway APIs pour exécuter les tâches du plan de contrôle requises. | Créez des fonctions Lambda et une API Gateway distinctes APIs pour ajouter, supprimer et gérer les éléments suivants :
Pour plus d'informations, consultez la section Utilisation d'AWS Lambda avec Amazon API Gateway dans le manuel du développeur AWS Lambda. | Développeur d’applications |
Tâche | Description | Compétences requises |
---|---|---|
Identifiez les tâches que les flux de travail AWS Step Functions doivent exécuter. | Identifiez et documentez les exigences détaillées du flux de travail AWS Step Functions pour les éléments suivants :
ImportantAssurez-vous que les principales parties prenantes approuvent les exigences. | Propriétaire de l'application |
Créez les flux de travail AWS Step Functions requis. |
| Développeur d'applications, responsable de la création |
Tâche | Description | Compétences requises |
---|---|---|
Créez des rubriques Amazon SNS. | Créez des rubriques Amazon SNS pour recevoir des notifications sur les points suivants :
Pour plus d'informations, consultez la rubrique Création d'un réseau SNS dans le manuel Amazon SNS Developer Guide. | Propriétaire de l'application, architecte cloud |
Abonnez des points de terminaison à chaque rubrique Amazon SNS. | Pour recevoir des messages publiés sur une rubrique Amazon SNS, vous devez abonner un point de terminaison à chaque rubrique. Pour plus d'informations, consultez la section Abonnement à une rubrique Amazon SNS dans le manuel du développeur Amazon SNS. | Développeur d'applications, architecte cloud |
Tâche | Description | Compétences requises |
---|---|---|
Activez la journalisation pour chaque composant de la solution mutualisée. | Activez la journalisation au niveau des composants pour chaque ressource de la solution mutualisée que vous avez créée. Pour obtenir des instructions, veuillez consulter les sections suivantes :
NoteVous pouvez consolider les journaux de chaque ressource dans un compte de journalisation centralisé en utilisant des politiques IAM. Pour plus d'informations, consultez la section Journalisation centralisée et mesures de sécurité pour plusieurs comptes. | Développeur d'applications, administrateur système AWS, administrateur cloud |
Tâche | Description | Compétences requises |
---|---|---|
Créez des CloudFormation modèles. | Automatisez le déploiement et la maintenance de la solution commune complète et de tous ses composants à l'aide CloudFormation de modèles. Pour plus d'informations, consultez le guide de CloudFormation l'utilisateur AWS. | Développeur d'applications, DevOps ingénieur, CloudFormation développeur |
Ressources connexes
Contrôlez l'accès à une API REST en utilisant les groupes d'utilisateurs Amazon Cognito comme autorisateur (Amazon API Gateway Developer Guide)
Utiliser les autorisateurs Lambda d'API Gateway (Amazon API Gateway Developer Guide)
Groupes d'utilisateurs Amazon Cognito (Guide du développeur Amazon Cognito)
CloudWatch Console entre comptes et entre régions (Amazon CloudWatch User Guide)