【发布时间】:2019-03-08 20:00:45
【问题描述】:
我正在使用 AWS amplify 创建一个应用程序,用户可以在其中使用私有或公共文件访问级别上传图像,如文档中所述。除此之外,我还实现了一个 lambda 函数,该函数通过 API 网关根据请求修改图像并返回修改后图像的链接。
我想要的是给定用户应该能够调用 API 并只修改他自己的图像,而不是其他用户的图像;即允许 AWS lambda 函数使用 cognito 用户的执行角色。如果我允许 lambda 函数访问 S3 存储桶中的所有数据,那么它可以正常工作 - 但我不希望用户能够访问其他用户的图像。
我已经做了一段时间了,尝试了不同的方法都无济于事。
现在我已将 API 与用户池集成,如下所述: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-enable-cognito-user-pool.html
然后我尝试按照本指南进行操作: https://aws.amazon.com/premiumsupport/knowledge-center/cognito-user-pool-group/
这不起作用,因为 lambda_handler 的事件变量中不存在“cognito:roles”(大概是因为没有用户池组?)。
在 AWS Amplify 应用程序中执行此操作的正确方法是什么? 首先,我遵循了本指南: https://aws.amazon.com/premiumsupport/knowledge-center/cognito-user-pool-group/
【问题讨论】:
-
你有没有弄明白?我真的很感兴趣:-)
标签: amazon-s3 aws-lambda amazon-cognito aws-amplify