gpt4 book ai didi

amazon-web-services - 如何在不使用 IAM 的情况下允许第三方文件上传到私有(private) S3 存储桶?

转载 作者:行者123 更新时间:2023-12-05 09:16:31 26 4
gpt4 key购买 nike

我能否在不使用 IAM 的情况下允许第 3 方文件上传到 S3 存储桶?我想避免向他们发送 AWS 账户凭证的麻烦,但仍然利用 S3 UI。我只找到了一个或另一个的解决方案。

pre-signed url这个选项听起来不错,但似乎只适用于他们的 SDK,我不会告诉我的客户在他们的计算机上安装 python 来上传文件。

browser based upload要求我制作自己的前端 html 表单并在服务器上运行以上传(笑)。

我不能简单地创建一个预签名的 url 来将用户导航到 S3 控制台并允许他们在到期时间之前上传吗?当然,将存储桶公开也不是一种选择。为什么这么复杂!

最佳答案

管理控制台

Amazon S3 管理控制台将仅显示与用户的 AWS 账户关联的 S3 存储桶。此外,无法限制显示的存储桶(它将显示帐户中的所有 存储桶,即使用户无法访问它们)。

因此,您肯定不想让他们访问您的 AWS 管理控制台。

预签名 URL

您的用户要求 AWS 开发工具包使用预签名 URL。相反,您必须运行您自己的系统来生成预签名 URL 并使其可供用户使用(例如通过网页或 API 调用)。

网页

您可以在 Amazon S3 上托管静态上传页面,但它无法对用户进行身份验证。由于您只希望向特定人员提供访问权限,因此您需要在后端运行一些代码来对他们进行身份验证。

生成...

您问:“我不能简单地创建一个预签名的 url,将用户导航到 S3 控制台并允许他们在到期时间之前上传吗?”

是也不是。是的,您可以生成预签名 URL。但是,它不能与 S3 控制台一起使用(见上文)。

为什么这么复杂?

因为安全很重要。

那么,该怎么办?

几个选项:

  • 使存储桶公开可写,但不可公开读取。告诉您的客户如何上传。缺点是任何人都可以上传到存储桶(如果他们知道的话),所以它只是默默无闻的安全。但是,这对您来说可能是一个简单的解决方案。
  • 生成一个非常长生命周期的预签名 URL。您可以创建一个可以使用数月或数年的 URL。将此提供给他们,他们就可以上传(例如,通过您提供给他们的静态 HTML 页面)。
  • 为他们生成一些 IAM 用户凭证,然后让他们使用类似 AWS Command-Line Interface (CLI) 的实用程序或 Cloudberry .为他们提供足够的凭据以进行上传访问。这假设您只有少数客户需要访问权限。

底线:安全很重要。然而,您希望“避免向他们发送凭据的麻烦”,也不希望运行系统来执行身份验证检查。不做一些工作就无法获得安全性,安全性差的成本将远远高于实现良好安全性的成本。

关于amazon-web-services - 如何在不使用 IAM 的情况下允许第三方文件上传到私有(private) S3 存储桶?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50354904/

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