Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Manage tenants across multiple SaaS products on a single control plane (Gestione dei tenant su più prodotti SaaS su un unico piano di controllo (control-plane))
Creato da Ramanna Avancha (AWS), Jenifer Pascal (AWS), Kishan Kavala (AWS) e Anusha Mandava (AWS)
Riepilogo
Questo modello mostra come gestire i cicli di vita dei tenant su più prodotti SaaS (Software as a Service) su un unico piano di controllo nel cloud AWS. L'architettura di riferimento fornita può aiutare le organizzazioni a ridurre l'implementazione di funzionalità ridondanti e condivise nei singoli prodotti SaaS e fornire efficienze di governance su larga scala.
Le grandi aziende possono disporre di più prodotti SaaS in diverse unità aziendali. Questi prodotti spesso devono essere forniti per essere utilizzati da tenant esterni con diversi livelli di abbonamento. Senza una soluzione tenant comune, gli amministratori IT devono dedicare tempo alla gestione di funzionalità indifferenziate su più SaaS APIs, invece di concentrarsi sullo sviluppo delle funzionalità principali del prodotto.
La soluzione tenant comune fornita in questo modello può aiutare a centralizzare la gestione di molte delle funzionalità condivise dei prodotti SaaS di un'organizzazione, tra cui:
Sicurezza
Fornitura agli inquilini
Archiviazione dei dati degli inquilini
Comunicazioni con i tenant
Gestione del prodotto
Registrazione e monitoraggio delle metriche
Prerequisiti e limitazioni
Prerequisiti
Un account AWS attivo
Conoscenza di Amazon Cognito o di un provider di identità (IdP) di terze parti
Conoscenza di Amazon API Gateway
Conoscenza di AWS Lambda
Conoscenza di Amazon DynamoDB
Conoscenza di AWS Identity and Access Management (IAM)
Conoscenza di AWS Step Functions
Conoscenza di AWS CloudTrail e Amazon CloudWatch
Conoscenza delle librerie e del codice Python
Conoscenza del SaaS APIs, compresi i diversi tipi di utenti (organizzazioni, inquilini, amministratori e utenti delle applicazioni), i modelli di abbonamento e i modelli di isolamento dei tenant
Conoscenza dei requisiti SaaS multiprodotto e degli abbonamenti multi-tenant dell'organizzazione
Limitazioni
Le integrazioni tra la soluzione tenant comune e i singoli prodotti SaaS non sono coperte da questo modello.
Questo modello distribuisce il servizio Amazon Cognito solo in una singola regione AWS.
Architettura
Stack tecnologico Target
Amazon API Gateway
Amazon Cognito
AWS CloudTrail
Amazon CloudWatch
Amazon DynamoDB
IAM
AWS Lambda
Amazon Simple Storage Service (Amazon S3)
Servizio di notifica semplice Amazon (Amazon Simple Notification Service (Amazon SNS))
Funzioni AWS Step
Architettura Target
Il diagramma seguente mostra un esempio di flusso di lavoro per la gestione dei cicli di vita dei tenant su più prodotti SaaS su un unico piano di controllo nel cloud AWS.

