

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))
<a name="manage-tenants-across-multiple-saas-products-on-a-single-control-plane"></a>

*Ramanna Avancha, Kishan Kavala, Anusha Mandava e Jennifer Pascal, Amazon Web Services*

## Riepilogo
<a name="manage-tenants-across-multiple-saas-products-on-a-single-control-plane-summary"></a>

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 del 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
+ Approvvigionamento per gli inquilini
+ Archiviazione dei dati degli inquilini
+ Comunicazioni con i tenant
+ Gestione del prodotto
+ Registrazione e monitoraggio delle metriche

## Prerequisiti e limitazioni
<a name="manage-tenants-across-multiple-saas-products-on-a-single-control-plane-prereqs"></a>

**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.

## Architecture
<a name="manage-tenants-across-multiple-saas-products-on-a-single-control-plane-architecture"></a>

**Stack tecnologico Target**
+ Gateway Amazon API
+ Amazon Cognito
+ AWS CloudTrail
+ Amazon CloudWatch
+ Amazon DynamoDB
+ IAM
+ AWS Lambda
+ Amazon Simple Storage Service (Amazon S3)
+ 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.

![\[Flusso di lavoro per la gestione dei cicli di vita dei tenant su un unico piano di controllo.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/4306bc76-22a7-45ca-a107-43df6c6f7ac8/images/700faf4d-c28f-4814-96aa-2d895cdcb518.png)


 Il diagramma mostra il flusso di lavoro seguente:

1. 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.

1. L'utente viene autenticato da un token di accesso recuperato da un pool di utenti di Amazon Cognito o da un altro IdP.

1. Le singole attività di provisioning o amministrazione vengono eseguite da funzioni Lambda integrate con gli endpoint API API Gateway.

1. 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.

1. Le autorizzazioni IAM sia per l'amministrazione che per APIs le funzioni Lambda sono convalidate dal servizio IAM.

1. Le funzioni Lambda archiviano e recuperano i dati dai cataloghi (per tenant, prodotti e utenti) in DynamoDB e Amazon S3.

1. 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.

1. Le singole attività del flusso di lavoro AWS Step Functions vengono eseguite in un flusso di lavoro predeterminato (macchina a stati).

1. 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.

1. 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.

1. 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.

1. Amazon SNS è abbonato all'argomento Amazon SNS del flusso di lavoro Step Functions.

1. Amazon SNS invia quindi l'aggiornamento dello stato del flusso di lavoro all'utente AWS.

1. 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.

1. 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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) nella *AWS CloudFormation User Guide*.

## Tools (Strumenti)
<a name="manage-tenants-across-multiple-saas-products-on-a-single-control-plane-tools"></a>

**Servizi AWS**
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) ti aiuta a creare, pubblicare, gestire, monitorare e proteggere REST, HTTP e WebSocket APIs su qualsiasi scala.
+ [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) fornisce autenticazione, autorizzazione e gestione degli utenti per app Web e mobili.
+ [AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) ti CloudTrail aiuta a controllare la governance, la conformità e il rischio operativo del tuo account AWS.
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) ti CloudWatch aiuta a monitorare i parametri delle tue risorse AWS e delle applicazioni che esegui su AWS in tempo reale.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) è un servizio di database NoSQL interamente gestito che offre prestazioni elevate, prevedibili e scalabili.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è 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)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è 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](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) ti aiuta a coordinare e gestire lo scambio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) è 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
<a name="manage-tenants-across-multiple-saas-products-on-a-single-control-plane-best-practices"></a>

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
<a name="manage-tenants-across-multiple-saas-products-on-a-single-control-plane-epics"></a>

### Configura il piano di sicurezza
<a name="configure-the-security-plane"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Stabilisci i requisiti per la tua piattaforma SaaS multi-tenant. | Stabilisci requisiti dettagliati per quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-tenants-across-multiple-saas-products-on-a-single-control-plane.html) | Architetto cloud, amministratore di sistema AWS | 
| Configura il servizio Amazon Cognito. | Segui le istruzioni in [Introduzione ad Amazon Cognito nella Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-getting-started.html) *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](https://docs.aws.amazon.com/cognito/latest/developerguide/security-iam.html#security_iam_access-manage) e il [controllo degli accessi basato sui ruoli](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html) 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*:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-tenants-across-multiple-saas-products-on-a-single-control-plane.html) | Amministratore cloud, architetto cloud | 

### Configura il piano dati
<a name="configure-the-data-plane"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea i cataloghi di dati richiesti. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-tenants-across-multiple-saas-products-on-a-single-control-plane.html)Per ulteriori informazioni, consulta [Configurazione di DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SettingUp.html) nella Amazon DynamoDB Developer *Guide*. | DBA | 

### Configurare il piano di controllo
<a name="configure-the-control-plane"></a>


| Operazione | Description | 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-tenants-across-multiple-saas-products-on-a-single-control-plane.html)Per ulteriori informazioni, consulta [Using AWS Lambda with Amazon API Gateway](https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html) nella *AWS Lambda Developer Guide*. | Sviluppatore di app | 

### Configura il piano del flusso di lavoro
<a name="configure-the-workflow-plane"></a>


| Operazione | Description | 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-tenants-across-multiple-saas-products-on-a-single-control-plane.html)Assicurati che le principali parti interessate approvino i requisiti. | Proprietario dell'app | 
| Crea i flussi di lavoro AWS Step Functions richiesti. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-tenants-across-multiple-saas-products-on-a-single-control-plane.html) | Sviluppatore di app, Build lead | 

### Configura il piano di comunicazione
<a name="configure-the-communication-plane"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea argomenti Amazon SNS. | Crea argomenti Amazon SNS per ricevere notifiche su quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-tenants-across-multiple-saas-products-on-a-single-control-plane.html)Per ulteriori informazioni, consulta l'[argomento Creazione di un SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) 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](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html) *Developer Guide*. | Sviluppatore di app, architetto cloud | 

### Configura il piano di registrazione e monitoraggio
<a name="configure-the-logging-and-monitoring-plane"></a>


| Operazione | Description | 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-tenants-across-multiple-saas-products-on-a-single-control-plane.html)Puoi 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](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/centralized-logging-and-multiple-account-security-guardrails.html). | Sviluppatore di app, amministratore di sistema AWS, amministratore cloud | 

### Fornisci e distribuisci la soluzione tenant comune
<a name="provision-and-deploy-the-common-tenant-solution"></a>


| Operazione | Description | 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 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html). | Sviluppatore di app, DevOps ingegnere, CloudFormation sviluppatore | 

## Risorse correlate
<a name="manage-tenants-across-multiple-saas-products-on-a-single-control-plane-resources"></a>
+ [Controlla l'accesso a un'API REST utilizzando i pool di utenti di Amazon Cognito come autorizzatore](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html) (*Amazon API Gateway* Developer Guide)
+ [Usa gli autorizzatori API Gateway Lambda](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html) (*Amazon API Gateway* Developer Guide)
+ [Pool di utenti di Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html) (*Amazon Cognito Developer Guide*)
+ [ CloudWatch Console per più account e più regioni](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html) (*Amazon CloudWatch User Guide*)