MinIO用户权限设置
前因
MinIO多用户权限控制管理的实现。
MinIO的简单入门
可通过查看官网文档或者帮助文档进行入门。
https://min.io/docs/minio/linux/operations/installation.html
https://www.wenjiangs.com/doc/minio-minio-quickstart-guide
访问策略
该包实现基于访问策略语言规范(Access Policy Language specification)的解析和验证存储桶访问策略,参考:https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/access-policy-language-overview.html
官方demo.json
{
"Version": "2012-10-17",
"Id": "ExamplePolicy01",
"Statement": [
{
"Sid": "ExampleStatement01",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:user/Dave"
},
"Action": [
"s3:GetObject",
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::awsexamplebucket1/*",
"arn:aws:s3:::awsexamplebucket1"
]
}
]
解释:
-
Version:版本的意思,好像是固定的,看了大家都这么写,没找到原因
-
Actions: 对于每个资源,Amazon S3 支持一组操作。您可以使用操作关键字标识将允许(或拒绝)的资源操作。
-
Principal :被允许访问语句中的操作和资源的帐户或用户。在存储桶策略中,委托人是作为此权限接收者的用户、账户、服务或其他实体。
-
Condition: 政策生效的条件。您可以使用 AWS范围的密钥和 Amazon S3 特定的密钥来指定 Amazon S3 访问策略中的条件。
-
Resource: 存储桶、对象、访问点和作业是您可以允许或拒绝权限的 Amazon S3 资源。在策略中,您使用 Amazon 资源名称 (ARN) 来标识资源。
-
Effect:对于每个资源,Amazon S3 支持一组操作。您可以使用操作关键字标识将允许(或拒绝)的资源操作。
使用demo
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [ // 可以做出的行动(权限)
"s3:ListAllMyBuckets", // 查看所有的“桶”列表
"s3:ListBucket", // 查看桶内的对象列表
"s3:GetBucketLocation",
"s3:GetObject", // 下载对象
"s3:PutObject", // 上传对象
"s3:DeleteObject" // 删除对象
],
"Resource": [
"arn:aws:s3:::*" // (应用到的资源,*表示所有,也可以用路径来控制范围。arn:aws:s3是命名空间)
]
}
]
}
指定Resource下某bucket
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListAllMyBuckets",
"s3:ListBucket",
"s3:PutObject",
"s3:DeleteObject",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::my-bucket/*"
]
}
]
}