Configurando o Minio para que o usuário possa trabalhar apenas com seu bucket

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


All Articles