AWS Cognito 用户 + 关系数据库表。如何查询/整合两者?

nem*_*ver 5 mysql lambda amazon-web-services amazon-rds amazon-cognito

我是 AWS 新手,我确实需要这方面的帮助。我有一个现有的 RDS 架构,其中包含用户表,还有我自己的使用 JWT 的用户身份验证算法/系统。一切都很好,直到我开始将文件上传到 S3。我在上传到S3时发现了这一点。我们不能传递额外的参数,只能传递 body、key、c​​ontentType 和哪个存储桶。我想传递额外的参数,例如当前登录用户的访问令牌(用于用户验证安全)、user_id、照片标题和标题。但这是不可能的。

我应该怎么办?我应该使用 AWS Cognito 用户池而不是使用 RDS 用户吗?如果我使用 Cognito 用户池,是否可以执行 SQL 查询,例如连接 Cognito 用户和另一个 RDS 表?我很困惑。如果我听起来像个白痴,我很抱歉。但我确实需要一些帮助。

我希望有人可以。我真的很感激。预先非常感谢您。

Dig*_*aen 2

我假设您的上传逻辑位于 Lambda 中。在这种情况下,您只需在 Lambda 函数中进行上传授权即可。通过将 IAM 策略附加到 Lambda 使用的 IAM 角色,允许 Lambda 函数将数据上传到 S3。

如果您直接从客户端上传到 S3,那么您可以在没有身份验证/授权的情况下执行此操作,也可以使用联合身份。在这种情况下,您可以将所有用户导出到 Cognito 用户池(并使它们保持同步),或者创建您自己的身份提供程序并为 Cognito 身份池注册您的用户。

最干净但可能也是最难的方法是保持身份验证,通过 OpenID、SAML 或您自己的方法与 Cognito 身份池集成(请参阅http://docs.aws.amazon.com/cognito/latest/developerguide/developer -authenticated-identities.html)。

仅当 a) 您的身份验证确实很好并且 b) 您已验证 Cognito 身份池中的用户确实满足您的要求/业务规则时,您才应该采用这种方式。