EL storage: Einschränken des Benutzer-Zugriffs auf Bucket- oder Ordnerebene via Wasabi Console

Mit EL storage bieten wir Ihnen einen unschlagbar günstigen S3-kompatiblen Cloud-Speicher auf der Technologiebasis von Wasabi Hot Cloud Storage an.
In unseren Helpdesk-Artikeln zeigen wir Ihnen, wie Sie EL storage per Wasabi-Konsole administrieren.

Oftmals greifen mehrere Leute auf einen EL storage-Account zu, um Daten in dem Cloud-Speicher abzulegen oder zu sichern. Um in diesen Fällen persönliche Daten vom Zugriff anderer abzuschirmen, können Sie den Zugriff für bestimmte Benutzer auf einzelne Buckets oder sogar einzelne Ordner innerhalb der Buckets beschränken.

Diese Anleitung setzt voraus, dass Sie bereits einen EL storage-Account besitzen und einen Bucket oder Ordner innerhalb eines Buckets erstellt haben, auf welchen Sie den Zugriff restringieren möchten. Falls Sie noch keinen Account besitzen, erhalten Sie hier eine Demo-Version.

1. Zugriffsbeschränkung auf Bucket-Ebene:

Zu Beginn müssen Sie sich mit Ihrem Stamm-Konto an der Wasabi Web-Konsole anmelden.
Navigieren Sie dort im Linken-Menüband zu dem Reiter "Richtlinien" und wählen Sie "RICHTLINIE ERSTELLEN".


Geben Sie Ihrer Richtlinie nun einen Namen und eine Beschreibung.
In das Richtliniendokument müssen Sie nun den Inhalt der Richtlinie einfügen. Hier wird auf Bucketebene zwischen zwei verschiedenen Möglichkeiten unterschieden:

1. Der Benutzer hat Zugriff auf die Web-Konsole und soll Operationen innerhalb dieser ausführen können. In diesem Fall kann der Benutzer allerdings die Namen aller vorhandener Buckets einsehen. Die Richtlinie würde wie folgt aussehen:

{
 "Version": "2012-10-17",
 "Statement": [
 {
 "Effect": "Allow",
 "Action": "s3:ListAllMyBuckets",
 "Resource": "arn:aws:s3:::*"
 },
 {
 "Effect": "Allow",
 "Action": "s3:*",
 "Resource": [
 "arn:aws:s3:::Bucketname",
 "arn:aws:s3:::Bucketname/*"
 ]
 }
 ]
}

Setzen Sie für "Bucket-Name" noch den Namen des Buckets ein, auf welchen der Benutzer Zugriff haben soll.
Um in diesem Fall nicht für jeden einzelnen Benutzer eine Richtlinie erstellen zu müssen, können Sie auch mit der $username Variable arbeiten.
In diesem Szenario müssen Sie darauf achten, dass der Benutzername und der Bucketname in jedem Fall identisch sind.
Eine solche Policy würde wie folgt aussehen:

{
 "Version": "2012-10-17",
 "Statement": [
 {
 "Effect": "Allow",
 "Action": "s3:ListAllMyBuckets",
 "Resource": "arn:aws:s3:::*"
 },
 {
 "Effect": "Allow",
 "Action": "s3:*",
 "Resource": [
 "arn:aws:s3:::${aws:username}",
 "arn:aws:s3:::${aws:username}/*"
 ]
 }
 ]
}

