首页 > 解决方案 > 有没有办法在不使用额外的 AWS Lambda 来检查授权的情况下将 S3 Bucket 与 Appsync 集成?

问题描述

我的堆栈:

AWS Appsync + AWS Lambda(到 Mongodb)+ 自定义 OpenId-Connect 提供程序(也是 Lambda)

我想要达到的目标

我想将一些用户数据存储到 S3 存储桶中。我希望我可以直接从 appsync 访问存储的数据,而不是每次必须访问数据时调用 lambda 进行授权检查。

我想存储的信息主要有两种。例如,userPicture 和 userSecret。

  1. 用户图片,任何人都可以访问。

由于没有访问控制检查,这部分可以通过发出 presignedUrl 来实现。无需进一步授权。

  1. userSecret,可以被自己和所有管理员访问

这是我试图避免调用另一个 lambda 来进行授权检查的部分。我已经将其userId and role存储在 中$context.identity,但还没有找到实际执行检查的方法。

有没有办法可以避免 lambda 开销?

标签: amazon-web-servicesamazon-s3aws-lambdaaws-appsync

解决方案


AppSync 最近推出了对多个授权提供程序的支持。因此,例如,您可以使用 OpenID Connect 提供程序保护您的 userSecret,并使用 Api 密钥保护您的 userPictures。这是否满足您的用例?


推荐阅读