- LINUX
- GIT
- DOCKER
- DOCKERFILE
- DOCKER-COMPOSE
- DOCKERSWARM
- KUBERNETES
- ANSIBLE
- BASH
- DOCKERFILE
- DOCKER-COMPOSE
- JENKINSFILE
- JENKINS-PIPELINE
- GITLAB CI/CD
- GROOVIE
- INSTALL
- PODS
- INGRESS
Minio: пользователи и права доступа к бакетам и файлам
Небольшая памятка по установке и разграничению прав клиента в Minio S3
Установка клиента
# macOS
brew install minio/stable/mc
# Windows
Download https://dl.min.io/client/mc/release/windows-amd64/mc.exe
# Linux
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
Авторизация клиента
ALIAS - имя подключения
S3-ENDPOINT - URL вашего minio сервера
ACCESS-KEY - ключ доступа
SECRET-KEY - пароль.
mc alias set <ALIAS> <S3-ENDPOINT> <ACCESS-KEY> <SECRET-KEY>
Создание пользователя
mc admin user add <ALIAS>
Создание бакета
mc mb <ALIAS>/<BUCKET_NAME>
Добавление пермишшенов
Права доступа добавляются через концепцию policy. Для примера добавим права администрирования объектов для определенного бакета, а после - выдадим эти права нашему пользователю.
Создаем локальный файл bucket-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:*"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::<BACKET_NAME>/*"
],
"Sid": ""
}
]
}
Или еще пример, который дает право на запись определенному пользователю только в его бакет. Но, при этом, он может видеть все остальное:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:PutBucketPolicy",
"s3:GetBucketPolicy",
"s3:DeleteBucketPolicy",
"s3:ListAllMyBuckets",
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::user2bucket"
],
"Sid": ""
},
{
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::user2bucket/*"
],
"Sid": ""
}
]
}
В данном файле мы описываем права доступа для бакета <BACKET_NAME>.
После этого нам потребуется выгрузить пермиссии на сервер и сохранить под именем <POLICY_NAME>:
mc admin policy add <ALIAS> <POLICY_NAME> ./bucket-policy.json
Далее нам нужно применить наш policy к ранее созданному пользователю:
mc admin policy set <ALIAS> <POLICY_NAME> user=<USER_NAME>