Minio é unha tenda de obxectos sinxela, rápida e compatible con AWS S3. Minio está deseñado para aloxar datos non estruturados como fotos, vídeos, ficheiros de rexistro, copias de seguridade. minio tamén admite o modo distribuído, que ofrece a posibilidade de conectar varios discos a un servidor de almacenamento de obxectos, incluídos os situados en máquinas diferentes.
O propósito desta publicación é configurar minio para que cada usuario poida traballar só co seu propio balde.
En xeral, Minio é axeitado para os seguintes casos:
- almacenamento sen replicación enriba dun sistema de ficheiros fiable con acceso a través de S3 (almacenamento pequeno e mediano aloxado en NAS e SAN);
- almacenamento non replicado enriba dun sistema de ficheiros pouco fiable con acceso S3 (para desenvolvemento e probas);
- almacenamento con replicación nun pequeno grupo de servidores nun rack con acceso a través do protocolo S3 (almacenamento de conmutación por fallo cun dominio de fallo igual ao rack).
Nos sistemas RedHat conectamos o repositorio non oficial de Minio.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc
Xera e engade a MINIO_ACCESS_KEY e MINIO_SECRET_KEY en /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 non vai usar nginx antes de Minio, entón debes cambiar.
--address 127.0.0.1:9000
en
--address 0.0.0.0:9000
Imos lanzar Minio.
systemctl start minio
Creamos unha conexión con Minio chamada myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEY
Crear un bucket user1bucket.
minio-mc mb myminio/user1bucket
Crear un bucket user2bucket.
minio-mc mb myminio/user2bucket
Cree un ficheiro de política 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": ""
}
]
}
Cree un ficheiro de política 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": ""
}
]
}
Cree un usuario user1 co contrasinal test12345.
minio-mc admin user add myminio user1 test12345
Cree un usuario user2 co contrasinal test54321.
minio-mc admin user add myminio user2 test54321
Creamos unha política en Minio chamada user1-policy a partir do ficheiro user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.json
Creamos unha política en Minio chamada user2-policy a partir do ficheiro user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.json
Aplique a política de política de usuario1 ao usuario usuario1.
minio-mc admin policy set myminio user1-policy user=user1
Aplique a política de política de usuario2 ao usuario usuario2.
minio-mc admin policy set myminio user2-policy user=user2
Comprobación da conexión das políticas cos usuarios
minio-mc admin user list myminio
Comprobar a conexión das políticas cos usuarios terá un aspecto así
enabled user1 user1-policy
enabled user2 user2-policy
Para máis claridade, vai polo navegador ata o enderezo
Vemos que nos conectamos a Minio en MINIO_ACCESS_KEY=usuario1. O depósito user1bucket está dispoñible para nós.
Non será posible crear un depósito, xa que non hai Acción correspondente na política.
Imos crear un ficheiro no bucket user1bucket.
Conectámonos a Minio en MINIO_ACCESS_KEY=usuario2. O depósito user2bucket está dispoñible para nós.
E non vemos nin user1bucket nin ficheiros de user1bucket.
Creou un chat de Telegram usando Minio
Fonte: www.habr.com