Amazon web services 如何获取S3安全访问表单应用程序?

Amazon web services 如何获取S3安全访问表单应用程序?,amazon-web-services,security,amazon-s3,Amazon Web Services,Security,Amazon S3,如何从web URL安全地访问、上载和删除S3 bucket的对象 我们正在从应用程序访问S3中的对象。但这个桶是公开的,不安全 我在s3 bucket上尝试了CloudFront和OAI,并将bucket设置为私有,但在尝试将对象上载到s3 bucket时,应用程序的访问被拒绝 我们想上传和删除s3 bucket中的对象。我们只想让那个桶成为私人的。我们只想从web应用程序而不是从CLI,而不是从任何工具来实现这一点。我们如何才能做到这一点 如有任何建议,将不胜感激 谢谢 您的应用程序可以使用

如何从web URL安全地访问、上载和删除S3 bucket的对象

我们正在从应用程序访问S3中的对象。但这个桶是公开的,不安全

我在s3 bucket上尝试了CloudFront和OAI,并将bucket设置为私有,但在尝试将对象上载到s3 bucket时,应用程序的访问被拒绝

我们想上传和删除s3 bucket中的对象。我们只想让那个桶成为私人的。我们只想从web应用程序而不是从CLI,而不是从任何工具来实现这一点。我们如何才能做到这一点

如有任何建议,将不胜感激


谢谢

您的应用程序可以使用直接与AWS服务通信

您的应用程序需要一组凭据才能访问AWS帐户中的资源。这可以通过以下两种方式之一实现:

  • 如果应用程序在Amazon EC2实例上运行,请为该实例分配一个IAM角色
  • 否则,使用AWS CLI
    AWS configure
    命令创建一个IAM用户并将AWS凭据存储在应用程序服务器上

您可以控制授予IAM角色/IAM用户的确切权限和访问权限。这可以包括授予应用程序访问AmazonS3存储桶的权限。通过这种方式,bucket可以保持私有,但应用程序将能够上载/下载/删除bucket中的对象。

要对前面的答案进行补充,您可以在AWS Github中找到许多S3SDK示例,位于此处:

如果您查看每种编程语言,就会发现AmazonS3示例。当bucket私有时,可以使用AWS SDK对其执行操作。您还可以进一步提高安全性,并使用加密,如下所示:

此外,您还可以使用AWS SDK从web应用程序与Amazon S3 bucket交互。下面是一个使用Spring Boot构建web应用程序的示例,它通过读取bucket中的所有对象与Amazon S3 bucket交互


使用长期凭证是一种不好的做法。AWS建议将短期凭证与STS一起使用。这里有一篇文章使用Python/Flask使用STS/short-term凭证将文件上传到私有S3 bucket中


我本可以在这篇文章中列出所有步骤。但是,它有点太长了,因此上面的链接参考。

您的应用程序使用的是什么编程语言?对于非EC2方法,使用永久凭据不是一种不好的做法吗。建议使用STS使用临时凭据。@PraveenSripati问题是。。。应用程序如何进行身份验证以获取临时凭据?它需要一些可以说“我就是这个应用程序,让我进来!”。这就是为什么它需要IAM用户(永久)凭据。明白了,谢谢!!