O Minio é um armazenamento de objeto simples, rápido e compatível com o AWS S3. O Minio foi projetado para hospedar dados não estruturados, como fotos, vídeos, arquivos de log, backups. O Minio também suporta o modo distribuído, que fornece a capacidade de conectar várias unidades a objetos no mesmo servidor de armazenamento, incluindo aqueles localizados em máquinas diferentes.
O objetivo desta postagem é configurar o minio para que cada usuário possa trabalhar apenas com seu próprio bucket.
Em geral, o Minio é adequado para os seguintes casos:
- armazenamento livre de replicação em cima de um sistema de arquivos confiável com acesso via S3 (armazenamentos de pequeno e médio porte localizados no NAS e SAN);
- armazenamento livre de replicação em cima de um sistema de arquivos não confiável com acesso ao S3 (para desenvolvimento e teste);
- Armazenamento de replicação em um pequeno grupo de servidores no mesmo rack com acesso S3 (armazenamento à prova de falhas com um domínio de falha igual ao rack).
Nos sistemas RedHat, conectamos o repositório não oficial do Minio.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc
Geramos e adicionamos a MINIO_ACCESS_KEY e MINIO_SECRET_KEY em /etc/minio/minio.conf.
# Custom username or access key of minimum 3 characters in length.
MINIO_ACCESS_KEY=
# Custom password or secret key of minimum 8 characters in length.
MINIO_SECRET_KEY=
Se você não usar o nginx antes do Minio, precisará alterar.
--address 127.0.0.1:9000
no
--address 0.0.0.0:9000
Inicie o Minio.
systemctl start minio
Crie uma conexão com o Minio chamada myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEY
Crie o bucket user1bucket.
minio-mc mb myminio/user1bucket
bucket user2bucket.
minio-mc mb myminio/user2bucket
user1-policy.json.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:PutBucketPolicy",
"s3:GetBucketPolicy",
"s3:DeleteBucketPolicy",
"s3:ListAllMyBuckets",
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::user1bucket"
],
"Sid": ""
},
{
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::user1bucket/*"
],
"Sid": ""
}
]
}
user2-policy.json.
{
"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": ""
}
]
}
user1 test12345.
minio-mc admin user add myminio user1 test12345
user2 test54321.
minio-mc admin user add myminio user2 test54321
Minio user1-policy user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.json
Minio user2-policy user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.json
user1-policy user1.
minio-mc admin policy set myminio user1-policy user=user1
user2-policy user2.
minio-mc admin policy set myminio user2-policy user=user2
minio-mc admin user list myminio
enabled user1 user1-policy
enabled user2 user2-policy
http://ip----minio:9000/minio/
Minio MINIO_ACCESS_KEY=user1. bucket user1bucket.

bucket , Action .

Crie um arquivo no bucket user1bucket.

Conecte-se ao Minio em MINIO_ACCESS_KEY = user2. O balde user2bucket está disponível para nós.
E não vemos nem user1bucket nem arquivos do user1bucket.

Criado bate-papo do Telegram no Minio https://t.me/minio_s3_en