我是亚马逊Dynamo数据库的新用户,并且在了解其运行方式时遇到了一些麻烦。我的用例是我想从我的移动应用程序中收集一些数据。每次使用应用程序时都应写入记录。
主要是,我不确定是使用Public,Protected还是Private。我不希望任何用户具有读访问权限,但他们需要写访问权才能将数据发送到我的表。私有似乎是有意义的,但是那么将主键限制为'userId',并且不会这样做,所以每个最终用户只能在DynamoDB中有一条记录?
任何帮助都将不胜感激。
答案 0 :(得分:2)
您还可以在AWS Mobile Hub中创建的DynamoDB NoSQL表上以“公共”权限开始,然后编辑授权策略以从auth和unauth中删除“读取”操作(即获取,扫描,查询)用户NoSQL策略。这将为您提供可直接从Mobile App访问的DynamoDB表,但是处于只写模式
要在AWS Mobile Hub中获取授权策略,请单击左侧导航面板中的“资源”按钮,然后滚动到“AWS Identity and Access Management角色”。 ... unauth ...角色适用于未经身份验证的用户。 ... auth ...角色适用于已登录应用的用户。单击角色,单击... nosqldatabase ...策略,并将“操作”部分修改为仅包含...
"Action": [ "dynamodb:BatchWriteItem", "dynamodb:DeleteItem", "dynamodb:PutItem", "dynamodb:UpdateItem" ],
答案 1 :(得分:1)
首先,考虑一下收集数据的原因。使用移动分析平台可能会更好。由于您使用的是AWS,请查看Amazon Pinpoint或AWS Mobile Hub。
如果您确实希望将活动推送到云中,那么我建议您实施移动应用程序使用JSON blob调用的AWS Lambda。然后,该blob将被Lambda验证并注入DynamoDb。通过这种方式,您可以获得&#34;只读&#34;保护(因为只有Lambda暴露给您的客户端),您还可以收集所需的任何JSON blob,并保护自己免受恶意攻击者的攻击。</ p>