Ziel
Ein S3-Bucket mit anonymer Leseberechtigung soll erstellt werden, so dass Daten ohne Authentifizierung gelesen und heruntergeladen werden können.
Der S3-Dienst der Switch-Cloud ist ausführlich in der offiziellen Dokumentation von Switch beschrieben und wird hier nicht repliziert.
Vorgehen
Um den Bucket nicht-authentifiziert, also anonym, auslesen zu können, müssen nun entsprechend Anonymous Read Access Policies auf dem Bucket gesetzt werden, siehe dazu auch die offizielle Dokumentation von Switch.
Folgende Policy in einer Datei speichern, z.B. Beispiel für den Bucket mys3bucket, anonymous_read_policy.json:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadAccess",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::mys3bucket",
"arn:aws:s3:::mys3bucket/*"
]
}
]
}
Mit folgendem Befehl kann dann die Policy auf dem Bucket gesetzt werden:
# Policy aus Datei setzen
aws --profile switch-s3 s3api put-bucket-policy --bucket mys3bucket --policy file://anonymous_read_policy.json
Die gesetzte Policy kann mit folgendem Befehl ausgelesen werden:
# Policy auf dem S3-Bucket zur Kontrolle auslesen
aws --profile switch-s3 s3api get-bucket-policy --bucket mys3bucket --output text