2. Der Benutzer kann sich nicht an der Web-Konsole anmelden, hat aber Zugriff via Software (Backup-Benutzer etc.). In diesem Fall würde die Richtlinie wie folgt aussehen:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::Bucket-Name/*",
"arn:aws:s3:::Bucket-Name"
]
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::Bucket-Name/*",
"arn:aws:s3:::Bucket-Name"
]
}
]
}

Setzen Sie für "Bucket-Name" noch den Namen des Buckets ein, auf welchen der Benutzer Zugriff haben soll.

Bei der Nutzung eines Drittanbieter-File-Explorers ist es möglich, dass der Benutzer noch Einsicht auf die Namen aller Buckets hat. In diesem Fall muss dem Benutzer noch zusätzlich eine Explicit Deny-Richtlinie zugewiesen werden.
Diese hat folgenden Inhalt:

{
 "Version": "2012-10-17",
 "Statement": [
 {
 "Effect": "Deny",
 "Action": [
 "s3:ListBucket",
 "s3:GetBucketLocation",
 "s3:ListBucketMultipartUploads"
 ],
 "NotResource": [
 "arn:aws:s3:::Bucket-Name/*",
 "arn:aws:s3:::Bucket-Name"
 ]
 },
 {
 "Effect": "Deny",
 "Action": "s3:*",
 "NotResource": [
 "arn:aws:s3:::Bucket-Name/*",
 "arn:aws:s3:::Bucket-Name"
 ]
 }
 ]
}

Unter "Richtliniendokument" sollte nach Anpassen und Einfügen der Richtlinie ein grüner Haken erscheinen, welcher impliziert, dass die Richtlinie korrekt formuliert ist (die Übersetzung im Deutschen ist aktuell leider fehlerhaft). Schließen Sie die Erstellung nun mit "RICHTLINIE ERSTELLEN" ab.

Einige File Explorer und Backup-Lösungen benötigen zwingend das Recht "s3:ListAllMyBuckets", um einen Zugriff auf die Buckets zu erhalten. Sollte dies der Fall sein, kommt nur die 1. Richtlinie infrage und es ist bedauerlicherweise nicht möglich, die Bucket-Namen für andere Benutzer auszublenden.

2. Zugriffsbeschränkung auf Ordnerebene:

Auch die Zugriffsbeschränkung auf Ordnerebene benötigt eine Richtlinie für Benutzer oder Gruppen. Erstellen Sie hierfür also wieder wie oben beschrieben eine Richtlinie. Der Inhalt dieser Richtlinie sieht wie folgt aus:

{
 "Version":"2012-10-17",
 "Statement": [
 {
 "Sid": "AllowUserToSeeBucketListInTheConsole",
 "Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"],
 "Effect": "Allow",
 "Resource": ["arn:aws:s3:::*"]
 },
 {
 "Sid": "AllowRootAndHomeListingOfCompanyBucket",
 "Action": ["s3:ListBucket"],
 "Effect": "Allow",
 "Resource": ["arn:aws:s3:::Bucket-Name"],
 "Condition":{"StringEquals":{"s3:prefix":["","Folder-Name/"],"s3:delimiter":["/"]}}
 },
 {
 "Sid": "AllowListingOfUserFolder",
 "Action": ["s3:ListBucket"],
 "Effect": "Allow",
 "Resource": ["arn:aws:s3:::Bucket-Name"],
 "Condition":{"StringLike":{"s3:prefix":["Folder-Name/*"]}}
 },
 {
 "Sid": "AllowAllS3ActionsInUserFolder",
 "Effect": "Allow",
 "Action": ["s3:*"],
 "Resource": ["arn:aws:s3:::Bucket-Name/Folder-Name/*"]
 }
 ]
}

Setzen Sie für "Bucket-Name" bitte den Namen des jeweiligen Buckets ein und für "Folder-Name" bitte den Namen des jeweiligen Ordners innerhalb des Buckets.
Wichtig: Sie können für "Folder-Name" nur Ordner benutzen, die auch in dem Bucket, welchen Sie bei "Bucket-Name" angegeben haben, existieren!

Nun müssen Sie die Richtlinie nur noch einem bestehenden Benutzer zuweisen oder einen neuen Benutzer mit dieser Richtlinie erstellen. Eine Anleitung zum Erstellen eines Benutzers finden Sie hier.

Weitere Informationen hierzu finden Sie auch hier in der Dokumentation des Herstellers.