Zum Inhalt springen

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.

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"
}
}
}
]
}

Speichern Sie Ihre Richtlinie als JSON-Datei und wenden Sie sie dann auf den Bucket an:

Terminal-Fenster
aws s3api put-bucket-policy \
--bucket my-super-bucket \
--policy file://policy.json \
--endpoint-url https://object.storage.eu01.onstackit.cloud

Rufen Sie die aktuelle Richtlinie für einen Bucket ab:

Terminal-Fenster
aws s3api get-bucket-policy \
--bucket my-super-bucket \
--endpoint-url https://object.storage.eu01.onstackit.cloud

Entfernen Sie eine Richtlinie aus einem Bucket:

Terminal-Fenster
aws s3api delete-bucket-policy \
--bucket my-super-bucket \
--endpoint-url https://object.storage.eu01.onstackit.cloud