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-mcVi 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:9000till
--address 0.0.0.0:9000Vi startar Minio.
systemctl start minioVi skapar en anslutning till Minio med namnet myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEYVi skapar bucket user1bucket.
minio-mc mb myminio/user1bucketVi skapar bucket user2bucket.
minio-mc mb myminio/user2bucketVi 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 test12345Skapar användare user2 med lösenord test54321.
minio-mc admin user add myminio user2 test54321Skapar en policy i Minio med namnet user1-policy från filen user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.jsonSkapar en policy i Minio med namnet user2-policy från filen user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.jsonTillämpa policyn user1-policy på användare user1.
minio-mc admin policy set myminio user1-policy user=user1Tillämpa policyn user2-policy på användare user2.
minio-mc admin policy set myminio user2-policy user=user2Kontrollerar anslutning av policys till användare
minio-mc admin user list myminioKontrollen av anslutningen av policys till användare kommer att se ut ungefär så här
enabled user1 user1-policy
enabled user2 user2-policyFör tydlighetens skull går vi in via webbläsaren på adressen
Vi ser att vi är anslutna till Minio med MINIO_ACCESS_KEY=user1. Bucket user1bucket är tillgänglig för oss.

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

Vi skapar en fil i bucket user1bucket.

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.

Skapade en Telegram-chat för Minio
Källa: habr.com
