[Sous-titre SEO]
Le présent guide explique comment déployer un composant d'identité de jeu multiplateforme personnalisé, léger et évolutif, ainsi que les étapes à suivre pour utiliser les identités pour s'authentifier par rapport aux composants de backend de jeu personnalisés sur AWS. Le présent guide prend en charge les identités des invités et les différents systèmes d'identité des plateformes de jeu. Il prend également en charge les plateformes de jeu supplémentaires, telles que les consoles de jeux, en utilisant les intégrations existantes comme modèles.
Par ailleurs, le présent guide fournit des kits de développement logiciel (SDK) et des exemples de code pour les moteurs de jeu Unreal Engine 5, Unity 2021 (et versions ultérieures) et Godot 4. Les kits SDK s'intègrent au composant d'identité du présent guide et à vos fonctionnalités de backend personnalisées.
Veuillez noter : [Clause de non-responsabilité]
Diagramme d’architecture
[Description du schéma d’architecture]
Étape 1
La fonction generate-keys d'AWS Lambda est invoquée tous les 7 jours.
Étape 2
Generate-keys obtient le dernier fichier public jwks.json auprès d'Amazon Simple Storage Service (Amazon S3), génère de nouvelles clés publiques (JSON Web Key Set [JWKS]) et des clés privées, et met à jour Amazon S3 avec la nouvelle clé publique et la clé précédente.
Étape 3
Generate-keys met à jour la clé privée utilisée pour générer des jetons Web JSON (JWT) vers AWS Secrets Manager.
Étape 4
Le client du jeu utilise le kit de développement logiciel (SDK) fourni pour demander une nouvelle identité d'invité. Le client du jeu peut également se connecter avec son identité d'invité existante en envoyant le guest_secret à partir d'Amazon API Gateway, qui est protégé par les règles AWS WAF.
Étape 5
La fonction Lambda login-as-guest valide l'identité de l'invité ou en crée une nouvelle dans le tableau utilisateur d'Amazon DynamoDB.
Étape 6
La fonction Lambda demande la clé privée à Secrets Manager, génère un jeton JWT signé pour le client et le renvoie.
Étape 7
Le client du jeu peut désormais appeler des composants backend personnalisés en envoyant des requêtes avec le jeton JWT dans l'en-tête Authorisation à l'aide du kit SDK.
Étape 8
Les composants backend valident le jeton en demandant les clés publiques JWKS au point de terminaison public à partir d'Amazon CloudFront, qui récupère le fichier depuis Amazon S3.
Étape 9
Le kit SDK actualise automatiquement le jeton d'accès JWT en appelant la fonction Lambda refresh-access-token à partir d'API Gateway. La fonction génère un nouveau jeton à l'aide de la clé privée de Secrets Manager.
Étape 10
Par ailleurs, le client du jeu peut envoyer des jetons d'accès depuis le fournisseur d'identité spécifique à la plateforme de jeu pour les lier à un compte existant ou créer un nouveau compte.
Les fonctions Lambda valident les jetons et créent le lien vers le compte utilisateur dans un tableau DynamoDB spécifique. Il génère ensuite un jeton JWT pour le client à l'aide de la clé privée de Secrets Manager.
Démarrer
Piliers Well-Architected
Le cadre AWS Well-Architected vous permet de comprendre les avantages et les inconvénients des décisions que vous prenez lors de la création de systèmes dans le cloud. Les six piliers du cadre vous permettent d'apprendre les bonnes pratiques architecturales pour concevoir et exploiter des systèmes fiables, sécurisés, efficaces, rentables et durables. Grâce à l'outil AWS Well-Architected Tool, disponible gratuitement dans la console de gestion AWS, vous pouvez examiner vos charges de travail par rapport à ces bonnes pratiques en répondant à une série de questions pour chaque pilier.
Le diagramme d'architecture ci-dessus est un exemple de solution créée en tenant compte des bonnes pratiques Well-Architected. Pour être totalement conforme à Well-Architected, vous devez suivre autant de bonnes pratiques Well-Architected que possible.
-
Excellence opérationnelle
Le composant d'identité personnalisé du présent guide utilise AWS X-Ray qui suit les demandes des utilisateurs et exploite Lambda Powertools pour fournir des informations détaillées à partir de la logique backend. En outre, tous les composants du présent guide utilisent Amazon CloudWatch pour suivre les journaux des flux de cloud privé virtuel (VPC), de l'accès à API Gateway, de l'accès à Amazon S3, des complétions Lambda et des tâches AWS Fargate. Enfin, AWS CDK permet des modifications contrôlées et une configuration cohérente dans tous les environnements, vous aidant ainsi à répondre à vos besoins en matière de sécurité et de conformité.
-
Sécurité
Pour permettre une gestion efficace des identités, le composant d'identité personnalisé du présent guide gère les identités et l'authentification des joueurs. Toutes les autres fonctionnalités du présent guide sécurisent l'accès en validant les jetons Web JSON par rapport aux clés publiques fournies par le composant d'identité. Le composant d'identité personnalisé est protégé par AWS WAF, un pare-feu d'applications Web qui protège les applications contre les exploits Web courants. De plus, toutes les données sont cryptées au repos et en transit.
-
Fiabilité
Le présent guide s'appuie principalement sur des services entièrement gérés qui sont hautement disponibles par défaut dans plusieurs zones de disponibilité (AZ) au sein d'une région AWS. Pour Fargate, une configuration multi-AZ est utilisée pour garantir une haute disponibilité et toutes les tables de bases de données de DynamoDB sont protégées par une restauration instantanée.
-
Efficacité des performances
Le présent guide combine un certain nombre d'approches différentes pour intégrer diverses fonctionnalités afin d'améliorer les performances. Tout d'abord, les services sélectionnés pour le présent guide sont conçus pour fonctionner à grande échelle lors des lancements de jeux et autres pics de trafic en tirant parti des composants de mise à l'échelle automatique des services sans serveur. Ensuite, les données X-Ray fournies par le composant d'identité personnalisé permettent aux développeurs de détecter les goulots d'étranglement et d'adapter le guide à leurs besoins pour optimiser les performances. Enfin, les clés publiques qui valident les jetons Web JSON sont fournies à partir de CloudFront afin d'optimiser la latence des composants du backend.
-
Optimisation des coûts
Le présent guide utilise des composants sans serveur dans la mesure du possible, ce qui vous permet de ne payer que pour les ressources exactes que vous utilisez. Pour vous permettre de réduire davantage les coûts, pensez aux Savings Plans AWS qui servent à optimiser les coûts à la fois pour Lambda et pour Fargate. Par ailleurs, en passant des tables DynamoDB à la demande à la capacité provisionnée avec mise à l'échelle automatique, vous pouvez exploiter la capacité réservée DynamoDB pour réduire les coûts lorsque le trafic de base est connu.
Tous les services utilisés dans le présent guide sont configurés pour mettre à l'échelle en fonction de la demande, notamment API Gateway, Lambda, DynamoDB, Amazon S3, Fargate, Secrets Manager et AWS WAF, garantissant que seules les ressources minimales sont requises.
-
Développement durable
Les composants des services sans serveur décrits dans le présent guide se mettent à l'échelle automatiquement, ce qui leur permet de se mettre à l'échelle tout en adaptant continuellement la charge avec le minimum de ressources nécessaires. L'impact environnemental de l'infrastructure est ainsi réduit en évitant de fournir des capacités inutilisées.
Contenu connexe
[Titre]
Avis de non-responsabilité
Les exemples de code, les bibliothèques de logiciels, les outils de ligne de commande, les preuves de concept, les modèles ou toute autre technologie connexe (y compris tout ce qui précède qui est fourni par notre personnel) vous sont fournis en tant que contenu AWS en vertu du contrat client AWS ou de l'accord écrit pertinent entre vous et AWS (selon le cas). Vous ne devez pas utiliser ce contenu AWS dans vos comptes de production, ni sur des données de production ou autres données critiques. Vous êtes responsable des tests, de la sécurisation et de l'optimisation du contenu AWS, tel que les exemples de code, comme il convient pour une utilisation en production, en fonction de vos pratiques et normes de contrôle de qualité spécifiques. Le déploiement de contenu AWS peut entraîner des frais AWS pour la création ou l'utilisation de ressources payantes AWS, telles que l'exécution d'instances Amazon EC2 ou l'utilisation du stockage Amazon S3.
Les références à des services ou organisations tiers dans ce guide n'impliquent pas une approbation, un parrainage ou une affiliation entre Amazon ou AWS et le tiers. Les conseils fournis par AWS constituent un point de départ technique, et vous pouvez personnaliser votre intégration avec des services tiers lorsque vous déployez l'architecture.