[SEO 副标题]
本指南演示了如何部署自定义、轻量级且可扩展的跨平台游戏身份组件,以及如何使用这些身份对 AWS 上的自定义游戏后端组件进行身份验证的步骤。本指南支持访客身份和各种游戏平台身份系统。通过将现有的集成作为模板使用,本指南还可以扩展到其他任何游戏平台(例如游戏主机)。
此外,本指南还为虚幻引擎 5、Unity 2021(及更高版本)和 Godot 4 游戏引擎提供了软件开发工具包(SDK)和示例代码。这些 SDK 集成了本指南中的身份组件以及为您提供的自定义后端功能。
请注意:[免责声明]
架构图
[架构图描述]
第 1 步
每 7 天调用一次 AWS Lambda 函数 generate-keys。
第 2 步
generate-keys 从 Amazon Simple Storage Service(Amazon S3)中获取最新的公共 jwks.json 文件,生成新的公钥 [JSON Web 密钥集(JWKS)] 和私钥,并用新的公钥和之前的密钥更新 Amazon S3。
第 3 步
generate-keys 将用于生成 JSON Web 令牌(JWT)的私钥更新到 AWS Secrets Manager 中。
第 4 步
游戏客户端使用提供的软件开发工具包(SDK)请求新的访客身份。或者,游戏客户端也可以通过受 AWS WAF 规则保护的 Amazon API Gateway 发送 guest_secret,从而使用其现有的访客身份登录。
第 5 步
login-as-guest Lambda 函数会验证访客身份,或在 Amazon DynamoDB 的 UserTable 中创建新的访客身份。
第 6 步
Lambda 函数向 Secrets Manager 请求私钥,为客户端生成已签名的 JWT 令牌,并将其发送回去。
第 7 步
现在,游戏客户端可以使用 SDK,发送在 Authorization 标头中带有 JWT 令牌的请求,以调用自定义后端组件。
第 8 步
后端组件通过 Amazon CloudFront 向公共端点请求 JWKS 公钥(从 Amazon S3 获取文件),对令牌进行验证。
第 9 步
SDK 通过 API Gateway 调用 refresh-access-token Lambda 函数,自动刷新 JWT 访问令牌。该函数使用 Secrets Manager 的私钥生成新令牌。
第 10 步
此外,游戏客户端还可以发送来自游戏平台特定身份提供商的访问令牌,以关联现有账户,或创建新账户。
Lambda 函数会验证令牌,并在特定的 DynamoDB 表中创建与用户账户的关联。然后,该函数使用 Secrets Manager 的私钥,为客户端生成 JWT 令牌。
开始使用
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
本指南中的自定义身份组件利用 AWS X-Ray 跟踪用户请求,并利用 Lambda Powertools 从后端逻辑中提供详细信息。此外,本指南的所有组件都使用 Amazon CloudWatch 来跟踪虚拟私有云(VPC)流量、API Gateway 访问、Amazon S3 访问、Lambda 完成情况和 AWS Fargate 任务的日志。最后,AWS CDK 可跨环境进行可控的更改和一致的配置,帮助您满足安全性和合规性需求。
-
安全性
本指南中的自定义身份组件可管理玩家身份和身份验证,为可靠的身份管理提供支持。本指南的所有其他功能都会根据身份组件提供的公钥,对 JSON Web 令牌进行验证,来确保访问安全。AWS WAF 是一款 Web 应用程序防火墙,可保护应用程序免受常见的 Web 漏洞的攻击,自定义身份组件正是受其保护。此外,所有静态数据和传输中的数据都经过加密。
-
可靠性
本指南主要利用完全托管的服务。默认情况下,这些服务在 AWS 区域内的多个可用区(AZ)中具有高度可用性。对于 Fargate,采用了多可用区配置来实现高度可用性,并且 DynamoDB 中的所有数据库表都受到时间点恢复的保护。
-
性能效率
本指南结合多种不同的方法,使用各种功能来提高性能。首先,为本指南选择的服务旨在利用无服务器服务的自动扩展组件,在游戏发布和其他流量高峰时段提供大规模运行所需的性能。接下来,自定义身份组件提供的 X-Ray 数据允许开发人员找到拥堵点,并根据自己的需求调整指南,以优化性能。最后,用于验证 JSON Web 令牌的公钥通过 CloudFront 提供,优化了后端组件的延迟。
-
成本优化
-
可持续性
本指南中的无服务器服务组件可自动扩展,使组件在扩展的同时,可通过最少的资源持续满足负载要求。这样可以避免预置不会使用的容量,从而减少基础设施对环境的影响。
相关内容
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。