[Subtítulo SEO]
En esta guía, se muestra cómo implementar un componente de identidad de juego multiplataforma personalizado, ligero y escalable, junto con los pasos para usar las identidades para autenticarse en los componentes de backend de videojuegos personalizados en AWS. Esta guía es compatible con las identidades de los invitados y varios sistemas de identidad de plataformas de juego. También se puede extender para cualquier plataforma de juego adicional, como las consolas, mediante las integraciones existentes como plantillas.
Además, en esta guía se proporcionan kits de desarrollo de software (SDK) y código de muestra para los motores de juego Unreal Engine 5, Unity 2021 (y versiones posteriores) y Godot 4. Los SDK se integran con el componente de identidad de esta guía y con las características de backend personalizadas.
Tenga en cuenta lo siguiente: [Descargo de responsabilidad]
Diagrama de la arquitectura
[Descripción del diagrama de arquitectura]
Paso 1
La función generate-keys de AWS Lambda se invoca cada 7 días.
Paso 2
Generate-keys obtiene el archivo jwks.json público más reciente de Amazon Simple Storage Service (Amazon S3), genera nuevas claves públicas (JSON Web Key Set [JWKS]) y claves privadas, y actualiza Amazon S3 con la nueva clave pública y la clave anterior.
Paso 3
Generate-keys actualiza la clave privada que se usa para generar los JSON Web Tokens (JWT) en AWS Secrets Manager.
Paso 4
El cliente del juego usa el kit de desarrollo de software (SDK) proporcionado para solicitar una nueva identidad de invitado. O bien, el cliente del juego puede iniciar sesión con su identidad de invitado actual si envía el guest_secret a través de Amazon API Gateway, que está protegida por las reglas de AWS WAF.
Paso 5
La función login-as-guest de Lambda valida la identidad de invitado o crea una nueva en la UserTable de Amazon DynamoDB.
Paso 6
La función de Lambda solicita la clave privada a Secrets Manager, genera un token JWT firmado para el cliente y lo devuelve.
Paso 7
El cliente del juego ahora puede llamar a los componentes personalizados de backend enviando solicitudes con el token JWT en el encabezado de autorización mediante el SDK.
Paso 8
Los componentes de backend validan el token mediante la solicitud de las claves públicas de JWKS desde el punto de conexión público a través de Amazon CloudFront, que obtiene el archivo de Amazon S3.
Paso 9
El SDK actualiza automáticamente el token de acceso JWT mediante una llamada a la función refresh-access-token de Lambda a través de API Gateway. La función genera un token nuevo con la clave privada de Secrets Manager.
Paso 10
Además, el cliente del juego puede enviar tokens de acceso desde el proveedor de identidad específico de la plataforma de juego para vincularlos a una cuenta existente o crear una cuenta nueva.
Las funciones de Lambda validan los tokens y crean el enlace a la cuenta de usuario en una tabla de DynamoDB específica. A continuación, genera un token JWT para el cliente con la clave privada de Secrets Manager.
Comenzar
Pilares de AWS Well-Architected Framework
AWS Well-Architected Framework le permite comprender las ventajas y desventajas de las decisiones que tome durante la creación de sistemas en la nube. Los seis pilares de este marco permiten aprender las prácticas recomendadas arquitectónicas para diseñar y explotar sistemas confiables, seguros, eficientes, rentables y sostenibles. Con la Herramienta de AWS Well-Architected, que se encuentra disponible gratuitamente en la Consola de administración de AWS, puede revisar sus cargas de trabajo con respecto a estas prácticas recomendadas al responder a un conjunto de preguntas para cada pilar.
El diagrama de arquitectura mencionado es un ejemplo de una solución que se creó teniendo en cuenta las prácticas recomendadas de una buena arquitectura. Para tener completamente una buena arquitectura, debe seguir todas las prácticas recomendadas de buena arquitectura posibles.
-
Excelencia operativa
El componente de identidad personalizada de esta guía utiliza AWS X-Ray, que rastrea las solicitudes de los usuarios y aprovecha Lambda Powertools para proporcionar información detallada desde la lógica del backend. Además, todos los componentes de esta guía utilizan Amazon CloudWatch para realizar un seguimiento de los registros de los flujos de nube virtual privada (VPC), del acceso a API Gateway, del acceso a Amazon S3, de las finalizaciones de Lambda y de las tareas de AWS Fargate. Por último, AWS CDK permite realizar cambios controlados y establecer una configuración uniforme en todos los entornos y, por tanto, le ayuda a satisfacer sus necesidades de seguridad y conformidad.
-
Seguridad
Para respaldar una administración de identidad sólida, el componente de identidad personalizada de esta guía administra las identidades y la autenticación de los jugadores. Todas las demás características de esta guía protegen el acceso mediante la validación de los JSON Web Tokens con las claves públicas proporcionadas por el componente de identidad. El componente de identidad personalizado está protegido por AWS WAF, un firewall de aplicaciones web que protege las aplicaciones contra exploits web comunes. Además, todos los datos se cifran en reposo y en tránsito.
-
Fiabilidad
En esta guía predomina la utilización de los servicios completamente administrados que están altamente disponibles de forma predeterminada en varias zonas de disponibilidad (AZ) dentro de una región de AWS. En Fargate, se utiliza una configuración multi-AZ para lograr una alta disponibilidad, y todas las tablas de bases de datos de DynamoDB están protegidas con recuperación a un momento dado.
-
Eficiencia en el rendimiento
En esta guía, se combinan varios enfoques diferentes para que se pueda mejorar el rendimiento de varias características. En primer lugar, los servicios seleccionados para esta guía están diseñados para funcionar a gran escala en función del lanzamiento de juegos y otros picos de tráfico al aprovechar los componentes de escalado automático de los servicios sin servidor. A continuación, los datos de X-Ray proporcionados por el componente de identidad personalizado permiten a los desarrolladores detectar la congestión y calibrar la guía según sus necesidades para optimizar el rendimiento. Por último, las claves públicas que validan los JSON Web Tokens se proporcionan a través de CloudFront para optimizar la latencia de los componentes de backend.
-
Optimización de costos
En esta guía, se aprovechan los componentes sin servidor siempre que es posible, lo que le permite pagar solo por los recursos exactos que utiliza. Para reducir aún más con los costos, considere AWS Savings Plans, que se puede utilizar para optimizar el costo tanto de Lambda como de Fargate. Además, pasar de las tablas de DynamoDB bajo demanda a la capacidad aprovisionada con escalado automático le permite usar la capacidad reservada de DynamoDB para reducir los costos cuando se conoce el tráfico de referencia.
Todos los servicios utilizados en esta guía están configurados para escalarse en función de la demanda, como API Gateway, Lambda, DynamoDB, Amazon S3, Fargate, Secrets Manager y AWS WAF, lo que garantiza que solo se utilicen los recursos mínimos necesarios.
-
Sostenibilidad
Los componentes de los servicios sin servidor de esta guía se escalan automáticamente, lo que permite que los componentes se escalen y, al mismo tiempo, igualen continuamente la carga solo con los recursos mínimos necesarios. Esto reduce el impacto ambiental de la infraestructura, ya que se evita el aprovisionamiento de capacidad no utilizada.
Contenido relacionado
[Título]
Descargo de responsabilidad
El código de muestra; las bibliotecas de software; las herramientas de línea de comandos; las pruebas de concepto; las plantillas; o cualquier otra tecnología relacionada (incluida cualquiera de las anteriores que proporcione nuestro personal) se brinda como contenido de AWS bajo el Contrato de cliente de AWS, o el contrato escrito pertinente entre usted y AWS (lo que sea aplicable). No debe utilizar este contenido de AWS en sus cuentas de producción, ni en producción ni en otros datos críticos. Es responsable de probar, proteger y optimizar el contenido de AWS, como el código de muestra, según corresponda para el uso de grado de producción en función de sus prácticas y estándares de control de calidad específicos. La implementación de contenido de AWS puede incurrir en cargos de AWS por crear o utilizar recursos con cargo de AWS, como ejecutar instancias de Amazon EC2 o utilizar el almacenamiento de Amazon S3.
Las referencias a servicios u organizaciones de terceros en esta Guía no implican un respaldo, patrocinio o afiliación entre Amazon o AWS y el tercero. La orientación de AWS es un punto de partida técnico, y puede personalizar su integración con servicios de terceros al implementar la arquitectura.