Minio er en enkel, rask og AWS S3-kompatibel objektlagringsserver. Minio er designet for å være vert for ustrukturerte data som bilder, videoer, loggfiler og sikkerhetskopier. Minio støtter også distribuert modus, som lar flere disker, inkludert de som ligger på forskjellige maskiner, kobles til en enkelt objektlagringsserver.
Målet med dette innlegget er å konfigurere minio slik at hver bruker kun kan jobbe med sin egen bøtte.
Generelt sett er Minio egnet for følgende tilfeller:
- ikke-replikert lagring oppå et pålitelig filsystem med S3-tilgang (liten og mellomstor lagring på NAS og SAN);
- ikke-replikert lagring oppå et upålitelig filsystem med S3-tilgang (for utvikling og testing);
- lagring med replikering på en liten gruppe servere i ett rack med tilgang via S3-protokollen (feiltolerant lagring med et feildomene lik racket).
På RedHat-systemer kobler vi til det uoffisielle Minio-depotet.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mcGenerer og legg til MINIO_ACCESS_KEY og MINIO_SECRET_KEY i /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=Hvis du ikke skal bruke nginx før Minio, må du endre dette.
--address 127.0.0.1:9000på
--address 0.0.0.0:9000Start Minio.
systemctl start minioOpprett en forbindelse til Minio kalt myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEYOpprett bøtte bruker1bucket.
minio-mc mb myminio/user1bucketOpprett bøtte bruker2bucket.
minio-mc mb myminio/user2bucketOpprett en policyfil med navnet 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": ""
}
]
}Opprett en policyfil med navnet 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": ""
}
]
}Opprett bruker bruker1 med passord test12345.
minio-mc admin user add myminio user1 test12345Opprett bruker bruker2 med passord test54321.
minio-mc admin user add myminio user2 test54321Opprett en policy i Minio kalt user1-policy fra user1-policy.json-filen.
minio-mc admin policy add myminio user1-policy user1-policy.jsonOpprett en policy i Minio kalt user2-policy fra user2-policy.json-filen.
minio-mc admin policy add myminio user2-policy user2-policy.jsonVi bruker bruker1-policy-policyen på brukeren bruker1.
minio-mc admin policy set myminio user1-policy user=user1Vi bruker bruker2-policy-policyen på brukeren bruker2.
minio-mc admin policy set myminio user2-policy user=user2Kontrollerer koblingen mellom policyer og brukere
minio-mc admin user list myminioÅ sjekke koblingen mellom policyer og brukere vil se omtrent slik ut
enabled user1 user1-policy
enabled user2 user2-policyFor klarhetens skyld, gå til adressen via nettleseren
Vi ser at vi har koblet til Minio under MINIO_ACCESS_KEY=user1. User1bucket-bøtta er tilgjengelig for oss.

Det vil ikke være mulig å opprette en bøtte, siden det ikke finnes noen tilsvarende handling i policyen.

La oss opprette en fil i user1bucket-bøtta.

La oss koble til Minio under MINIO_ACCESS_KEY=user2. user2bucket-bøtta er tilgjengelig for oss.
Og vi ser verken bruker1bucket eller filer fra bruker1bucket.

Opprettet Telegram-chat for Minio
Kilde: www.habr.com
