【发布时间】:2015-04-18 17:47:45
【问题描述】:
假设我有以下 s3 结构
company_folder
folder1
folder2
folder3
sub_folder1
sub_folder2
我目前拥有以下权限,允许访问每个文件夹、子文件夹和文件。这是一个网络应用程序。
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::company_folder/*"
使用管理员 IAM 访问密钥 ID:ABCD 我可以使用carrierwave 将图像放入子文件夹中。我使用单个云端根 URL 来传递来自各种“文件夹”和“子文件夹”的图像
发送到“sub_folder2”的图像不会显示在网站上,它们是高分辨率的。除了管理员之外,任何人都不应访问它们。
如何在“company_folder”的存储桶策略中更改对“sub_folder2”的限制
我需要拒绝除管理员之外的所有人对“sub_folder2”的 GET 和 PUT 访问,同时保持对“company_folder”中其他所有内容的公开阅读。
我认为“company_folder”需要保持公开状态,因为这是我的云端 URL 指向的位置。
这只是编辑存储桶策略的简单解决方案吗?
【问题讨论】:
-
为更敏感的数据设置不同的存储桶可能更容易
-
我想我需要把它放在同一个桶下,因为我用carrierwave将其他图像推送到company_folder。不确定我是否可以指向单个载波初始化程序中的两个存储桶 config.asset_host = ENV['HOST_NAME'] config.fog_directory = ENV["S3_BUCKET_NAME"]
标签: amazon-web-services amazon-s3 policy amazon-iam