Konfigurera Minio sÄ att anvÀndaren endast kan arbeta med sin egen bucket

Minio Àr en enkel, snabb och AWS S3-kompatibel objektlagring. Minio Àr utformat för att lagra ostrukturerad data sÄsom bilder, videor, loggfiler och sÀkerhetskopior. Minio stöder Àven distribuerat lÀge, vilket gör det möjligt att koppla flera diskar till en enda objektlagringsserver, Àven om de Àr placerade pÄ olika maskiner.

Syftet med detta inlÀgg Àr att konfigurera Minio sÄ att varje anvÀndare endast kan arbeta med sin egen bucket.

Överlag Ă€r Minio lĂ€mpligt för följande anvĂ€ndningar:

  • lagring utan replikering ovanpĂ„ ett pĂ„litligt filsystem med S3-Ă„tkomst (smĂ„ och medelstora lagringar, som Ă€r placerade pĂ„ NAS och SAN);
  • lagring utan replikering ovanpĂ„ ett opĂ„litligt filsystem med S3-Ă„tkomst (för utveckling och testning);
  • lagring med replikering pĂ„ en liten grupp servrar i en rack med S3-Ă„tkomst (avbrottssĂ€ker lagring med avbrottsomrĂ„de lika med racken).

PĂ„ RedHat-system ansluter vi ett inofficiellt Minio-repository.

yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc

Vi genererar och lÀgger till i MINIO_ACCESS_KEY och 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=

Om du inte anvÀnder nginx framför Minio, mÄste du Àndra.

--address 127.0.0.1:9000

till

--address 0.0.0.0:9000

Vi startar Minio.

systemctl start minio

Vi skapar en anslutning till Minio med namnet myminio.

minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY 
MINIO_SECRET_KEY

Vi skapar bucket user1bucket.

minio-mc mb myminio/user1bucket

Vi skapar bucket user2bucket.

minio-mc mb myminio/user2bucket

Vi skapar en filpolicy 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": ""
    }
  ]
}

Vi skapar en filpolicy 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": ""
    }
  ]
}

Vi skapar anvÀndaren user1 med lösenordet test12345.

minio-mc admin user add myminio user1 test12345

Skapar anvÀndare user2 med lösenord test54321.

minio-mc admin user add myminio user2 test54321

Skapar en policy i Minio med namnet user1-policy frÄn filen user1-policy.json.

minio-mc admin policy add myminio user1-policy user1-policy.json

Skapar en policy i Minio med namnet user2-policy frÄn filen user2-policy.json.

minio-mc admin policy add myminio user2-policy user2-policy.json

TillÀmpa policyn user1-policy pÄ anvÀndare user1.

minio-mc admin policy set myminio user1-policy user=user1

TillÀmpa policyn user2-policy pÄ anvÀndare user2.

minio-mc admin policy set myminio user2-policy user=user2

Kontrollerar anslutning av policys till anvÀndare

minio-mc admin user list myminio

Kontrollen av anslutningen av policys till anvÀndare kommer att se ut ungefÀr sÄ hÀr

enabled    user1                 user1-policy
enabled    user2                 user2-policy

För tydlighetens skull gÄr vi in via webblÀsaren pÄ adressen http://ip-servern-dÀr-minio-körs:9000/minio/

Vi ser att vi Àr anslutna till Minio med MINIO_ACCESS_KEY=user1. Bucket user1bucket Àr tillgÀnglig för oss.

Konfigurera Minio sÄ att anvÀndaren endast kan arbeta med sin egen bucket

Det gÄr inte att skapa en bucket eftersom det saknas en motsvarande Action i policyn.

Konfigurera Minio sÄ att anvÀndaren endast kan arbeta med sin egen bucket

Vi skapar en fil i bucket user1bucket.

Konfigurera Minio sÄ att anvÀndaren endast kan arbeta med sin egen bucket

Vi ansluter till Minio med MINIO_ACCESS_KEY=user2. Bucket user2bucket Àr tillgÀnglig för oss.

Och vi ser varken user1bucket eller filer frÄn user1bucket.

Konfigurera Minio sÄ att anvÀndaren endast kan arbeta med sin egen bucket

Skapade en Telegram-chat för Minio https://t.me/minio_s3_ru

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster