繁体   English   中英

如何仅允许特定用户访问Amazon S3上的内容

[英]How to allow only a specific user to access a content on Amazon S3

我是Amazon S3的新手。 我需要一些S3存储解决方案的帮助。 这是我的问题。

我在Amazon S3中创建了一个存储桶。 现在每个人都可以访问我的存储桶URL(例如https://BUCKET_NAME.s3.amazonaws.com ),他们可以看到存储桶中的所有文件。 我只希望我的移动应用用户能够查看/查看/下载存储桶中的文件。 但是,如果我阻止文件/将存储桶中的文件设置为私有,我的移动应用程序用户将无法查看他/她的文件。

所以问题是:

  • 有没有办法保护对AWS S3的访问? 或者我如何只允许特定用户访问Amazon S3上的内容? 它是服务器端身份验证还是其他什么?

如果你知道怎么做,你能告诉我一个例子吗? 谢谢 :)

注意 :我使用Parse JavaScript SDK,AWS S3,AWS EC2,Elastic beanstalk和Ionic 2与Angular 2。

如果您认为我错过了任何细节,请告诉我,以便我可以添加:)

有多个选项可用于保护特定用户的访问权限。

  • 如果您使用的是AWS Cognito,则可以使用AWS JavaScript SDK使用IAM策略授予对S3中特定存储桶和对象的访问权限,并在使用AWS Cognito(或通过Cognito联合)通过Angular应用程序进行身份验证后临时访问您收到的凭据。
  • 您还可以使用AWS CloudFront 签名URL签名Cookie来保护对S3对象的访问。 要使用后端端点(对于经过身份验证的用户)访问内容,您可以生成签名URL或签名Cookie,Angular应用程序将使用它来通过CloudFront访问S3。
  • 另一种选择是从服务器端访问S3并返回文件(与其他方法相比,这将大大增加服务器的开销,因此除非您有特定的方案在检索之前动态修改文件或内容,否则不建议这样做)
  • 您还可以使用AWS API Gateway作为S3的代理来提供文件。 这里有10MB的文件大小限制,因为API网关最多可以传输10MB的文件。

您可以通过S3桶访问特定的IAM角色。 因此,创建一个新用户并将IAM策略附加到该用户。 使用该角色配置Lambda。 如果需要,您可以创建多个角色取决于每种用户类型(示例: - 对移动用户唯一的角色,桌面用户的另一个角色等)

在此处详细了解如何限制Amazon S3 Bucket访问特定IAM角色

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM