以编程方式将文件上传到 S3 存储桶采用哪种身份验证模式

问题描述 投票:0回答:1

我以前从未这样做过。我想做的是允许已经在我自己的网站上进行了身份验证的客户通过我自己网站上的仪表板将文件上传到 S3 存储桶。以下是该过程的细分。

  1. 客户登录我的网站
  2. 客户被重定向到仪表板
  3. 客户可以在仪表板中选择上传文件
  4. 如果客户上传文件,则会向 upload.php 发送获取请求
  5. Upload.php 清理并验证数据
  6. Upload.php 应该将文件上传到 S3 存储桶

我正在阅读 SDK for PHP V3 文档,其中指出,“[我]必须确定[我的]代码如何通过 AWS 进行身份验证。”我已阅读 建议的链接,但仍不清楚对我来说,我应该使用哪种身份验证模式作为身份提供者

我应该创建一个 IAM 用户并使用其凭证吗?在做了更多阅读之后,这对我来说似乎是最合适的方法(我缺乏这方面的经验和知识)...还有另一种方法吗推荐的还是更安全的方式?

php amazon-web-services authentication amazon-s3 sdk
1个回答
0
投票

有两种方法可以为您的应用程序提供 AWS 凭证。

如果您的应用程序在 Amazon EC2 实例上运行,那么您应该:

  • 创建具有所需权限的 IAM 角色
  • 将 IAM 角色与 EC2 实例关联
当您的 PHP 应用程序使用适用于 PHP 的 AWS 开发工具包时,它将自动检索将用于访问 Amazon S3 等 AWS 服务的

临时凭证如果您的应用程序在

AWS 之外运行

,您应该创建一个具有所需权限的 IAM 用户。然后,您可以为该 IAM 用户创建安全凭证,该凭证将具有访问密钥和秘密密钥(类似于用户名和密码)。然后,应通过运行 AWS CLI aws configure 命令将这些凭证存储在您的计算机上。这会将凭据存储在配置文件中。当您的 PHP 应用程序使用适用于 PHP 的 AWS 开发工具包时,它将自动检索这些凭证并在与 AWS 通信时使用它们。

考虑使用

Amazon S3 预签名 URL

也是明智之举,它可用于让最终用户将文件上传到 S3 存储桶。该存储桶仍然是私有的,但预签名的 URL 将允许他们在特定时间段(例如 5 分钟)内上传文件。这可能是允许他们将文件上传到您的系统的另一种方式。

© www.soinside.com 2019 - 2024. All rights reserved.