如何在生产环境中使用AWS Cognito?

时间:2018-01-04 14:08:22

标签: amazon-cognito aws-cognito

我正在开发一个应用程序,我在其中使用AWS Cognito来存储用户数据。我正在努力了解如何管理Cognito的备份和灾难恢复方案!

以下是我的主要问题:

  1. 我想知道这个存储的用户数据的可用性是什么?
  2. Cognito有哪些可能出现的情况,我需要采取这些方案 在我们投入生产之前要小心吗?

3 个答案:

答案 0 :(得分:3)

  1. AWS没有任何针对AWS Cognito的已发布SLA。因此,您对Cognito中存储的数据没有正式保证。至于数据的安全性,AWS Cognito使用其他AWS服务(例如,我认为是Dynamodb)。这些服务中的数据将跨可用区复制。

  2. 我猜您要求灾难恢复方案。你无能为力。如果您使用Userpools,则目前没有用于导出用户数据的功能。虽然您可以通过编写自定义脚本来实现此目的,但内置的备份功能将更加高效。可靠。如果您使用联合身份,则无法导出&重新使用身份。如果您使用Cognito Sync提供的数据集,则可以使用Cognito Streams捕获数据集更改。这并不是备份数据的绝佳方式。

  3. 简而言之,关于可用性,没有正式备份或DR功能,没有官方消息。我听说有相同的功能请求,但谁知道它们何时会被释放。您可以通过编写自定义代码或遵循任何最佳实践来做很多事情。我唯一能想到的是通过使用AdminGetUser API编写自定义脚本来定期备份Userpool的用户数据。但同样,您可以调用此API的次数有速率限制。因此,使用此方法备份可能需要很长时间。

答案 1 :(得分:0)

AWS now offers a SLA for Cognito。如果他们无法达到其可用性目标(在撰写本文时为99.9%),您将获得服务积分。

答案 2 :(得分:0)

即使有几种第三方解决方案,还原用户池时,也将使用管理流程创建用户(不还原用户,而是从管理员创建用户),并且最终会出现“强制更改密码” “ 状态。因此,将迫使用户使用临时密码来更改密码,而这必须从应用程序的前端进行简化。

更多信息:https://docs.amazonaws.cn/en_us/cognito/latest/developerguide/signing-up-users-in-your-app.html

可用工具。

  1. https://www.npmjs.com/package/cognito-backup
  2. https://github.com/mifi/cognito-backup
  3. https://github.com/rahulpsd18/cognito-backup-restore
  4. https://github.com/serverless-projects/cognito-tool

请记住,其中一些工具已过时,无法使用。我已经测试过“ cognito-backup-restore”,并且按预期工作。

此外,您还必须考虑如何保护这些工具输出的用户信息。通常,他们会创建一个包含所有用户信息的json文件(密码无法备份,密码除外),并且该文件未加密。

到目前为止,最好的解决方案是防止意外删除带有AWS SCP的用户池。