[Subtítulo para SEO]
Esta Orientação demonstra como implantar um componente de identidade de jogo multiplataforma personalizado, leve e escalável, além de etapas sobre como usar as identidades para se autenticar em componentes de back-end de jogos personalizados na AWS. Esta Orientação oferece suporte a identidades de convidados e vários sistemas de identidade de plataformas de jogos. Ela também pode ser estendida para qualquer plataforma de jogos adicionais, como consoles de jogos, usando as integrações existentes como modelos.
Além disso, esta Orientação fornece kits de desenvolvimento de software (SDKs) e código de exemplo para os mecanismos de jogos Unreal Engine 5, Unity 2021 (e superior) e Godot 4. Os SDKs se integram ao componente de identidade desta Orientação e aos seus recursos personalizados de back-end.
Observação: [Isenção de responsabilidade]
Diagrama de arquitetura
[Descrição do diagrama de arquitetura]
Etapa 1
A função generate-keys do AWS Lambda é invocada a cada sete dias.
Etapa 2
A função generate-keys obtém o arquivo jwks.json público mais recente do Amazon Simple Storage Service (Amazon S3), gera novas chaves públicas (JSON Web Key Set [JWKS]) e chaves privadas e atualiza o Amazon S3 com a nova chave pública e a chave anterior.
Etapa 3
A função generate-keys atualiza a chave privada usada para gerar JSON Web Tokens (JWT) para o AWS Secrets Manager.
Etapa 4
O cliente do jogo usa o kit de desenvolvimento de software (SDK) fornecido para solicitar uma nova identidade de convidado. Ou o cliente do jogo pode fazer login com sua identidade de convidado existente enviando o guest_secret por meio do Amazon API Gateway, que é protegido pelas regras do AWS WAF.
Etapa 5
A função login-as-guest do Lambda valida a identidade do convidado ou cria uma nova na UserTable no Amazon DynamoDB.
Etapa 6
A função do Lambda solicita a chave privada do Secrets Manager, gera um token JWT assinado para o cliente e o envia de volta.
Etapa 7
O cliente do jogo agora pode chamar componentes de back-end personalizados enviando solicitações com o token JWT no cabeçalho Authorization usando o SDK.
Etapa 8
Os componentes de back-end validam o token solicitando as chaves públicas do JWKS do endpoint público por meio do Amazon CloudFront, que obtém o arquivo do Amazon S3.
Etapa 9
O SDK atualiza automaticamente o token JWT de acesso chamando a função refresh-access-token do Lambda por meio do API Gateway. A função gera um novo token usando a chave privada do Secrets Manager.
Etapa 10
Além disso, o cliente do jogo pode enviar tokens de acesso do provedor de identidades específico da plataforma do jogo para vincular a uma conta existente ou criar uma nova.
As funções do Lambda validam os tokens e criam o link para a conta do usuário em uma tabela específica do DynamoDB. Em seguida, ele gera um token JWT para o cliente usando a chave privada do Secrets Manager.
Comece a usar
Implemente esta orientação
Pilares do Well-Architected
O AWS Well-Architected Framework ajuda a entender as vantagens e as desvantagens das decisões tomadas durante a criação de sistemas na nuvem. Os seis pilares do Framework permitem que você aprenda as melhores práticas de arquitetura, a fim de projetar e operar sistemas confiáveis, seguros, eficientes, econômicos e sustentáveis. Com a Ferramenta AWS Well-Architected, disponível gratuitamente no Console de Gerenciamento da AWS, você pode avaliar suas workloads em relação às práticas recomendadas ao responder a uma série de questões para cada pilar.
O diagrama de arquitetura acima exemplifica a criação de uma solução pautada nas melhores práticas do Well-Architected. Para ser totalmente Well-Architected, é preciso respeitar a maior quantidade possível das melhores práticas desse framework.
-
Excelência operacional
O componente de identidade personalizada nesta Orientação utiliza o AWS X-Ray, que rastreia as solicitações dos usuários, e aproveita o Lambda Powertools para fornecer informações detalhadas da lógica de back-end. Além disso, todos os componentes desta Orientação usam o Amazon CloudWatch para rastrear logs de fluxos da nuvem privada virtual (VPC), acesso ao API Gateway, acesso ao Amazon S3, conclusões do Lambda e tarefas do AWS Fargate. Por fim, o AWS CDK permite mudanças controladas e configurações consistentes em todos os ambientes, ajudando você a atender às suas necessidades de segurança e conformidade.
-
Segurança
Para oferecer suporte ao gerenciamento robusto de identidade, o componente de identidade personalizada desta Orientação gerencia as identidades e a autenticação dos jogadores. Todos os outros recursos desta Orientação protegem o acesso validando os JSON Web Tokens em relação às chaves públicas fornecidas pelo componente de identidade. O componente de identidade personalizada é protegido pelo AWS WAF, um firewall de aplicações web que as protege de explorações comuns da web. Além disso, todos os dados são criptografados em repouso e em trânsito.
-
Confiabilidade
Esta Orientação utiliza, sobretudo, serviços totalmente gerenciados que são altamente disponíveis por padrão em várias zonas de disponibilidade (AZ) em uma região da AWS. Para o Fargate, uma configuração multi-AZ é utilizada para alta disponibilidade, e todas as tabelas do banco de dados no DynamoDB são protegidas com recuperação para um ponto no tempo.
-
Eficiência de performance
Esta Orientação combina várias abordagens diferentes para permitir que vários recursos melhorem a performance. Primeiro, os serviços selecionados para esta Orientação foram projetados para funcionar em grande escala em lançamentos de jogos e outros picos de tráfego, aproveitando os componentes de escalabilidade automática dos serviços sem servidor. Segundo, os dados do X-Ray fornecidos pelo componente de identidade personalizado permitem que os desenvolvedores descubram congestionamentos e calibrem a Orientação de acordo com suas necessidades para otimizar a performance. Por fim, as chaves públicas que validam os JSON Web Tokens são fornecidas pelo CloudFront para otimizar a latência dos componentes de back-end.
-
Otimização de custos
Esta Orientação utiliza componentes sem servidor quando possível, permitindo que você pague somente pelos recursos específicos que usar. Para ajudar ainda mais com os custos, considere os AWS Savings Plans que podem ser utilizados para otimizar o custo do Lambda e do Fargate. Além disso, migrar das tabelas sob demanda do DynamoDB para a capacidade provisionada com escalabilidade automática permite que você use a capacidade reservada do DynamoDB para reduzir custos quando o tráfego básico é conhecido.
Todos os serviços utilizados nesta Orientação são configurados para escalar com base na demanda, incluindo o API Gateway, o Lambda, o DynamoDB, o Amazon S3, o Fargate, o Secrets Manager e o AWS WAF, garantindo que somente os recursos mínimos sejam necessários.
-
Sustentabilidade
Os componentes dos serviços sem servidor nesta Orientação são escalados automaticamente, permitindo que eles sejam escalados e, ao mesmo tempo, correspondam continuamente à carga com apenas os recursos mínimos necessários. Isso reduz o impacto ambiental da infraestrutura ao evitar o provisionamento de capacidade não utilizada.
Conteúdo relacionado
[Título]
Aviso de isenção de responsabilidade
O código de exemplo, as bibliotecas de software, as ferramentas de linha de comando, as provas de conceito, os modelos ou outra tecnologia relacionada (incluindo qualquer uma das anteriores fornecidas por nossa equipe) são fornecidos a você como Conteúdo da AWS nos termos do Contrato de Cliente da AWS ou o contrato por escrito pertinente entre você e a AWS (o que for aplicável). Você não deve usar esse Conteúdo da AWS em suas contas de produção, na produção ou em outros dados essenciais. Você é responsável por testar, proteger e otimizar o Conteúdo da AWS, como código de exemplo, conforme apropriado para uso em nível de produção com base em suas práticas e padrões específicos de controle de qualidade. A implantação de Conteúdo da AWS pode gerar cobranças da AWS para criar ou usar recursos cobráveis, como executar instâncias do Amazon EC2 ou usar armazenamento do Amazon S3.
As referências a serviços ou organizações terceirizadas nesta orientação não implicam em endosso, patrocínio ou afiliação entre a Amazon ou a AWS e terceiros. A orientação da AWS é um ponto de partida técnico, e você pode personalizar sua integração com serviços de terceiros ao implantar a arquitetura.