Minio 是一個簡單、快速、相容於 AWS S3 的物件儲存。 Minio 旨在託管非結構化數據,例如照片、影片、日誌檔案、備份。 minio也支援分散式模式,它提供了將多個磁碟連接到一台物件儲存伺服器的能力,包括位於不同機器上的磁碟。
這篇文章的目的是設定 minio,以便每個使用者只能使用自己的儲存桶。
一般來說,Minio適合以下情況:
- 位於可靠檔案系統之上的非複製存儲,可透過 S3 存取(託管在 NAS 和 SAN 上的中小型儲存);
- 具有 S3 存取權限的不可靠檔案系統之上的非複製儲存(用於開發和測試);
- 儲存在一個機架中的一小組伺服器上進行複製,並透過 S3 協定存取(故障轉移儲存的故障域與機架相同)。
在 RedHat 系統上,我們連接非官方的 Minio 儲存庫。
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc
產生並新增至 /etc/minio/minio.conf 中的 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY。
# 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=
如果你在Minio之前不會使用nginx,那麼你需要改變。
--address 127.0.0.1:9000
上
--address 0.0.0.0:9000
讓我們啟動 Minio。
systemctl start minio
我們創建一個與 Minio 的連接,稱為 myminio。
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEY
建立儲存桶 user1bucket。
minio-mc mb myminio/user1bucket
建立儲存桶 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.json 建立一個名為 user1-policy 的策略。
minio-mc admin policy add myminio user1-policy user1-policy.json
我們在 Minio 中從檔案 user2-policy.json 建立一個名為 user2-policy 的策略。
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
為了清楚起見,請透過瀏覽器造訪該地址
我們看到我們在 MINIO_ACCESS_KEY=user1 下連接到了 Minio。 user1bucket 儲存桶可供我們使用。
由於策略中沒有相應的操作,因此無法建立儲存桶。
讓我們在儲存桶 user1bucket 中建立一個檔案。
讓我們在 MINIO_ACCESS_KEY=user2 下連接到 Minio。 user2bucket 儲存桶可供我們使用。
我們看不到 user1bucket 或 user1bucket 中的檔案。
使用 Minio 建立 Telegram 聊天
來源: www.habr.com