implementazione saas

Identità e isolamento SaaS con Amazon Cognito

Architettura e strategie per un modello di identità e isolamento SaaS robusto in AWS

Questo Quick Start permette di implementare una soluzione ad elevata disponibilità per identità e isolamento in ambienti Software-as-a-Service (SaaS) multi-tenant, usando Amazon Cognito come provider di identità.

Include un sistema di gestione ordini SaaS snello che illustra i diversi aspetti di identità e isolamento, distribuendo i ruoli in un ambiente multi-tenant. La guida alla distribuzione Quick Start include servizi AWS quali Amazon Cognito, AWS Lambda, Amazon API Gateway e Amazon EC2 Container Service (Amazon ECS).

I modelli di AWS CloudFormation che permettono l'automatizzazione della distribuzione sono personalizzabili. La guida alla distribuzione illustra le nozioni di base di identità e isolamento per SaaS e i dettagli per l'implementazione, oltre a istruzioni particolareggiate per la configurazione e la distribuzione.

cognito-small-icon

Questo Quick Start è stato sviluppato da
Solutions Architect di AWS.

  •  Attività da completare
  •  Come effettuare la distribuzione
  •  Costi e licenze
  •  Attività da completare
  • L’architettura di questo Quick Start include numerosi servizi e costrutti AWS per creare una soluzione di identità e isolamento SaaS ad alta scalabilità e disponibilità, conforme alle best practice per la distribuzione di un’applicazione basata su container in un cloud privato virtuale (VPC) che comprende due zone di disponibilità.

    Il client dell’applicazione di riferimento SaaS viene distribuito utilizzando Amazon Simple Storage Service (Amazon S3). Tutte le risorse di questa applicazione Angular JS sono distribuite in un bucket S3 e, da lì, servite. L’applicazione Web distribuita interagisce con i servizi di back-end dell’applicazione tramite chiamate RESTful instradate tramite Amazon API Gateway, fornendo un contesto dell’identità tenant con ciascuna chiamata.

    L’API Gateway fornisce un modo naturale per l’esposizione dei tuoi servizi in ambienti SaaS, consentendoti di misurare e accelerare in modo migliore l’accesso al tuo ambiente. Inoltre, supporta autorizzazioni ad hoc in grado di convalidare i token di identità del sistema durante ciascun tentativo di accesso ai servizi. Questa autorizzazione è implementata come funzione di AWS Lambda che ti permette di creare una logica di autorizzazione personalizzata per le richieste durante il flusso attraverso il gateway.

    All’interno del VPC, l’architettura utilizza gateway di traduzione degli indirizzi di rete (NAT) distribuiti in zone di disponibilità separate. Tali gateway, in hosting in sottoreti pubbliche del VPC, forniscono instradamento di traffico ad elevata disponibilità che fluisce dalle tue sottoreti private ad altri servizi AWS o su Internet.

    Il nucleo dei servizi dell’applicazione SaaS è in hosting nelle sottoreti private del VPC. Un cluster di Amazon ECS ospita i container che eseguono i microservizi di sistema. Sette microservizi Node.js separati sono distribuiti in questo cluster. Questo cluster, inoltre, utilizza Auto Scaling per l’elevata disponibilità di base. Puoi perfezionare ulteriormente questo cluster per rispondere in modo dinamico alle modifiche del carico tenant, aumentando o riducendo le risorse in base al fabbisogno. Ciascun servizio applica il contesto di un’identità tenant per il controllo e la definizione dell’accesso alle risorse del sistema.

    L’applicazione di riferimento utilizza una varietà di servizi AWS, ad esempio:

    • Le tabelle di Amazon DynamoDB vengono distribuite in un modello multi-tenant per servizi che richiedono storage.
    • AWS Identity and Access Management (IAM) gestisce e applica policy e ruoli di isolamento per evitare accesso incrociato tra tenant.
    • Amazon Cognito funge da provider di identità, archiviando gli attributi che identificano ciascun tenant.
    • Amazon Simple Notification Service (Amazon SNS) pubblica le e-mail di convalida durante il processo di registrazione degli utenti.

    Inoltre, l’architettura supporta la distribuzione continua: utilizza una combinazione di AWS CodePipeline, AWS CodeBuild, bucket S3 e Amazon EC2 Container Registry (Amazon ECR) per la gestione della build e la distribuzione di nuove caratteristiche delle applicazioni.

  •  Come effettuare la distribuzione
  • Per creare il tuo ambiente di identità e isolamento SaaS in AWS, segui le istruzioni nella guida alla distribuzione. Il processo di distribuzione include questi passaggi:

    1. Se non hai ancora un account AWS, registrati su https://aws.amazon.com.
    2. Avvia il Quick Start. Ciascuna distribuzione dura circa 2 ore e 15 minuti. Puoi scegliere tra due opzioni:
    3. Testa la distribuzione effettuando l’accesso al sito Web per l’applicazione di riferimento e navigando nel sistema di gestione degli ordini.

    Per personalizzare la tua distribuzione, puoi configurare blocchi CIDR e indirizzi IP, configurare credenziali di amministratore di sistema e definire le tue tabelle DynamoDB, come descritto nella guida alla distribuzione Quick Start.

  •  Costi e licenze
  • Ti saranno addebitati i costi dei servizi AWS utilizzati per eseguire questa distribuzione di riferimento Quick Start. Non sono previsti costi aggiuntivi per l'utilizzo del Quick Start.

    Il modello AWS CloudFormation per questa architettura di Quick Start comprende alcuni parametri di configurazione personalizzabili. Alcune impostazioni potrebbero incidere sul costo di distribuzione. Per una stima sui costi, consulta la pagina dei prezzi di ogni servizio AWS che utilizzerai.