Il diagramma mostra il flusso di lavoro seguente:
Un utente AWS avvia azioni relative al provisioning dei tenant, al provisioning dei prodotti o all'amministrazione effettuando una chiamata a un endpoint API Gateway.
L'utente viene autenticato da un token di accesso recuperato da un pool di utenti di Amazon Cognito o da un altro IdP.
Le singole attività di provisioning o amministrazione vengono eseguite da funzioni Lambda integrate con gli endpoint API API Gateway.
L'amministrazione APIs della soluzione Common Tenant (per tenant, prodotti e utenti) raccoglie tutti i parametri di input, le intestazioni e i token richiesti. Quindi, l'amministrazione APIs richiama le funzioni Lambda associate.
Le autorizzazioni IAM sia per l'amministrazione che per APIs le funzioni Lambda sono convalidate dal servizio IAM.
Le funzioni Lambda archiviano e recuperano i dati dai cataloghi (per tenant, prodotti e utenti) in DynamoDB e Amazon S3.
Dopo la convalida delle autorizzazioni, viene richiamato un flusso di lavoro AWS Step Functions per eseguire un'attività specifica. L'esempio nel diagramma mostra un flusso di lavoro di provisioning dei tenant.
Le singole attività del flusso di lavoro AWS Step Functions vengono eseguite in un flusso di lavoro predeterminato (macchina a stati).
Tutti i dati essenziali necessari per eseguire la funzione Lambda associata a ciascuna attività del flusso di lavoro vengono recuperati da DynamoDB o Amazon S3. Potrebbe essere necessario effettuare il provisioning di altre risorse AWS utilizzando un CloudFormation modello AWS.
Se necessario, il flusso di lavoro invia una richiesta di fornitura di risorse AWS aggiuntive per uno specifico prodotto SaaS all'account AWS di quel prodotto.
Quando la richiesta ha esito positivo o negativo, il flusso di lavoro pubblica l'aggiornamento di stato come messaggio su un argomento di Amazon SNS.
Amazon SNS è abbonato all'argomento Amazon SNS del flusso di lavoro Step Functions.
Amazon SNS invia quindi l'aggiornamento dello stato del flusso di lavoro all'utente AWS.
I log delle azioni di ogni servizio AWS, incluso un audit trail delle chiamate API, vengono inviati a CloudWatch. È possibile configurare regole e allarmi specifici CloudWatch per ogni caso d'uso.
I log vengono archiviati in bucket Amazon S3 per scopi di controllo.
Automazione e scalabilità
Questo modello utilizza un CloudFormation modello per aiutare ad automatizzare l'implementazione della soluzione tenant comune. Il modello può anche aiutarti a scalare rapidamente verso l'alto o verso il basso le risorse associate.
Per ulteriori informazioni, consulta Working with AWS CloudFormation templates nella AWS CloudFormation User Guide.
Strumenti
Servizi AWS
Amazon API Gateway ti aiuta a creare, pubblicare, gestire, monitorare e proteggere REST, HTTP e WebSocket APIs su qualsiasi scala.
Amazon Cognito fornisce autenticazione, autorizzazione e gestione degli utenti per app Web e mobili.
AWS ti CloudTrail aiuta a controllare la governance, la conformità e il rischio operativo del tuo account AWS.
Amazon ti CloudWatch aiuta a monitorare i parametri delle tue risorse AWS e delle applicazioni che esegui su AWS in tempo reale.
Amazon DynamoDB è un servizio di database NoSQL interamente gestito che offre prestazioni elevate, prevedibili e scalabili.
AWS Identity and Access Management (IAM) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
AWS Lambda è un servizio di elaborazione che ti aiuta a eseguire codice senza dover fornire o gestire server. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di calcolo che utilizzi.
Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
Amazon Simple Notification Service (Amazon SNS) ti aiuta a coordinare e gestire lo scambio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail.
AWS Step Functions è un servizio di orchestrazione serverless che ti aiuta a combinare le funzioni di AWS Lambda e altri servizi AWS per creare applicazioni aziendali critiche.
Best practice
La soluzione in questo modello utilizza un unico piano di controllo per gestire l'onboarding di più tenant e fornire l'accesso a più prodotti SaaS. Il piano di controllo aiuta gli utenti amministrativi a gestire altri quattro piani specifici per funzionalità:
Piano di sicurezza
Piano del flusso di lavoro
Piano di comunicazione
Piano di registrazione e monitoraggio
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Stabilisci i requisiti per la tua piattaforma SaaS multi-tenant. | Stabilisci requisiti dettagliati per quanto segue:
| Architetto cloud, amministratore di sistema AWS |
Configura il servizio Amazon Cognito. | Segui le istruzioni in Introduzione ad Amazon Cognito nella Amazon Cognito Developer Guide. | Architetto del cloud |
Configura le politiche IAM richieste. | Crea le policy IAM richieste per il tuo caso d'uso. Quindi, associa le policy ai ruoli IAM in Amazon Cognito. Per ulteriori informazioni, consulta Gestire l'accesso utilizzando le policy e il controllo degli accessi basato sui ruoli nella Amazon Cognito Developer Guide. | Amministratore cloud, architetto cloud, sicurezza AWS IAM |
Configura le autorizzazioni API richieste. | Configura le autorizzazioni di accesso all'API Gateway utilizzando i ruoli e le policy IAM e gli autorizzatori Lambda. Per istruzioni, consulta le seguenti sezioni della Amazon API Gateway Developer Guide: | Amministratore cloud, architetto cloud |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea i cataloghi di dati richiesti. |
Per ulteriori informazioni, consulta Configurazione di DynamoDB nella Amazon DynamoDB Developer Guide. | DBA |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea funzioni Lambda e API Gateway APIs per eseguire le attività richieste dal piano di controllo. | Crea funzioni Lambda e API Gateway separati APIs per aggiungere, eliminare e gestire quanto segue:
Per ulteriori informazioni, consulta Using AWS Lambda with Amazon API Gateway nella AWS Lambda Developer Guide. | Sviluppatore di app |
Attività | Descrizione | Competenze richieste |
---|---|---|
Identifica le attività che i flussi di lavoro di AWS Step Functions devono eseguire. | Identifica e documenta i requisiti dettagliati del flusso di lavoro di AWS Step Functions per quanto segue:
ImportanteAssicurati che le principali parti interessate approvino i requisiti. | Proprietario dell'app |
Crea i flussi di lavoro AWS Step Functions richiesti. |
| Sviluppatore di app, Build lead |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea argomenti Amazon SNS. | Crea argomenti Amazon SNS per ricevere notifiche su quanto segue:
Per ulteriori informazioni, consulta l'argomento Creazione di un SNS nella Amazon SNS Developer Guide. | Proprietario dell'app, Cloud architect |
Sottoscrivi gli endpoint a ogni argomento di Amazon SNS. | Per ricevere messaggi pubblicati su un argomento di Amazon SNS, devi sottoscrivere un endpoint per ogni argomento. Per ulteriori informazioni, consulta l'argomento Abbonamento a un argomento Amazon SNS nella Amazon SNS Developer Guide. | Sviluppatore di app, architetto cloud |
Attività | Descrizione | Competenze richieste |
---|---|---|
Attiva la registrazione per ogni componente della soluzione tenant comune. | Attiva la registrazione a livello di componente per ogni risorsa nella soluzione tenant comune che hai creato. Per le istruzioni, consulta quanto segue:
NotaPuoi consolidare i log di ogni risorsa in un account di registrazione centralizzato utilizzando le policy IAM. Per ulteriori informazioni, consulta Registrazione centralizzata e barriere di sicurezza per più account. | Sviluppatore di app, amministratore di sistema AWS, amministratore cloud |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea CloudFormation modelli. | Automatizza l'implementazione e la manutenzione della soluzione Common Tenant completa e di tutti i suoi componenti utilizzando CloudFormation i modelli. Per ulteriori informazioni, consulta la AWS CloudFormation User Guide. | Sviluppatore di app, DevOps ingegnere, CloudFormation sviluppatore |
Risorse correlate
Controlla l'accesso a un'API REST utilizzando i pool di utenti di Amazon Cognito come autorizzatore (Amazon API Gateway Developer Guide)
Usa gli autorizzatori API Gateway Lambda (Amazon API Gateway Developer Guide)
Pool di utenti di Amazon Cognito (Amazon Cognito Developer Guide)
CloudWatch Console per più account e più regioni (Amazon CloudWatch User Guide)