AWS移动应用程序的最佳解决方案,DynamoDB,& S3场景

时间:2016-02-04 03:12:27

标签: amazon-s3 amazon-ec2 amazon-dynamodb

我正计划推出适用于移动设备的游戏应用。用户将使用其现有的社交媒体帐户登录游戏,以简化数据捕获。 B公司希望直接将玩家数据和评分信息从移动应用程序保存到名为Score Data的DynamoDS表中。当用户保存游戏时,进度数据将存储到Game状态S3存储桶中。

将数据存储到DynamoDB和S3的最佳方法是什么?

  

选项1:使用以EC2角色启动的EC2实例,提供对Score Data DynamoDB表的访问权限,以及通过Web服务与移动应用程序通信的GameState S3存储桶。

     

选项2:使用临时安全凭证,该凭据承担一个角色,使用Web身份联合提供对Score Data DynamoDB表和Game State S3存储桶的访问权。

我与选项1交谈的许多建筑师都是正确的。但根据AWS doco,似乎Option2也是有效的。任何输入都将不胜感激!

1 个答案:

答案 0 :(得分:2)

我强烈考虑使用Amazon Cognito的Option#2为您的用户提供临时凭证,使他们能够直接和专门访问DynamoDB和S3。

一般来说,您需要:

  1. 创建新的Cognito Identity Pool并设置2个IAM角色 - 一个用于经过身份验证的用户,另一个用于未经身份验证的用户(可选)。 https://docs.aws.amazon.com/cognito/devguide/getting-started/?platform=ios
  2. 通过您自己的身份验证提供程序或通过Facebook,Twitter等外部提供程序对用户进行身份验证,然后使用Cognito为其创建临时凭据。 https://docs.aws.amazon.com/cognito/devguide/identity/external-providers/
  3. 使用凭据访问DynamoDB和/或S3。只要您正确设置IAM角色,您的AWS资源就会受到保护。例如,您可以对DynamoDB表进行细粒度访问,以便用户无法访问不属于它们的行。有关详细信息,请参阅以下链接:https://docs.aws.amazon.com/cognito/devguide/identity/concepts/iam-roles/
  4. Cognito开发者指南位于:https://docs.aws.amazon.com/cognito/devguide/