Fügen Sie der standardmäßigen ONTAP S3-Bucket-Richtlinie Zugriffsregeln hinzu
Sie können der Standard-Bucket-Richtlinie Zugriffsregeln hinzufügen. Der Geltungsbereich der Zugriffskontrolle ist der enthaltende Bucket, daher ist sie am besten geeignet, wenn es nur einen Bucket gibt.
Es muss bereits eine S3-fähige Storage-VM mit einem S3-Server und einem Bucket existieren.
Benutzer oder Gruppen müssen bereits erstellt worden sein, bevor Berechtigungen vergeben werden können.
Sie können neue Anweisungen für neue Benutzer und Gruppen hinzufügen oder die Attribute bestehender Anweisungen ändern. Weitere Informationen zu vserver object-store-server bucket policy finden sich in der "ONTAP-Befehlsreferenz".
Benutzer- und Gruppenberechtigungen können bei der Erstellung des Buckets oder bei Bedarf später erteilt werden. Auch die Bucket-Kapazität und die Zuordnung der QoS-Policy-Gruppe können angepasst werden.
Ab ONTAP 9.19.1 können Sie Bedingungen verwenden, um bedingte Schreibvorgänge für Objekt-Uploads und bedingte Löschvorgänge für Objekt-Löschungen zu erzwingen. Bedingte Schreib- und Löschvorgänge bieten eine Möglichkeit, das Überschreiben oder unbeabsichtigte Löschen von Objekten zu verhindern.
Ab ONTAP 9.9.1, wenn die AWS-Client-Objekt-Tagging-Funktionalität mit dem ONTAP S3-Server unterstützt werden soll, müssen die Aktionen GetObjectTagging, PutObjectTagging und DeleteObjectTagging mithilfe der Bucket- oder Gruppenrichtlinien zugelassen werden.
Die Vorgehensweise hängt von der verwendeten Schnittstelle ab, System Manager oder CLI:
-
Den Bucket bearbeiten: Auf Speicher > Buckets klicken, den gewünschten Bucket auswählen und anschließend auf Bearbeiten klicken. Beim Hinzufügen oder Ändern von Berechtigungen können die folgenden Parameter angegeben werden:
-
Principal: der Benutzer oder die Gruppe, denen der Zugriff gewährt wird.
-
Wirkung: Erlaubt oder verweigert einem Benutzer oder einer Gruppe den Zugriff.
-
Aktionen: Zulässige Aktionen im Bucket für einen bestimmten Benutzer oder eine bestimmte Gruppe.
-
Ressourcen: Pfade und Namen von Objekten innerhalb des Buckets, für die der Zugriff gewährt oder verweigert wird.
Die Standardeinstellungen bucketname und bucketname/* gewähren Zugriff auf alle Objekte im Bucket. Zugriff kann auch auf einzelne Objekte gewährt werden, zum Beispiel bucketname/*_readme.txt.
-
Bedingungen (optional): Ausdrücke, die bei einem Zugriffsversuch ausgewertet werden. Beispielsweise kann eine Liste von IP-Adressen angegeben werden, für die der Zugriff erlaubt oder verweigert wird.
-
|
|
Ab ONTAP 9.14.1 können Variablen für die Bucket-Richtlinie im Feld Ressourcen angegeben werden. Diese Variablen sind Platzhalter, die beim Auswerten der Richtlinie durch Kontextwerte ersetzt werden. Wenn zum Beispiel ${aws:username} als Variable für eine Richtlinie angegeben ist, wird diese Variable durch den Benutzernamen des Anforderungskontexts ersetzt, und die Richtlinienaktion kann wie für diesen Benutzer konfiguriert ausgeführt werden.
|
-
Einer Bucket-Richtlinie eine Anweisung hinzufügen:
vserver object-store-server bucket policy add-statement -vserver svm_name -bucket bucket_name -effect {allow|deny} -action object_store_actions -principal user_and_group_names -resource object_store_resources [-sid text] [-index integer]Die folgenden Parameter definieren die Zugriffsberechtigungen:
-effectDie Anweisung kann den Zugriff erlauben oder verweigern.
-actionSie können
*angeben, um alle Aktionen zu meinen, oder eine Liste mit einer oder mehreren der folgenden:GetObject, PutObject, DeleteObject, ListBucket, GetBucketAcl,GetObjectAcl, ListBucketMultipartUploads,undListMultipartUploadParts.-principalEine Liste von einem oder mehreren S3-Benutzern oder Gruppen.
-
Es können maximal 10 Benutzer oder Gruppen angegeben werden.
-
Wenn eine S3-Gruppe angegeben wird, muss sie das Format
group/group_name.haben -
`*`kann so spezifiziert werden, dass damit öffentlicher Zugriff gemeint ist, das heißt Zugriff ohne Zugriffsschlüssel und geheimen Schlüssel.
-
Wenn kein Principal angegeben ist, erhalten alle S3-Benutzer in der Storage-VM Zugriff.
-resourceDer Bucket und alle darin enthaltenen Objekte. Die Platzhalterzeichen
*und?können verwendet werden, um einen regulären Ausdruck zur Angabe einer Ressource zu erstellen. Für eine Ressource können Variablen in einer Richtlinie festgelegt werden. Diese Richtlinienvariablen sind Platzhalter, die bei der Auswertung der Richtlinie durch die Kontextwerte ersetzt werden.Optional kann ein Text-String als Kommentar mit der `-sid`Option angegeben werden.
-
Das folgende Beispiel erstellt eine Objektspeicher-Server-Bucket-Richtlinienanweisung für die Storage-VM svm1.example.com und bucket1, die den erlaubten Zugriff auf einen readme-Ordner für den Objektspeicher-Server-Benutzer user1 festlegt.
cluster1::> vserver object-store-server bucket policy statement create -vserver svm1.example.com -bucket bucket1 -effect allow -action GetObject,PutObject,DeleteObject,ListBucket -principal user1 -resource bucket1/readme/* -sid "fullAccessToReadmeForUser1"
Das folgende Beispiel erstellt eine Objektspeicherserver-Bucket-Richtlinienanweisung für die Storage-VM svm1.example.com und bucket1, die den zulässigen Zugriff auf alle Objekte für die Objektspeicherservergruppe group1 festlegt.
cluster1::> vserver object-store-server bucket policy statement create -vserver svm1.example.com -bucket bucket1 -effect allow -action GetObject,PutObject,DeleteObject,ListBucket -principal group/group1 -resource bucket1/* -sid "fullAccessForGroup1"
Ab ONTAP 9.19.1 können Sie Bedingungen verwenden, um bedingte Schreibvorgänge für Objekt-Uploads und bedingte Löschvorgänge für Objekt-Löschungen zu erzwingen. Das folgende Beispiel erstellt eine Bucket-Richtlinienbedingung, um bedingte Schreibvorgänge für bucket1 zu erzwingen:
cluster::> vserver object-store-server bucket policy-statement-condition create -vserver vs0 -bucket buck1 -index 1 -operator Null -s3-if-match true
Ab ONTAP 9.14.1 können Variablen für eine Bucket-Richtlinie festgelegt werden. Das folgende Beispiel erstellt eine Server-Bucket-Richtlinienanweisung für die Storage-VM svm1 und bucket1 und gibt ${aws:username} als Variable für eine Richtlinienressource an. Bei der Auswertung der Richtlinie wird die Richtlinienvariable durch den Benutzernamen des Anforderungskontexts ersetzt, und die Richtlinienaktion kann wie für diesen Benutzer konfiguriert ausgeführt werden. Wenn beispielsweise die folgende Richtlinienanweisung ausgewertet wird, wird ${aws:username} durch den Benutzer ersetzt, der die S3-Operation ausführt. Wenn ein Benutzer user1 die Operation ausführt, erhält dieser Benutzer Zugriff auf bucket1 als bucket1/user1/*.
cluster1::> object-store-server bucket policy statement create -vserver svm1 -bucket bucket1 -effect allow -action * -principal - -resource bucket1,bucket1/${aws:username}/*##