gpt4 book ai didi

amazon-web-services - 克服 S3 中的 1000 个存储桶限制/使用访问点

转载 作者:行者123 更新时间:2023-12-05 08:51:30 33 4
gpt4 key购买 nike

我每个客户有 1 个 s3 存储桶。客户是外部实体,他们不与其他任何人共享数据。我写入 S3,客户从 S3 读取。根据此架构,我只能扩展到 1000 个存储桶,因为每个帐户的 s3 存储桶有限制。我希望使用 AP 为每个客户创建 1 个 AP,并将数据放入一个桶中。然后,客户可以使用 AP 从存储桶中读取文件。

Bucket000001/prefix01 。 -> customeraccount1

Bucket000001/prefix02 。 -> 客户帐户 2...

S3 访问点要求您为访问点中的 IAM 用户以及存储桶级别设置策略。如果我有 1000 个 IAM 用户,我是否需要为存储桶中的每个用户设置策略?这将导致一项巨大的政策。存储桶中有最大策略大小,所以我可能无法做到这一点。这是接入点可以提供帮助的正确用例吗?

最佳答案

推荐的方法是:

  • 请勿将 IAM 用户分配给您的客户。这些类型的 AWS 凭证只能由您的内部员工和您自己的应用程序使用。
  • 您应该提供一个 Web 应用程序(或 API),客户可以在其中根据您自己的用户数据库进行身份验证(或者您可以使用 Amazon Cognito 来管理身份验证)。
  • 一旦通过身份验证,应用程序应授予访问 Web 界面以访问 Amazon S3 的权限,或者应用程序应提供临时凭证 以访问 Amazon S3(更多详情见下文).
  • 不要为每个客户使用一个桶。这是不可扩展的。相反,将所有客户数据存储在一个桶中,每个用户都有自己的文件夹。您可以在 Amazon S3 中存储的数据量没有限制。这也使您更容易管理和维护,因为它更容易跨所有内容执行功能,而不必进入单独的存储桶。 (如果您希望按客户位置(区域)或客户类型对存储桶进行分割,则可能是一个异常(exception)。但不要为每个客户使用一个存储桶。没有理由这样做。)
  • 授予对 Amazon S3 的访问权限时,在文件夹级别分配权限以确保客户只能看到他们自己的数据。

选项 1:通过 Web 应用程序访问

如果您的客户通过 Web 应用程序访问 Amazon S3,那么您可以对该应用程序进行编码以在文件夹级别实现安全性。例如,当他们请求文件列表时,只显示其文件夹中的文件。

这种安全性可以完全在您自己的代码中进行管理。

选项 2:通过临时凭证访问

如果您的客户使用编程访问(例如使用 AWS CLI 或在他们的系统上运行的自定义应用程序),则:

  • 客户应对您的应用程序进行身份验证(如何完成将因您对用户进行身份验证的方式而异)
  • 一旦通过身份验证,应用程序应使用AWS Security Token Service (STS)生成临时凭证 。生成凭据时,授予对 Amazon S3 的访问权限,但在 ARN 中指定客户的文件夹(例如 arn:aws:s3:::storage-bucket/customer1/* ),以便他们只能访问他们文件夹中的内容。
  • 将这些临时凭据返回给客户。然后,他们可以使用这些凭据直接对 Amazon S3 进行 API 调用(例如,从 AWS Command-Line Interface (CLI) 或自定义应用程序)。他们将被限制在自己的文件夹中。

此方法通常用于移动应用程序。移动应用程序针对后端进行身份验证,接收临时凭据,然后使用这些凭据直接与 S3 交互。因此,后端应用仅用于身份验证。

YouTube 上的示例:

关于amazon-web-services - 克服 S3 中的 1000 个存储桶限制/使用访问点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59833355/

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