gpt4 book ai didi

amazon-web-services - 允许使用 Cognito 访问 S3 上的自定义前缀

转载 作者:行者123 更新时间:2023-12-04 18:00:11 26 4
gpt4 key购买 nike

我需要允许用户使用我无法更改的特定前缀(即 username1)访问 S3 上的文件,所以我不能只使用 ${cognito-identity.amazonaws.com :sub} 作为前缀。我的 S3 存储桶已经填充了特定前缀下的内容 - 因此用户登录到我的应用程序,然后被允许访问这些特定前缀之一

目前在 AWS 上设置,允许用户使用 Firebase 和开发人员经过身份验证的身份以 Cognito 角色进行身份验证。每个用户帐户(电子邮件/密码)都有一个他们必须能够访问的关联 S3 前缀。一些用户将共享此前缀(例如,两个用户访问 S3-bucket/username1)。用户不应该能够列出或访问除其关联前缀之外的任何其他前缀。

我不太确定完成此任务的最佳方法是什么——仅使用 Cognito 角色或使用数据库和 lambda 函数 + api 端点、存储桶/用户策略或 ACL。有没有我缺少的简单方法?

刚接触 AWS,非常感谢任何帮助!

tl;dr:如何只允许用户访问 S3 上带有特定前缀的文件,该前缀不是 ${cognito-identity.amazonaws.com:sub} 变量?

最佳答案

如评论中所述,Amazon Cognito 目前不直接支持您的用例。您可以实现类似以下内容来实现您的目标:

  1. 像往常一样使用 Cognito 对您的用户进行身份验证。 Cognito 身份将有权调用 API 网关端点。
  2. 您的 API(在 Lambda 中运行)使用 Cognito 身份 ID(在上下文中提供)来查找 Cognito 身份到您的自定义 S3 前缀的映射。
  3. 您的 API 使用 STS 生成临时凭据以访问该前缀,并将它们返回给客户端。
  4. 客户端使用这些凭据直接向 S3 发出请求。

关于amazon-web-services - 允许使用 Cognito 访问 S3 上的自定义前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36488068/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com