minio - s3 - 桶策略解释

Posted

技术标签:

【中文标题】minio - s3 - 桶策略解释【英文标题】:minio - s3 - bucket policy explanation 【发布时间】:2021-12-15 14:32:12 【问题描述】:

在迷你。当您使用 mc 命令设置存储桶策略以下载时:

mc policy set download server/bucket

bucket 的策略更改为:


 "Statement": [
  
   "Action": [
    "s3:GetBucketLocation",
    "s3:ListBucket"
   ],
   "Effect": "Allow",
   "Principal": 
    "AWS": [
     "*"
    ]
   ,
   "Resource": [
    "arn:aws:s3:::public-bucket"
   ]
  ,
  
   "Action": [
    "s3:GetObject"
   ],
   "Effect": "Allow",
   "Principal": 
    "AWS": [
     "*"
    ]
   ,
   "Resource": [
    "arn:aws:s3:::public-bucket/*"
   ]
  
 ],
 "Version": "2012-10-17"

我了解到,在第二个声明中,我们授予匿名用户读取权限以下载带有 url 的文件。我不明白的是,为什么我们需要允许他们执行 s3:GetBucketLocation, s3:ListBucket 的操作。

谁能解释一下?

提前致谢

【问题讨论】:

这些是允许访问对象顶层的基本权限 @PrakashS 谢谢,但不设置它们我可以正常下载对象! 您是作为普通用户尝试应用策略还是使用 root 用户? @PrakashS 无,没有用户,但作为访客,来自“localhost:9000/public-bucket/private.txt”等对象的直接链接 请分享您应用的完整政策。 【参考方案1】:

在某些设置中需要GetBucketLocation 来查找存储桶的位置,并且需要与awsclimc 等标准S3 工具兼容。

ListBuckets 用于列出存储桶中的对象。如果没有此权限,您仍然可以下载对象,但不能匿名列出和发现它们。

这些是标准权限,可以安全使用并由mc anonymous 命令(以前称为mc policy)自动设置。通常不需要更改它们 - 尽管您可以通过直接调用 PutBucketPolicy API 来更改它们。

【讨论】:

以上是关于minio - s3 - 桶策略解释的主要内容,如果未能解决你的问题,请参考以下文章

s3 存储桶策略 chrome 错误

S3 存储桶策略与访问控制列表

S3 存储桶策略 IAM 角色显示为 API 密钥

[AWS][安全] S3存储桶策略-Bucket Policy

aws s3 存储桶策略

S3 存储桶策略授予/限制对特定联合用户的访问权限