J'ai virtualisé mes tests.
D'abord un serveur Windows 2019 et un desktop sous Win 8.1, tous les deux avec Duplicati. Je voulais sauvegarder le serveur sur un bucket nommé win2019-backup avec un acceskey win2019, et le desktop sur un bucket win8-backup et un acceskey win8.
Pour le serveur j'ai utilisé un CentOS 8, installation minimale, avec 5 disques, un pour le système et 4 pour le stockage. Un utilisateur sans privilèges nommé minio créé pour lancer le serveur, a accès a quelques commandes via sudoers
Code: Select all
minio ALL=(ALL) NOPASSWD:/bin/mount,/bin/umount,/usr/bin/firewall-cmdCode: Select all
#!/bin/bash
export MINIO_ACCESS_KEY=minio_admin
export MINIO_SECRET_KEY=superfuckingcomplicatedpassword
sudo firewall-cmd --zone=public --add-port=9000/tcp
sudo mount -o user /dev/sdb1 /srv/data1
sudo mount -o user /dev/sdc1 /srv/data2
sudo mount -o user /dev/sdd1 /srv/data3
sudo mount -o user /dev/sde1 /srv/data4
./minio server /srv/data{1...4}
sudo firewall-cmd --zone=public --remove-port=9000/tcp
sudo umount /srv/data1
sudo umount /srv/data2
sudo umount /srv/data3
sudo umount /srv/data4
J'ai installé aussi le client mc pour gérer le serveur.
Création des buckets et des utilisateurs.
Code: Select all
./mc mb minio/win2019-backup
./mc mb minio/win8-backup
./mc admin user add minio/ win2019
./mc admin user add minio/ win8Avec samba on attribue un accès a un partage a des utilisateurs. A un partage donné on sait quels utilisateurs ont accès. On ne sait pas a priori a quels partages a accès un utilisateur.
Avec S3 c'est le contraire, on donne accès a un utilisateur a des buckets. A un utilisateur donné on sait a quels buckets il a accès. On ne sait pas a priori quels utilisateurs ont accès a un bucket.
Pour gérer les accés on va créer des policy et on attribue une policy a un utilisateur, qui decrit donc ses droits d'accés. Se sont des fichiers textes au format json.
Par exemple pour l'utilisateur win8 on édite un fichier win8_policy.json avec
Code: Select all
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": ["arn:aws:s3:::win8-backup"]
},
{
"Effect": "Allow",
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject"
],
"Resource": ["arn:aws:s3:::win8-backup/*"]
}
]
}
on enregiste ensuite cette policy et on l'applique a l'utilisateur
Code: Select all
./mc admin policy add minio/ win8_policy win8_policy.json
./mc admin policy set minio/ win8_policy user=win8Pour changer les droits d'un utilisateur on édite le fichier correspondant et on réapplique la policy.
En espérant que ça aide ...