Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Mandanten für mehrere SaaS-Produkte auf einer einzigen Steuerebene verwalten
Erstellt von Ramanna Avancha (AWS), Jenifer Pascal (AWS), Kishan Kavala (AWS) und Anusha Mandava (AWS)
Übersicht
Dieses Muster zeigt, wie Mandantenlebenszyklen für mehrere SaaS-Produkte (Software as a Service) auf einer einzigen Steuerungsebene in der AWS-Cloud verwaltet werden. Die bereitgestellte Referenzarchitektur kann Unternehmen dabei helfen, die Implementierung redundanter, gemeinsam genutzter Funktionen in ihren einzelnen SaaS-Produkten zu reduzieren und die Governance-Effizienz in großem Umfang zu steigern.
Große Unternehmen können mehrere SaaS-Produkte in verschiedenen Geschäftsbereichen anbieten. Diese Produkte müssen häufig für die Nutzung durch externe Mandanten mit unterschiedlichen Abonnementstufen bereitgestellt werden. Ohne eine gemeinsame Mandantenlösung müssen IT-Administratoren Zeit damit verbringen, undifferenzierte Funktionen über mehrere SaaS hinweg zu verwalten APIs, anstatt sich auf die Entwicklung der Kernproduktfunktionen zu konzentrieren.
Die in diesem Muster bereitgestellte Common-Tenant-Lösung kann dazu beitragen, die Verwaltung vieler gemeinsam genutzter SaaS-Produktfunktionen eines Unternehmens zu zentralisieren, darunter die folgenden:
Sicherheit
Bereitstellung von Mandanten
Speicherung von Mieterdaten
Kommunikation mit Mietern
Produktmanagement
Protokollierung und Überwachung von Metriken
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto
Kenntnisse über Amazon Cognito oder einen externen Identitätsanbieter (IdP)
Kenntnisse über Amazon API Gateway
Kenntnisse über AWS Lambda
Kenntnisse über Amazon DynamoDB
Kenntnisse in AWS Identity and Access Management (IAM)
Kenntnis von AWS Step Functions
Kenntnisse von AWS CloudTrail und Amazon CloudWatch
Kenntnisse von Python-Bibliotheken und Code
Kenntnisse über SaaS APIs, einschließlich der verschiedenen Benutzertypen (Organisationen, Mandanten, Administratoren und Anwendungsbenutzer), Abonnementmodelle und Modelle zur Mandantenisolierung
Kenntnis der SaaS-Anforderungen Ihres Unternehmens für mehrere Produkte und Mehrmandantenabonnements
Einschränkungen
Integrationen zwischen der Common-Tenant-Lösung und einzelnen SaaS-Produkten werden in diesem Muster nicht behandelt.
Dieses Muster stellt den Amazon Cognito-Service nur in einer einzigen AWS-Region bereit.
Architektur
Zieltechnologie-Stack
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)
Funktionen von AWS Step
Zielarchitektur
Das folgende Diagramm zeigt einen Beispiel-Workflow für die Verwaltung von Mandantenlebenszyklen für mehrere SaaS-Produkte auf einer einzigen Steuerungsebene in der AWS-Cloud.

