Verwalten Sie Bucket-Richtlinien in Object Storage
Zuletzt aktualisiert am
Bucket-Richtlinien definieren Zugriffskontrollregeln für Ihre Buckets und Objekte. Jede Richtlinie ist ein JSON-Dokument mit einer oder mehreren Anweisungen, die jeweils einen Effekt (Zulassen oder Verweigern), einen Prinzipal (für den die Regel gilt) und die zuzulassenden oder zu verweigernden S3-Aktionen angeben.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Object Storage aktiviert und Anmeldeinformationen konfiguriert: Object Storage aktivieren
- AWS CLI für STACKIT Object Storage installiert und konfiguriert: Richten Sie die AWS CLI ein
Beispiel-Bucket-Richtlinien
Abschnitt betitelt „Beispiel-Bucket-Richtlinien“Alle Objekte in einem Bucket öffentlich lesbar machen:
{ "Statement": [ { "Sid": "Example-policy1", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "urn:sgws:s3:::my-super-bucket/*" } ]}Machen Sie eine bestimmte Datei öffentlich lesbar:
{ "Statement": [ { "Sid": "Example-policy2", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "urn:sgws:s3:::my-super-bucket/picture.jpg" } ]}Vollzugriff auf eine bestimmte Anmeldeinformationsgruppe beschränken:
{ "Statement": [ { "Sid": "allow-specific-credential-group", "Effect": "Deny", "NotPrincipal": { "AWS": "urn:sgws:identity::12345678901234567890:group/credentials-group-1234" }, "Action": ["s3:*"], "Resource": ["arn:aws:s3:::my-super-bucket", "arn:aws:s3:::my-super-bucket/*"] } ]}Schreibgeschützter Zugriff für alle Anmeldeinformationsgruppen außer einer:
{ "Statement": [ { "Sid": "allow-specific-credential-group", "Effect": "Deny", "NotPrincipal": { "AWS": "urn:sgws:identity::12345678901234567890:group/credentials-group-1234" }, "Action": ["s3:Put*", "s3:Delete*", "s3:GetBucket*", "s3:GetEncryption*", "s3:List*"], "Resource": ["arn:aws:s3:::my-super-bucket", "arn:aws:s3:::my-super-bucket/*"] } ]}Öffentliches Lesen mit auf eine Anmeldeinformationsgruppe beschränktem Schreib- und Löschvorgang:
{ "Statement": [ { "Sid": "public-read", "Effect": "Allow", "Principal": "*", "Action": ["s3:GetObject"], "Resource": ["arn:aws:s3:::my-super-bucket", "arn:aws:s3:::my-super-bucket/*"] }, { "Sid": "allow-specific-credential-group", "Effect": "Deny", "NotPrincipal": { "AWS": "urn:sgws:identity::12345678901234567890:group/credentials-group-1234" }, "Action": ["s3:Put*", "s3:Delete*", "s3:GetBucket*", "s3:GetEncryption*", "s3:List*"], "Resource": ["arn:aws:s3:::my-super-bucket", "arn:aws:s3:::my-super-bucket/*"] } ]}Beschränken Sie den Zugriff nach Quell-IP und beschränken Sie den vollständigen Zugriff auf eine Anmeldeinformationsgruppe:
{ "Statement": [ { "Sid": "Restrict-IP-Range", "Effect": "Deny", "Principal": "*", "Action": ["s3:*"], "Resource": ["arn:aws:s3:::my-super-bucket/*", "arn:aws:s3:::my-super-bucket"], "Condition": { "NotIpAddress": { "aws:SourceIp": ["192.168.1.3", "192.168.1.4"] } } }, { "Sid": "Restrict-Group2", "Effect": "Deny", "NotPrincipal": { "AWS": "urn:sgws:identity::12345678901234567890:group/credentials-group-1234" }, "Action": ["s3:Create*", "s3:Put*", "s3:Delete*", "s3:Get*"], "Resource": ["arn:aws:s3:::my-super-bucket/*", "arn:aws:s3:::my-super-bucket"] } ]}Mehrere Anweisungen mit Bedingungen:
{ "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Principal": { "AWS": "urn:sgws:identity::12345678901234567890:group/credentials-group-1234" }, "Resource": "urn:sgws:s3:::my-super-bucket/*" }, { "Effect": "Allow", "Action": "s3:GetObject", "Principal": { "AWS": "urn:sgws:identity::12345678901234567890:group/credentials-group-4567" }, "Resource": "urn:sgws:s3:::my-super-bucket/*", "Condition": { "IpAddress": { "aws:SourceIp": ["192.168.1.10", "192.168.1.20"] }, "NotIpAddress": { "aws:SourceIp": "0.0.0.0" } } } ]}Legen Sie eine Bucket-Richtlinie fest
Abschnitt betitelt „Legen Sie eine Bucket-Richtlinie fest“Speichern Sie Ihre Richtlinie als JSON-Datei und wenden Sie sie dann auf den Bucket an:
aws s3api put-bucket-policy \ --bucket my-super-bucket \ --policy file://policy.json \ --endpoint-url https://object.storage.eu01.onstackit.cloudHolen Sie sich eine Bucket-Richtlinie
Abschnitt betitelt „Holen Sie sich eine Bucket-Richtlinie“Rufen Sie die aktuelle Richtlinie für einen Bucket ab:
aws s3api get-bucket-policy \ --bucket my-super-bucket \ --endpoint-url https://object.storage.eu01.onstackit.cloudLöschen Sie eine Bucket-Richtlinie
Abschnitt betitelt „Löschen Sie eine Bucket-Richtlinie“Entfernen Sie eine Richtlinie aus einem Bucket:
aws s3api delete-bucket-policy \ --bucket my-super-bucket \ --endpoint-url https://object.storage.eu01.onstackit.cloud