SaaS-Implementierung

SaaS-Identität und -Isolation mit Amazon Cognito

Architektur und Strategien für ein stabiles SaaS-Identitäts- und Isolationsmodell in AWS

Dieser Quick Start liefert die Grundlagen für die Implementierung von Identität und Isolation in Mehrmandanten-SaaS-Umgebungen (Software as a Service) mithilfe von Amazon Cognito als zugrunde liegendem Identitätsanbieter.

Er beinhaltet ein einfaches SaaS-Auftragsverwaltungssystem, das unterschiedliche Aspekte von Identität und Isolation veranschaulicht und die System- und Mandantenrollen in einer Mehrmandantenumgebung umfasst. Die Quick Start-Bereitstellung enthält AWS-Services wie Amazon Cognito, AWS Lambda, Amazon API Gateway und Amazon EC2 Container Service (Amazon ECS).

Die AWS CloudFormation-Vorlagen, mit denen die Bereitstellung automatisiert wird, sind anpassbar. Der Quick Start beinhaltet eine Anleitung, in der die grundlegenden Konzepte SaaS-Identität und -Isolation sowie Implementierungsdetails erläutert werden. Außerdem umfasst die Anleitung schrittweise Anweisungen für Bereitstellung und Konfiguration.

cognito-small-icon

Dieser Quick Start wurde entwickelt von
AWS-Lösungsarchitekten.

  •  Ihre Möglichkeiten
  •  Bereitstellungsanleitung
  •  Kosten und Lizenzen
  •  Ihre Möglichkeiten
  • Diese Quick Start-Architektur enthält zahlreiche AWS-Services und -Konstrukte, um eine hochgradig skalierbare, hochverfügbare SaaS-Identität und Isolationslösung gemäß der bewährten Methoden zur Bereitstellung einer containerbasierten Anwendung in einer zwei Availability Zones umfassenden Virtual Private Cloud (VPC) zu erstellen.

    Der SaaS-Referenz-Anwendungsclient wird mithilfe von Amazon Simple Storage Service (Amazon S3) bereitgestellt. Alle Komponenten dieser AngularJS-Anwendung werden auf einem S3-Bucket bereitgestellt und dort unterstützt. Die bereitgestellte Webanwendung interagiert mit den Backend-Services der Anwendung über RESTful-Aufrufe, die durch Amazon API Gateway geleitet werden und mit jedem Anruf Kontext für die Mandantenidentität liefern.

    API Gateway bietet eine natürliche Methode zur Bereitstellung Ihrer Services in SaaS-Umgebungen, wodurch Sie den Zugriff auf Ihre Umgebung besser messen und drosseln können. Außerdem wird ein benutzerdefinierter Genehmiger unterstützt, der die Identitäts-Token des Systems bei jedem versuchten Zugriff auf die Services überprüfen kann. Dieser Genehmiger wird als eine AWS Lambda-Funktion implementiert, mit der Sie benutzerdefinierte Autorisierungslogik für Anfragen erstellen können, die durch das Gateway geleitet werden.

    Innerhalb der VPC wendet die Architektur NAT-Gateways (Network Address Translation) an, die in separaten Availability Zones bereitgestellt wurden. Diese Gateways, die in den öffentlichen Subnetzen der VPC gehostet werden, bieten hochverfügbares Routing des Datenverkehrs, der von Ihren privaten Subnetzen zu anderen AWS-Services oder ins Internet fließt.

    Der Kern der Services für die SaaS-Anwendung wird in den privaten Subnetzen der VPC gehostet. Ein Amazon ECS-Cluster hostet die Container, auf denen die Microservices des Systems ausgeführt werden. Sieben separate Node.js-Microservices werden in diesem Cluster bereitgestellt. Dieser Cluster wendet außerdem Auto Scaling für grundlegende Hochverfügbarkeit an. Sie können diesen Cluster weiter optimieren, damit er dynamisch auf Änderungen in der Mandantenlast reagiert und basierend auf der Nachfrage nach oben oder unten skaliert wird. Jeder Service wendet den Kontext einer Mandantenidentität an, um den Zugriff auf die Systemressourcen zu regeln und zu analysieren.

    Die Referenzanwendung verwendet eine Vielzahl an AWS-Services, z. B.:

    • Amazon DynamoDB-Tabellen werden in einem Multimandantenmodell für Services bereitgestellt, die eine Speicherung erfordern.
    • AWS Identity and Access Management (IAM) verwaltet und wendet Isolationsrichtlinien und Rollen an, um mandantenübergreifenden Zugriff zu verhindern.
    • Amazon Cognito dient zur Bereitstellung der Identität und speichert die Attribute, die jeden Mandanten identifizieren.
    • Amazon Simple Notification Service (Amazon SNS) sendet E-Mails zur Validierung während des Registrierungsvorgangs für Benutzer.

    Die Architektur unterstützt außerdem fortlaufende Bereitstellung: Sie verwendet eine Kombination aus AWS CodePipeline, AWS CodeBuild, S3-Buckets und der Amazon EC2 Container Registry (Amazon ECR), um den Build und die Bereitstellung neuer Anwendungsfunktionen zu verwalten.

  •  Bereitstellungsanleitung
  • Zum Aufbau Ihrer hochverfügbaren SaaS-Identität und -Isolierungsumgebung auf AWS befolgen Sie bitte die Anweisungen im Bereitstellungshandbuch. Der Bereitstellungsprozess umfasst folgende Schritte:

    1. Registrieren Sie sich unter https://aws.amazon.com für ein Amazon-Konto, falls Sie noch keines haben.
    2. Starten Sie den Quick Start. Jede Bereitstellung dauert etwa 2 Stunden und 15 Minuten. Sie können zwischen zwei Optionen wählen:
    3. Prüfen Sie die Bereitstellung, indem Sie sich auf der Website für die Referenzanwendung anmelden und das Auftragsverwaltungssystem durchgehen.

    Um Ihre Bereitstellung anzupassen, können Sie CIDR-Blöcke und IP-Adressen konfigurieren, Anmeldeinformationen für Systemadministratoren einrichten und Ihre DynamoDB-Tabellen konfigurieren, so wie im Quick Start-Bereitstellungshandbuch beschrieben.

  •  Kosten und Lizenzen
  • Die Kosten der zur Ausführung dieser Quick-Start-Referenzinstallation erforderlichen AWS-Dienste sind allein von Ihnen zu tragen. Durch die Verwendung des Quick Start entstehen keine zusätzlichen Kosten.

    Die in der AWS CloudFormation-Vorlage enthaltenen Konfigurationsparameter für diesen Quick Start können individuell angepasst werden. Einige dieser Einstellungen wirken sich auf die Einrichtungskosten aus. Kostenkalkulationen finden Sie auf den Seiten mit den Preisen für die von Ihnen genutzten AWS-Services.