Amazon s3 Bucket策略允许上载某些文件类型
我已经通过Amazon s3 Bucket策略允许上载某些文件类型,amazon-s3,minio,Amazon S3,Minio,我已经通过mc构建了minio服务器来存储带有自定义策略的文件。我有下面的政策文件 "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Resou
mc
构建了minio
服务器来存储带有自定义策略的文件。我有下面的政策文件
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:PutObject"
],
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Resource": [
"arn:aws:s3:::my_bucket_name/*.jpg"
],
"Sid": "Statement1"
},
{
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Resource": [
"arn:aws:s3:::my_bucket_name/*"
],
"Sid": "Statement2"
}
]
}
语句s3:GetObject
正在工作,但语句s3:PutObject
不工作。我仍然在MinIO浏览器上上传所有内容。那么,我要做的就是只上传jpg图片。你看到了吗?它详细介绍了一种比上述方法略为全面的方法。也就是说,允许一个给定的扩展,授予用户权限,并且禁止任何不是该扩展的内容-剥夺具有*
权限的用户上载任何其他内容的能力
如果不知道“不工作”是什么意思,就很难调试。您能提供您正在使用的命令以及任何例外情况吗?在我脑海中,以下是我将尝试的调试尝试:
.jpg
,而不是.jpg
或.jpeg
或.jpeg
“arn:aws:s3::my_bucket\u name/*”
有效吗?如果不是,那么将其更改为“*”
另一方面:我对文件类型限制持怀疑态度,因为文件类型只是表面上强制的。任何可以重命名文件的人都可以上传它,因为
.jpg
只是一个扩展名,不保证实际内容。在最好的情况下,强制执行扩展规则是用户的一条快乐之路,但实际上,您不能依靠它来保护您的系统免受任何影响。上述似乎是一个桶策略,对吗?当您说您仍然可以上载所有内容时,您使用的凭据以及与这些凭据关联的权限是什么?例如,如果您正在使用来自IAM用户的凭据,并且该用户拥有已授予对bucket的访问权限(例如s3:
),则您将拥有上载任何内容的权限。这可能没问题,因为你“拥有”了这个系统。问题是用户将如何上传到该存储桶,以及他们将使用什么凭据?他们是否具有IAM凭据?他们是否正在使用应用程序?您是否能够解决此问题?只是想知道这样的事情是否可以用minio来完成。@properchels问题解决了。当我用access key和secret key设置minio时,它也是管理员帐户,我认为管理员帐户有完整的策略,我尝试用自定义策略(上面的json文件)创建一个用户帐户,该用户帐户受限制。谢谢你的回复。我已经看到了这个链接,并遵循了它。就我而言,我有两个问题。第一个是限制访问公共bucket,我使用mc
用语句{“Action”:[“s3:GetObject”],“Effect”:“Allow”,“Principal”:{“AWS”:[“*”]},“Resource”:[“arn:AWS:s3:::my_bucket_name/*”],“Sid”:“Statement2”}
并且它正在工作,我可以获得公共url,但不登录就无法访问Minio浏览器。第二个问题:在Minio浏览器中,我只允许上载扩展名为.jpg
的文件。我已经遵循了您在上面共享的链接,我的语句2类似于{“Action”:[“s3:PutObject”],Effect:“Allow”,“Principal:{“AWS”:[“*”]},“Resource::[“arn:AWS:s3:::my_bucket_name/*.jpg”],“Sid:“Statement1”}
但是,我可以在Minio浏览器中上载所有内容(例如:pdf,exe,…)我尝试只使用语句putObject
,但不起作用。我仍然尝试使用具有效果的语句putObject:“允许”
和NotResource
,但它有错误mc:无法设置json策略
/tmp/policy.json`forminio/my_bucket\u name
。策略的资源无效。`所以您的第一个问题,'限制访问公共存储桶”已解决?关于“我可以在Minio浏览器中上载所有内容(例如:pdf、exe等)”:这可能是因为Minio允许写入所有内容(根据某些策略,在某些地方)。若要禁止非jpg,您需要在我的回答中包含链接中的禁止策略,这将覆盖其他地方的任何更通用的允许策略。问题已解决。当我使用访问密钥和密钥设置minio时,它也是管理员帐户,我认为管理员帐户具有完整策略,我尝试创建一个用户a使用自定义策略(上面的json文件)进行帐户,此用户帐户受政策限制。