我试图了解与Amazon S3有关的访问安全性。我想在S3存储桶中托管一些文件,使用CloudFront通过我的域访问它。我需要限制访问某些公司/个人。另外,我需要单独管理该访问权限。
第二种访问模型是基于项目的,我需要为特定的项目团队提供文件库,并且我需要能够以临时方式添加和删除团队成员,然后关闭对整个项目在某个时候。两种情况下,相关的存储桶可能都是相同的。
我认为在AWS中可能会发生这种情况,但是我在AWS站点上能找到(并理解)的所有内容都涉及使用IAM通过AWS控制台控制访问。我没有看到任何迹象表明我可以创建一个IAM用户,将它们添加到IAM组,为该组提供对存储桶的只读访问权限,然后通过PowerShell中的System.Net.WebClient
提供名称和密码以实际下载可用文件。我是否缺少某些东西,这有可能吗?还是我不认为可以使用AWS做到这一点?
我确实发现Amazon CloudFront vs. S3 --> restrict access by domain? - Stack Overflow谈论使用CloudFront限制域访问,但是在WfH方案中将不起作用,因为这些家用计算机不在公司域中,而是在公司BIM上经理需要管理WfH工作人员对内容库的访问。我真的希望我不会碰到一个AWS的例子,只是没有为当前的现实做好准备。
答案 0 :(得分:1)
如果您愿意颁发IAM用户凭据(每个帐户最多5000个),则步骤为:
aws configure
(使用AWS Command-Line Interface (CLI)来存储其访问密钥和秘密密钥如果您希望用户能够通过Amazon S3管理控制台进行访问,则需要提供一些其他权限:Grant a User Amazon S3 Console Access to Only a Certain Bucket
或者,用户可以使用CyberDuck之类的程序来轻松地拖放到Amazon S3的界面。 Cyberduck还将询问访问密钥和秘密密钥。
答案 1 :(得分:0)
默认情况下,存储在Amazon S3中的内容是私有的。可以授予访问权限的几种方法:
要提供有关预签名URL的示例,请假设您有一个照片共享网站。用户提供的照片是私人的。流程为:
<img>
标签中) 。此体系结构使应用程序执行围绕“访问权限”的所有逻辑。它非常灵活,因为您可以编写所需的任何规则,然后将用户发送到Amazon S3以获取文件。可以将其想像成在线购买剧院门票-您只需出示门票和门,就可以坐在座位上了。这就是Amazon S3所做的-它正在检查票证(签名的URL),然后为您提供对该文件的访问权限。
移动应用
另一种通用架构是使用AWS安全令牌服务(STS)生成临时凭证。这通常是通过移动应用程序完成的。流程是:
该架构利用了以下事实:移动应用程序功能强大,它们可以与AWS服务(例如Amazon S3)直接通信。授予的权限取决于登录的用户。这些权限由您要编写代码的后端应用程序确定。可以将其想象为临时员工,该员工已获得一天的建筑通行证,但他们只能进入某些区域。
请参阅:IAM Role Archives - Jayendra's Blog
上述架构是您希望如何开发应用程序的构建模块。每个应用程序都是不同的,就像问题中的两个用例一样。您可以将Amazon S3安全地合并到您的应用程序中,同时完全控制授予访问权限的方式。然后,您的应用程序可以专注于控制访问的业务逻辑,而无需实际提供内容(由Amazon S3决定)。就像无需运行剧院就能售票。
您询问Amazon S3是否“已为当前现实做好准备”。您每天使用的许多受欢迎的网站都在AWS上运行,您可能从未意识到。