Das Diagramm zeigt den folgenden Workflow:
Ein AWS-Benutzer initiiert die Mandantenbereitstellung, Produktbereitstellung oder verwaltungsbezogene Aktionen, indem er einen API-Gateway-Endpunkt aufruft.
Der Benutzer wird durch ein Zugriffstoken authentifiziert, das aus einem Amazon Cognito Cognito-Benutzerpool oder einem anderen IdP abgerufen wird.
Einzelne Bereitstellungs- oder Verwaltungsaufgaben werden von Lambda-Funktionen ausgeführt, die in API Gateway API-Endpunkte integriert sind.
APIs Bei der Verwaltung der gemeinsamen Mandantenlösung (für Mandanten, Produkte und Benutzer) werden alle erforderlichen Eingabeparameter, Header und Token erfasst. Dann APIs ruft die Administration die zugehörigen Lambda-Funktionen auf.
IAM-Berechtigungen sowohl für die Administration APIs als auch für die Lambda-Funktionen werden vom IAM-Dienst validiert.
Lambda-Funktionen speichern und rufen Daten aus den Katalogen (für Mandanten, Produkte und Benutzer) in DynamoDB und Amazon S3 ab.
Nachdem die Berechtigungen validiert wurden, wird ein AWS Step Functions Functions-Workflow aufgerufen, um eine bestimmte Aufgabe auszuführen. Das Beispiel im Diagramm zeigt einen Workflow zur Mandantenbereitstellung.
Einzelne AWS Step Functions Functions-Workflow-Aufgaben werden in einem vordefinierten Workflow (State Machine) ausgeführt.
Alle wichtigen Daten, die für die Ausführung der Lambda-Funktion benötigt werden, die jeder Workflow-Aufgabe zugeordnet ist, werden entweder von DynamoDB oder Amazon S3 abgerufen. Andere AWS-Ressourcen müssen möglicherweise mithilfe einer CloudFormation AWS-Vorlage bereitgestellt werden.
Bei Bedarf sendet der Workflow eine Anfrage zur Bereitstellung zusätzlicher AWS-Ressourcen für ein bestimmtes SaaS-Produkt an das AWS-Konto dieses Produkts.
Wenn die Anfrage erfolgreich ist oder fehlschlägt, veröffentlicht der Workflow die Statusaktualisierung als Nachricht zu einem Amazon SNS SNS-Thema.
Amazon SNS hat das Amazon SNS-Thema des Step Functions Functions-Workflows abonniert.
Amazon SNS sendet dann die Workflow-Status-Aktualisierung zurück an den AWS-Benutzer.
Protokolle der Aktionen der einzelnen AWS, einschließlich eines Prüfprotokolls mit API-Aufrufen, werden an gesendet CloudWatch. CloudWatch Für jeden Anwendungsfall können spezifische Regeln und Alarme konfiguriert werden.
Protokolle werden zu Prüfungszwecken in Amazon S3 S3-Buckets archiviert.
Automatisierung und Skalierung
Dieses Muster verwendet eine CloudFormation Vorlage, um die Bereitstellung der Common-Tenant-Lösung zu automatisieren. Die Vorlage kann Ihnen auch dabei helfen, die zugehörigen Ressourcen schnell nach oben oder unten zu skalieren.
Weitere Informationen finden Sie unter Arbeiten mit CloudFormation AWS-Vorlagen im CloudFormation AWS-Benutzerhandbuch.
Tools
AWS-Services
Amazon API Gateway unterstützt Sie bei der Erstellung, Veröffentlichung, Wartung, Überwachung und Sicherung von REST, HTTP und WebSocket APIs in jeder Größenordnung.
Amazon Cognito bietet Authentifizierung, Autorisierung und Benutzerverwaltung für Web- und mobile Apps.
AWS CloudTrail unterstützt Sie bei der Prüfung der Unternehmensführung, der Einhaltung von Vorschriften und des Betriebsrisikos Ihres AWS-Kontos.
Amazon CloudWatch hilft Ihnen dabei, die Metriken Ihrer AWS-Ressourcen und der Anwendungen, die Sie auf AWS ausführen, in Echtzeit zu überwachen.
Amazon DynamoDB ist ein vollständig verwalteter NoSQL-Datenbank-Service, der schnelle und planbare Leistung mit nahtloser Skalierbarkeit bereitstellt.
AWS Identity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS-Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
AWS Lambda ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
Amazon Simple Notification Service (Amazon SNS) unterstützt Sie bei der Koordination und Verwaltung des Nachrichtenaustauschs zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen.
AWS Step Functions ist ein serverloser Orchestrierungsservice, mit dem Sie AWS Lambda Lambda-Funktionen und andere AWS-Services kombinieren können, um geschäftskritische Anwendungen zu erstellen.
Bewährte Methoden
Die Lösung in diesem Muster verwendet eine einzige Steuerungsebene, um das Onboarding mehrerer Mandanten zu verwalten und den Zugriff auf mehrere SaaS-Produkte bereitzustellen. Die Steuerungsebene hilft administrativen Benutzern bei der Verwaltung von vier weiteren, funktionsspezifischen Ebenen:
Sicherheitsebene
Workflow-Ebene
Kommunikationsebene
Protokollierungs- und Überwachungsebene
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Legen Sie die Anforderungen für Ihre Multi-Tenant-SaaS-Plattform fest. | Legen Sie detaillierte Anforderungen für Folgendes fest:
| Cloud-Architekt, AWS-Systemadministrator |
Richten Sie den Amazon Cognito-Service ein. | Folgen Sie den Anweisungen unter Erste Schritte mit Amazon Cognito im Amazon Cognito Developer Guide. | Cloud-Architekt |
Konfigurieren Sie die erforderlichen IAM-Richtlinien. | Erstellen Sie die erforderlichen IAM-Richtlinien für Ihren Anwendungsfall. Ordnen Sie dann die Richtlinien den IAM-Rollen in Amazon Cognito zu. Weitere Informationen finden Sie unter Verwaltung des Zugriffs mithilfe von Richtlinien und rollenbasierter Zugriffskontrolle im Amazon Cognito Developer Guide. | Cloud-Administrator, Cloud-Architekt, AWS IAM-Sicherheit |
Konfigurieren Sie die erforderlichen API-Berechtigungen. | Richten Sie API-Gateway-Zugriffsberechtigungen mithilfe von IAM-Rollen und -Richtlinien sowie Lambda-Autorisierern ein. Anweisungen finden Sie in den folgenden Abschnitten des Amazon API Gateway Developer Guide: | Cloud-Administrator, Cloud-Architekt |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie die erforderlichen Datenkataloge. |
Weitere Informationen finden Sie unter Setting up DynamoDB im Amazon DynamoDB Developer Guide. | DBA |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie Lambda-Funktionen und API Gateway APIs , um die erforderlichen Aufgaben auf der Steuerungsebene auszuführen. | Erstellen Sie separate Lambda-Funktionen und API Gateway, APIs um Folgendes hinzuzufügen, zu löschen und zu verwalten:
Weitere Informationen finden Sie unter Using AWS Lambda with Amazon API Gateway im AWS Lambda Developer Guide. | App-Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Identifizieren Sie die Aufgaben, die AWS Step Functions Functions-Workflows ausführen müssen. | Identifizieren und dokumentieren Sie die detaillierten AWS Step Functions Functions-Workflow-Anforderungen für Folgendes:
WichtigStellen Sie sicher, dass die wichtigsten Beteiligten die Anforderungen genehmigen. | Besitzer der App |
Erstellen Sie die erforderlichen AWS Step Functions Functions-Workflows. |
| App-Entwickler, Lead aufbauen |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie Amazon SNS SNS-Themen. | Erstellen Sie Amazon SNS SNS-Themen, um Benachrichtigungen zu folgenden Themen zu erhalten:
Weitere Informationen finden Sie unter dem Thema Creating an SNS im Amazon SNS Developer Guide. | App-Besitzer, Cloud-Architekt |
Abonnieren Sie Endpunkte für jedes Amazon SNS SNS-Thema. | Um Nachrichten zu erhalten, die zu einem Amazon SNS SNS-Thema veröffentlicht wurden, müssen Sie für jedes Thema einen Endpunkt abonnieren. Weitere Informationen finden Sie unter Amazon SNS SNS-Abonnement im Amazon SNS SNS-Entwicklerhandbuch. | App-Entwickler, Cloud-Architekt |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Aktivieren Sie die Protokollierung für jede Komponente der Common-Tenant-Lösung. | Aktivieren Sie die Protokollierung auf Komponentenebene für jede Ressource in der Common Tenant-Lösung, die Sie erstellt haben. Detaillierte Informationen finden Sie hier:
AnmerkungMithilfe von IAM-Richtlinien können Sie Protokolle für jede Ressource in einem zentralen Protokollierungskonto konsolidieren. Weitere Informationen finden Sie unter Zentralisierte Protokollierung und Sicherheitsvorkehrungen für mehrere Konten. | App-Entwickler, AWS-Systemadministrator, Cloud-Administrator |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
CloudFormation Vorlagen erstellen. | Automatisieren Sie mithilfe von CloudFormation Vorlagen die Bereitstellung und Wartung der vollständigen Common-Tenant-Lösung und all ihrer Komponenten. Weitere Informationen finden Sie im CloudFormation AWS-Benutzerhandbuch. | App-Entwickler, DevOps Ingenieur, CloudFormation Entwickler |
Zugehörige Ressourcen
Steuern Sie den Zugriff auf eine REST-API mithilfe von Amazon Cognito Cognito-Benutzerpools als Autorisierer (Amazon API Gateway Developer Guide)
Verwenden Sie API Gateway Lambda-Autorisierer (Amazon API Gateway Gateway-Entwicklerhandbuch)
Amazon Cognito Cognito-Benutzerpools (Amazon Cognito Cognito-Entwicklerhandbuch)
Kontoübergreifende, regionsübergreifende CloudWatch Konsole ( CloudWatch Amazon-Benutzerhandbuch)