Ang Minio ay isang simple, mabilis, AWS S3 compatible object store. Idinisenyo ang Minio upang mag-host ng hindi nakaayos na data tulad ng mga larawan, video, log file, backup. Sinusuportahan din ng minio ang distributed mode, na nagbibigay ng kakayahang magkonekta ng maramihang mga disk sa isang server ng imbakan ng bagay, kabilang ang mga matatagpuan sa iba't ibang mga makina.
Ang layunin ng post na ito ay upang i-configure ang minio upang ang bawat user ay maaaring gumana lamang sa kanyang sariling bucket.
Sa pangkalahatan, ang Minio ay angkop para sa mga sumusunod na kaso:
- non-replication storage sa ibabaw ng isang maaasahang file system na may access sa pamamagitan ng S3 (maliit at katamtamang storage na naka-host sa NAS at SAN);
- hindi na-replicated na imbakan sa itaas ng isang hindi mapagkakatiwalaang file system na may S3 access (para sa pagbuo at pagsubok);
- storage na may replication sa isang maliit na grupo ng mga server sa isang rack na may access sa pamamagitan ng S3 protocol (failover storage na may failure domain na katumbas ng rack).
Sa mga sistema ng RedHat ikinonekta namin ang hindi opisyal na imbakan ng Minio.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc
Bumuo at magdagdag sa MINIO_ACCESS_KEY at MINIO_SECRET_KEY sa /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=
Kung hindi ka gagamit ng nginx bago ang Minio, kailangan mong baguhin.
--address 127.0.0.1:9000
sa
--address 0.0.0.0:9000
Ilunsad natin ang Minio.
systemctl start minio
Lumilikha kami ng koneksyon sa Minio na tinatawag na myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEY
Gumawa ng bucket user1bucket.
minio-mc mb myminio/user1bucket
Gumawa ng bucket user2bucket.
minio-mc mb myminio/user2bucket
Gumawa ng policy file 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": ""
}
]
}
Gumawa ng policy file 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": ""
}
]
}
Lumikha ng user user1 gamit ang password test12345.
minio-mc admin user add myminio user1 test12345
Lumikha ng user user2 gamit ang password test54321.
minio-mc admin user add myminio user2 test54321
Gumagawa kami ng patakaran sa Minio na tinatawag na user1-policy mula sa file na user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.json
Gumagawa kami ng patakaran sa Minio na tinatawag na user2-policy mula sa file na user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.json
Ilapat ang patakaran ng user1-policy sa user user1.
minio-mc admin policy set myminio user1-policy user=user1
Ilapat ang patakaran ng user2-policy sa user user2.
minio-mc admin policy set myminio user2-policy user=user2
Sinusuri ang koneksyon ng mga patakaran sa mga user
minio-mc admin user list myminio
Magiging ganito ang hitsura ng pagsuri sa koneksyon ng mga patakaran sa mga user
enabled user1 user1-policy
enabled user2 user2-policy
Para sa kalinawan, dumaan sa browser patungo sa address
Nakita namin na nakakonekta kami sa Minio sa ilalim ng MINIO_ACCESS_KEY=user1. Available sa amin ang user1bucket bucket.
Hindi posibleng gumawa ng bucket, dahil walang kaukulang Aksyon sa patakaran.
Gumawa tayo ng file sa bucket user1bucket.
Kumonekta tayo sa Minio sa ilalim ng MINIO_ACCESS_KEY=user2. Available sa amin ang user2bucket bucket.
At wala kaming nakikitang user1bucket o mga file mula sa user1bucket.
Gumawa ng Telegram chat gamit ang Minio
Pinagmulan: www.habr.com