Auf dieser Seite wird der einheitliche Zugriff auf Bucket-Ebene beschrieben, mit dem Sie den Zugriff auf Ihre Cloud Storage-Ressourcen einheitlich steuern können. Wenn Sie für einen Bucket den einheitlichen Zugriff auf Bucket-Ebene aktivieren, werden Access Control Lists (ACLs) deaktiviert und Sie erhalten nur mit IAM-Berechtigungen (Identity and Access Management) auf Bucket-Ebene Zugriff auf diesen Bucket und die darin enthaltenen Objekte. Sie widerrufen damit jeglichen Zugriff, der von Objekt-ACLs gewährt wird, und es ist dann nicht mehr möglich, Berechtigungen mithilfe von Bucket-ACLs zu verwalten.
Übersicht
Cloud Storage bietet zwei Systeme, damit Sie Nutzern die Berechtigung zum Zugriff auf Ihre Buckets und Objekte erteilen können: IAM und Access Control Lists (ACLs). Diese Systeme sind parallel aktiv – wenn Sie einem Nutzer Zugriff auf eine Cloud Storage-Ressource gewähren möchten, muss die Berechtigung nur von einem der Systeme erteilt werden. IAM wird in Google Cloud verwendet und ermöglicht Ihnen, verschiedene Berechtigungen auf Bucket- und Projektebene zu gewähren. ACLs werden nur von Cloud Storage verwendet und bieten eingeschränkte Berechtigungsoptionen. Sie ermöglichen Ihnen jedoch, Berechtigungen auf Objektbasis zu gewähren.
Zur Unterstützung eines einheitlichen Berechtigungssystems ist Cloud Storage mit einem einheitlichen Zugriff auf Bucket-Ebene ausgestattet. Wenn Sie dieses Feature in einem Bucket verwenden, werden ACLs für alle Cloud Storage-Ressourcen im Bucket deaktiviert. Der Zugriff auf Cloud Storage-Ressourcen wird dann ausschließlich über IAM gewährt. Der einheitliche Zugriff auf Bucket-Ebene kann nicht deaktiviert werden, nachdem er 90 Tage hintereinander in einem Bucket aktiviert war.
Sollten Sie einen einheitlichen Zugriff auf Bucket-Ebene verwenden?
Im Allgemeinen wird ein einheitlicher Zugriff auf Bucket-Ebene empfohlen:
Der einheitliche Zugriff auf Bucket-Ebene vereinheitlicht und vereinfacht die Zugriffsverwaltung für Ihre Cloud Storage-Ressourcen.
Der einheitliche Zugriff auf Bucket-Ebene verhindert eine unbeabsichtigte Datenpufferung durch ACLs.
Der einheitliche Zugriff auf Bucket-Ebene muss aktiviert sein, um die folgenden Funktionen verwenden zu können:
- Hierarchischer Namespace
- Verwaltete Ordner
- IAM-Bedingungen, die direkt auf dem Bucket festgelegt sind
Der einheitliche Zugriff auf Bucket-Ebene muss aktiviert sein, um Entitäten der Workforce Identity-Föderation oder der Workload Identity-Föderation Zugriff auf Cloud Storage-Ressourcen zu gewähren.
Sie sollten keinen einheitlichen Zugriff auf Bucket-Ebene verwenden, wenn Sie das ACL-System für Ihren Bucket verwenden möchten.
Verhalten bei Aktivierung
Sie können den einheitlichen Zugriff auf Bucket-Ebene entweder beim Erstellen eines neuen Buckets oder einheitlichen Zugriff auf Bucket-Ebene explizit für einen vorhandenen Bucket aktivieren.
Nach der Aktivierung hat ein Bucket folgendes Verhalten:
Bei Anfragen zum Festlegen, Lesen oder Ändern von Bucket- und Objekt-ACLs werden
400 Bad Request
-Fehler ausgegeben.- Dazu gehören JSON API-Anfragen mit den Methoden
BucketAccessControls
,DefaultObjectAccessControls
oderObjectAccessControls
.
- Dazu gehören JSON API-Anfragen mit den Methoden
Bei JSON API-Anfragen für eine vollständige Projektion von Bucket- oder Objektmetadaten enthält die Antwort eine leere ACL-Liste.
Die Inhaberschaft einzelner Objekte ist nicht mehr vorhanden. Der durch diese Inhaberschaft gewährte Zugriff wird entzogen und Anfragen für Bucket- und Objektmetadaten enthalten kein
owner
-Feld mehr.Bei der Erstellung erhalten Buckets spezielle IAM-Rollen. Wenn Sie beim Erstellen eines neuen Buckets einen einheitlichen Zugriff auf Bucket-Ebene aktivieren, erhält dieser Bucket zusätzliche IAM-Rollen.
Dabei werden die Berechtigungen beibehalten, die Objekte möglicherweise von den standardmäßigen Standard-Objekt-ACLs für einen Bucket übernommen haben.
Wenn Sie den einheitlichen Zugriff auf Bucket-Ebene für einen vorhandenen Bucket aktivieren, müssen Sie solche Rollen manuell anwenden. Wenn Sie zuvor die Standard-Objekt-ACL des Buckets geändert haben, ist es wahrscheinlich in Ihrem Interesse, eine andere Gruppe von IAM-Rollen anzuwenden.
Verhalten bei Deaktivierung
Cloud Storage speichert vorhandene ACLs, damit der einheitliche Zugriff auf Bucket-Ebene deaktiviert und die Verwendung von ACLs wiederhergestellt werden kann. Wenn Sie den einheitlichen Zugriff auf Bucket-Ebene deaktivieren, gilt Folgendes:
Gespeicherte ACLs für Objekte werden wieder aktiviert.
Alle Objekte, die dem Bucket nach dem Aktivieren des einheitlichen Zugriffs auf Bucket-Ebene hinzugefügt werden, erhalten ACLs entsprechend den vom Bucket verwendeten Standard-Objekt-ACLs.
Überlegungen beim Migrieren eines vorhandenen Buckets
Wenn Sie den einheitlichen Zugriff auf Bucket-Ebene für einen vorhandenen Bucket aktivieren, sollten die Berechtigungen von Nutzern und Diensten, deren Zugriff zuvor über ACLs gewährt wurde, zu IAM migriert werden. In diesem Abschnitt werden einige Schritte beschrieben, die Sie beim Migrieren eines Buckets zum einheitlichen Zugriff auf Bucket-Ebene ausführen sollten. Da ACLs und IAM für Bucket-Berechtigungen synchronisiert werden, sollten Sie sich speziell auf den Zugriff auf Objekte in Ihrem Bucket konzentrieren und nicht auf den Bucket-Zugriff.
Werden durch eine IAM-Berechtigung auf Bucket-Ebene zu viele Daten freigegeben?
Bevor Sie Ihren ACLs entsprechende IAM-Berechtigungen zuweisen, sollten Sie Folgendes berücksichtigen:
- Eine auf Bucket-Ebene angewendete IAM-Berechtigung gilt für alle Objekte im Bucket. ACLs hingegen können von Objekt zu Objekt variieren.
Wenn Sie den Zugriff auf ausgewählte Objekte beschränken möchten, sollten Sie diese in separaten Buckets gruppieren. Die Objekte in einer Gruppierung sollten jeweils dieselben Berechtigungen haben.
Nutzung von Objekt-ACLs prüfen
Bei der Migration zum einheitlichen Zugriff auf Bucket-Ebene sollten Sie prüfen, ob auf Objekte im Bucket über die jeweils angewendeten ACLs zugegriffen wird. Dafür bietet Cloud Monitoring einen Messwert, der die ACL-Nutzung aufzeichnet. Wenn dieser Messwert darauf hinweist, dass Nutzer oder Dienste für den Zugriff auf Ihre Objekte auf ACLs angewiesen sind, sollten Sie dem Bucket entsprechende IAM-Berechtigungen zuweisen, bevor Sie den einheitlichen Zugriff auf Bucket-Ebene aktivieren. Eine Anleitung zum Prüfen der ACL-Nutzung in Monitoring finden Sie unter Auf ACL-Nutzung prüfen.
Mit diesem Messwert können Sie ermitteln, welche Auswirkungen das Aktivieren des einheitlichen Zugriffs auf Bucket-Ebene auf Ihren Workflow hat:
Messwert | Beschreibung |
---|---|
storage.googleapis.com/authz/acl_operations_count |
Die Anzahl der ACL-Vorgänge, die deaktiviert werden, sobald der einheitliche Zugriff auf Bucket-Ebene aktiviert ist, aufgeschlüsselt nach ACL-Vorgangsart und -Bucket. |
Ein wichtiger zu untersuchender ACL-Vorgang ist OBJECT_ACCESS_REQUIRED_OBJECT_ACL
:
Wenn diese Zahl null ist, waren in den letzten 6 Wochen keine ACLs auf Objektebene erforderlich, um auf Objekte zuzugreifen. IAM-Richtlinien decken die erforderlichen Berechtigungen auf Bucket- bzw. Projektebene ab.
Wenn diese Zahl größer als null ist, wurden innerhalb der letzten 6 Wochen Zugriffsanfragen auf Objekte gestellt, für die Objekt-ACL-Berechtigungen erforderlich waren. Sie sollten entsprechende IAM-Richtlinien zuweisen, bevor Sie den einheitlichen Zugriff auf Bucket-Ebene aktivieren.
Weitere Informationen zu Monitoring-Messwerten finden Sie unter Messwerte, Zeitachsen und Ressourcen.
Standard-Objekt-ACL eines Buckets prüfen
Buckets ohne einheitlichen Zugriff auf Bucket-Ebene ist eine Standard-Objekt-ACL zugeordnet. Diese Standard-Objekt-ACL wird auf jedes neue Objekt angewendet, sofern beim Hinzufügen des Objekts zum Bucket nicht explizit eine ACL angegeben wird.
Für Bucket wird beispielsweise häufig die vordefinierte ACL projectPrivate
als Standard-Objekt-ACL verwendet. projectPrivate
gewährt den Projektbetrachtern, die dem Bucket zugeordnet sind, die Berechtigung READER
für das Objekt und den Projektbearbeitern und -inhabern, die dem Bucket zugeordnet sind, die Berechtigung OWNER
für das Objekt.
Bevor Sie den einheitlichen Zugriff auf Bucket-Ebene aktivieren, sollten Sie die Standard-Objekt-ACL prüfen, die für Ihren Bucket gilt. Nachdem Sie den einheitlichen Zugriff auf Bucket-Ebene aktiviert haben, können Sie sich überlegen, ob Sie die mit der Standard-Objekt-ACL verknüpften Berechtigungen gewähren möchten. Wenn ja, müssen Sie dem Bucket entsprechende IAM-Berechtigungen zuweisen.
Objekt-ACLs entsprechende IAM-Berechtigungen zuweisen
Objekt-ACLs können Zugriff gewähren, den IAM derzeit nicht bietet. Um sicherzustellen, dass bestehende Nutzer den Zugriff auf Objekte nicht verlieren, wenn Sie einen einheitlichen Zugriff auf Bucket-Ebene aktivieren, verwenden Sie die folgende Tabelle und weisen Sie betroffenen Nutzern die entsprechenden IAM-Rollen zu.
Objekt-ACL-Berechtigung | Entsprechende IAM-Rolle |
---|---|
READER |
Leser alter Storage-Objekte (roles/storage.legacyObjectReader ) |
OWNER |
Inhaber alter Storage-Objekte (roles/storage.legacyObjectOwner ) |
Überlegungen bei der Verwendung von IAM Conditions
IAM Conditions können nur für Buckets mit aktiviertem einheitlichen Zugriff auf Bucket-Ebene verwendet werden, um so Konflikte zwischen den IAM-Richtlinien eines Buckets und Objekt-ACLs zu vermeiden. Das heißt:
Wenn Sie IAM Conditions für einen Bucket einrichten möchten, müssen Sie zuerst den einheitlichen Zugriff auf Bucket-Ebene für diesen Bucket aktivieren.
Bevor Sie den einheitlichen Zugriff auf Bucket-Ebene für einen Bucket deaktivieren können, müssen Sie zuerst alle IAM Conditions aus der Richtlinie dieses Buckets entfernen. Informationen zum Anzeigen und Entfernen von Bedingungen aus einer Bucket-Richtlinie finden Sie unter IAM Conditions für Bucket verwenden.
Nächste Schritte
- Einheitlichen Zugriff auf Bucket-Ebene verwenden
- Mehr zur Einschränkung Einheitlichen Zugriff auf Bucket-Ebene erzwingen, die Sie in Ihrer Organisation, Ihrem Ordner oder Ihrem Projekt in Google Cloud festlegen können
- Cloud IAM-Berechtigungen verwenden