[Sottotitolo SEO]
Questa Guida mostra come implementare un componente di identità di gioco multipiattaforma personalizzato, leggero e scalabile, e spiega i passaggi per utilizzare le identità per l'autenticazione rispetto a componenti di back-end di gioco personalizzato su AWS. Questa Guida supporta le identità degli ospiti e vari sistemi di identità delle piattaforme di gioco. Può anche essere esteso per qualsiasi piattaforma di gioco aggiuntiva, come le console di gioco, utilizzando le integrazioni esistenti come modelli.
Inoltre, questa Guida fornisce Software Development Kit (SDK) e codice di esempio per i motori di gioco Unreal Engine 5, Unity 2021 (e versioni successive) e Godot 4. Gli SDK si integrano con il componente di identità di questa Guida e con le tue funzionalità di back-end personalizzate.
Nota: [Disclaimer]
Diagramma dell'architettura
[Descrizione del diagramma dell’architettura]
Fase 1
La funzione AWS Lambda generate-keys viene richiamata ogni 7 giorni.
Fase 2
Generate-keys ottiene il file jwks.json pubblico più recente da Amazon Simple Storage Service (Amazon S3), genera nuove chiavi pubbliche (JSON Web Key Set, JWKS) e chiavi private e aggiorna Amazon S3 con la nuova chiave pubblica e la chiave precedente.
Fase 3
Generate-keys aggiorna la chiave privata utilizzata per generare JSON Web Token (JWT) in AWS Secrets Manager.
Fase 4
Il client di gioco utilizza il Software Development Kit (SDK) fornito per richiedere una nuova identità ospite. Oppure, il client di gioco può accedere con la propria identità ospite esistente inviando il guest_secret tramite Gateway Amazon API, che è protetto dalle regole AWS WAF.
Fase 5
La funzione Lambda login-as-guest convalida l'identità dell'ospite o ne crea una nuova nella UserTable in Amazon DynamoDB.
Fase 6
La funzione Lambda richiede la chiave privata da Secrets Manager, genera un token JWT firmato per il client e lo invia indietro.
Fase 7
Il client di gioco può, quindi, chiamare componenti back-end personalizzati inviando richieste con il token JWT nell'intestazione Autorizzazione utilizzando l'SDK.
Fase 8
I componenti di back-end convalidano il token richiedendo le chiavi pubbliche JWKS dall'endpoint pubblico tramite Amazon CloudFront, che ottiene il file da Amazon S3.
Fase 9
L'SDK aggiorna automaticamente il token di accesso JWT chiamando la funzione Lambda refresh-access-token tramite Gateway API. La funzione genera un nuovo token utilizzando la chiave privata da Secrets Manager.
Fase 10
Inoltre, il client di gioco può inviare token di accesso dal provider di identità specifico per la piattaforma di gioco per collegarsi a un account esistente o crearne uno nuovo.
Le funzioni Lambda convalidano i token e creano il collegamento all'account utente in una tabella DynamoDB specifica. Successivamente, genera un token JWT per il client utilizzando la chiave privata da Secrets Manager.
Inizia
Distribuisci questa guida
Principi di Well-Architected
Il framework AWS Well-Architected consente di valutare i pro e i contro delle decisioni prese durante il processo di creazione di sistemi nel cloud. I sei principi del framework consentono di apprendere le best practice architetturali per la progettazione e il funzionamento di sistemi affidabili, sicuri, efficienti, convenienti e sostenibili. Grazie allo strumento AWS Well-Architected, disponibile gratuitamente nella Console di gestione AWS, puoi rivedere i tuoi carichi di lavoro rispetto a queste best practice rispondendo a una serie di domande per ciascun principio.
Il diagramma dell'architettura sopra riportato è un esempio di una soluzione creata tenendo conto delle best practice Well-Architected. Per essere completamente Well-Architected, dovresti seguire il maggior numero possibile di best practice.
-
Eccellenza operativa
Il componente di identità personalizzato in questa Guida utilizza AWS X-Ray che traccia le richieste degli utenti e sfrutta Lambda Powertools per fornire informazioni dettagliate dall'interno della logica di back-end. Inoltre, tutti i componenti di questa Guida utilizzano Amazon CloudWatch per tracciare i log dei flussi di cloud privato virtuale (VPC), l'accesso a Gateway API, l'accesso ad Amazon S3, i completamenti Lambda e le attività AWS Fargate. Infine, AWS CDK consente modifiche controllate e una configurazione coerente tra gli ambienti, aiutandoti a soddisfare le tue esigenze di sicurezza e conformità.
-
Sicurezza
Per supportare una solida gestione di identità, il componente di identità personalizzato di questa Guida gestisce le identità e l'autenticazione dei giocatori. Tutte le altre funzionalità di questa Guida proteggono l'accesso convalidando i JSON Web Token rispetto alle chiavi pubbliche fornite dal componente di identità. Il componente di identità personalizzato è protetto da AWS WAF, un firewall per applicazioni Web che protegge le applicazioni dai comuni exploit Web. Inoltre, tutti i dati sono crittografati sia a riposo che in transito.
-
Affidabilità
Questa Guida sfrutta principalmente i servizi gestiti in maniera completa e altamente disponibili di default in più zone di disponibilità (AZ) all'interno di una regione AWS. Per Fargate, viene utilizzata una configurazione multi-AZ per l'elevata disponibilità. Inoltre, tutte le tabelle del database in DynamoDB sono protette con un ripristino point-in-time.
-
Efficienza delle prestazioni
Questa Guida combina una serie di approcci diversi per consentire a varie funzionalità di migliorare le prestazioni. Innanzitutto, i servizi selezionati per questa Guida sono progettati per funzionare su larga scala per il lancio di giochi e altri picchi di traffico sfruttando i componenti a scalabilità automatica dei servizi serverless. Successivamente, i dati a raggi X forniti dal componente di identità personalizzato consentono agli sviluppatori di individuare le congestioni e di calibrare la Guida in base alle proprie esigenze al fine di ottimizzare le prestazioni. Infine, le chiavi pubbliche che convalidano i JSON Web Token vengono fornite tramite CloudFront per ottimizzare la latenza per i componenti di back-end.
-
Ottimizzazione dei costi
Questa Guida sfrutta i componenti serverless quando possibile, consentendoti di pagare solo per le risorse effettivamente utilizzate. Per ridurre ulteriormente i costi, tieni conto degli AWS Savings Plans che possono essere utilizzati per ottimizzare i costi sia per Lambda che per Fargate. Inoltre, il passaggio dalle tabelle DynamoDB su richiesta alla capacità fornita con dimensionamento automatico consente di utilizzare la capacità riservata di DynamoDB per ridurre i costi quando il traffico di base è noto.
Tutti i servizi utilizzati in questa Guida sono configurati al fine di scalare a seconda della richiesta, tra cui Gateway API, Lambda, DynamoDB, Amazon S3, Fargate, Secrets Manager e AWS WAF, garantendo che siano richieste solo le risorse minime.
-
Sostenibilità
I componenti dei servizi serverless di questa Guida si scalano automaticamente, consentendo ai componenti di scalare abbinando continuamente il carico con solo le risorse minime necessarie. Ciò riduce l'impatto ambientale dell'infrastruttura evitando di fornire capacità inutilizzata.
Contenuti correlati
[Titolo]
Avvertenza
Il codice di esempio, le librerie software, gli strumenti della linea di comando, le proof of concept, i modelli e le altre tecnologie correlate (comprese tutte le tecnologie di cui sopra fornite dal nostro personale) vengono forniti all'utente sotto forma di contenuto AWS ai sensi dell'Accordo cliente AWS o del relativo accordo scritto stipulato tra l'utente e AWS (a seconda dei casi). Non bisogna utilizzare il contenuto AWS in questione negli account di produzione o sui dati di produzione o altri dati fondamentali. L'utente è responsabile dei test, della sicurezza e dell'ottimizzazione del contenuto AWS, come il codice di esempio, in modo appropriato per l'utilizzo in produzione sulla base delle pratiche e degli standard di qualità specifici. L'implementazione del contenuto AWS può comportare costi AWS per la creazione o l'utilizzo di risorse AWS addebitabili, quali le istanze Amazon EC2 in esecuzione o l'archiviazione Amazon S3.
Eventuali riferimenti a servizi o organizzazioni di terze parti contenuti in questa guida non implicano alcuna approvazione, sponsorizzazione o affiliazione tra Amazon o AWS e dette terze parti. La guida di AWS è un punto di partenza tecnico e l'integrazione con servizi di terze parti può essere personalizzata al momento dell'implementazione dell'architettura.