Öffentlichen Zugriff erlauben
Manchmal sind Daten für die gemeinsame Nutzung bestimmt. Buckets können offene Datensätze für die akademische und private Recherche oder Image-Repositorys enthalten, die von Webanwendungen und Content Delivery Networks genutzt werden. Diese Buckets können Sie mithilfe der Gruppe Öffentlicher Zugriff zugänglich machen.
Es gibt drei IAM-Rollen, die für den öffentlichen Zugriff auf ein Bucket verwendet werden können: Administrator, ContentReader und ObjectReader. Der Unterschied zwischen ihnen besteht darin, dass Administrator und ContentReader die Objekte in einem Bucket auflisten können, was für Anwendungen nützlich ist, die neben dem Lesen von Objekten eine einfache Auflistung erfordern (z. B. eine Webbenutzerschnittstelle). Weitere Informationen finden
Sie in der IAM-Referenzdokumentation.
Wenn External Identity Isolation (EII) auf Limited gesetzt ist, schlägt der öffentliche Zugriff fehl, da anonyme Anfragen keine Konto-ID haben und die Anforderung der Identitätsübereinstimmung nicht erfüllen können.
Konsole zum Festlegen des öffentlichen Zugriffs verwenden
Stellen Sie zunächst sicher, dass Sie über ein Bucket verfügen. Falls dies nicht der Fall ist, befolgen Sie die Anweisungen im Lernprogramm zur Einführung, um sich mit der Konsole vertraut zu machen.
Öffentlichen Zugriff aktivieren
Bevor Sie den öffentlichen Zugriff für einen Bucket aktivieren können, muss die Gruppe Public Access auf Kontoebene aktiviert sein. Nur der Kontoinhaber oder ein Benutzer mit der Rolle IAM-Zugriffsgruppen-Administrator kann diese Einstellung ändern. Um dies zu überprüfen oder zu aktivieren, gehen Sie zu Verwalten > Zugriff (IAM) > Einstellungen und vergewissern Sie sich, dass Öffentlicher Zugriff auf Aktiviert gesetzt ist. Wenn diese Einstellung auf Kontoebene deaktiviert ist, haben die unten beschriebenen Steuerelemente auf Bucket-Ebene keine Wirkung.
- Wählen Sie im Konsolendashboard von IBM Cloud die Option Speicher aus, um die Liste Ihrer Ressourcen anzuzeigen.
- Wählen Sie als Nächstes im Menü Speicher die Serviceinstanz mit Ihrem Bucket aus. Daraufhin wird die Object Storage-Konsole aufgerufen.
- Wählen Sie das Bucket aus, das Sie öffentlich zugänglich machen möchten. Beachten Sie, dass diese Richtlinie dazu führt, dass alle Objekte in einem Bucket für jeden mit den entsprechenden URL zum Herunterladen verfügbar sind.
- Wählen Sie in der Bucket-Navigation die Registerkarte Berechtigungen aus.
- Scrollen Sie zum Abschnitt Öffentlicher Zugriff und klicken Sie auf Zugriffsrichtlinie erstellen.
- Lesen Sie die Warnung und wählen Sie anschließend aktivieren aus.
- Nun sind alle Objekte in diesem Bereich öffentlich zugänglich!
Öffentlichen Zugriff inaktivieren
- Wählen Sie von einer beliebigen Position in der IBM Cloud -Konsole das Menü Verwalten aus und wählen Sie Zugriff (IAM) aus.
- Wählen Sie im Navigationsmenü die Option Zugriffsgruppen aus.
- Wählen Sie Öffentlicher Zugriff aus, um eine Liste aller derzeit verwendeten Richtlinien für öffentlichen Zugriff abzurufen.
- Suchen Sie die Richtlinie, die dem Bucket entspricht, den Sie erneut der durchgesetzten Zugriffssteuerung unterstellen möchten.
- Wählen Sie in der Liste der Aktionen ganz rechts neben dem Richtlinieneintrag Entfernen aus.
- Bestätigen Sie das Dialogfeld. Die Richtlinie wird jetzt aus dem Bucket entfernt.
Öffentlichen Zugriff auf einzelne Objekte erlauben
Wenn Sie ein Objekt über die REST-API über öffentlichen Zugriff zugänglich machen möchten, können Sie einen Header vom Typ x-amz-acl: public-read in die Anforderung einbinden. Die Festlegung dieses Headers bewirkt die Umgehung aller
IAM-Richtlinienüberprüfungen und lässt nicht authentifizierte HEAD- und GET-Anforderungen zu. Weitere Informationen zu Endpunkten enthält
Endpunkte und Speicherpositionen.
Außerdem ist es durch HMAC-Berechtigungsnachweise möglich, temporär öffentlichen Zugriff zuzulassen, der vorab signierte URLs zulässt.
Öffentliches Objekt hochladen
curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}" \
-H "x-amz-acl: public-read" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: text/plain; charset=utf-8" \
-d "{object-contents}"
Öffentlichen Zugriff auf ein vorhandenes Objekt zulassen
Durch die Verwendung des Abfrageparameters ?acl ohne Nutzdaten und den Header x-amz-acl: public-read wird der öffentliche Zugriff auf das Objekt zugelassen, ohne dass hierzu die Daten überschrieben werden müssen.
curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}?acl" \
-H "x-amz-acl: public-read" \
-H "Authorization: Bearer {token}"
Öffentliches Objekt erneut als privat definieren
Durch die Verwendung des Abfrageparameters ?acl ohne Nutzdaten und den leeren Header x-amz-acl: wird der öffentliche Zugriff auf das Objekt widerrufen, ohne dass hierzu die Daten überschrieben werden müssen.
curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}?acl" \
-H "Authorization: Bearer {token}" \
-H "x-amz-acl:"
Statische Websites
IBM Cloud Object Storage unterstützt zwar kein automatisches Hosting statischer Websites, es ist jedoch möglich, einen Webserver manuell zu konfigurieren und diesen zu nutzen, um öffentlich zugängliche Inhalte bereitzustellen, die in einem Bucket gehostet werden. Weitere Informationen finden Sie in der Übersicht über statische Websiteoptionen.