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, mit denen Sie Nutzern die Zugriffsberechtigung für Ihre Buckets und Objekte erteilen können: IAM und Access Control Lists (ACLs). Beide Systeme arbeiten parallel – wenn Sie einem Nutzer Zugriff auf eine Cloud Storage-Ressource gewähren möchten, muss die Berechtigung nur von einem der Systeme erteilt werden. InGoogle Cloud wird durchgängig IAM verwendet, mit dem Sie verschiedene Berechtigungen auf Bucket- und Projektebene gewähren können. 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 bietet Cloud Storage einheitlichen Zugriff auf Bucket-Ebene. Wenn Sie diese Funktion in einem Bucket verwenden, werden für alle Cloud Storage-Ressourcen im Bucket die ACLs 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, wenn er 90 Tage lang in einem Bucket aktiviert war.
Sollten Sie den einheitlichen Zugriff auf Bucket-Ebene verwenden?
Im Allgemeinen wird empfohlen, den einheitlichen Zugriff auf Bucket-Ebene zu verwenden:
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 Datenpanne durch ACLs.
Sie müssen den einheitlichen Zugriff auf Bucket-Ebene aktivieren, um die folgenden Funktionen verwenden zu können:
- Hierarchischer Namespace
- Verwaltete Ordner
- IAM-Bedingungen, die direkt für den Bucket festgelegt werden
Sie müssen den einheitlichen Zugriff auf Bucket-Ebene aktivieren, um Entitäten der Mitarbeiteridentitätsföderation oder der Workload Identity-Föderation Zugriff auf Cloud Storage-Ressourcen zu gewähren.
Sie sollten den einheitlichen Zugriff auf Bucket-Ebene nicht aktivieren, wenn Sie für Ihren Bucket das ACL-System verwenden möchten.
Verhalten bei Aktivierung
Sie können den einheitlichen Zugriff auf Bucket-Ebene entweder beim Erstellen eines neuen Buckets aktivieren oder durch explizites Aktivieren des einheitlichen Zugriffs auf Bucket-Ebene für einen vorhandenen Bucket.
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,DefaultObjectAccessControlsoderObjectAccessControls.
- 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 Objektinhaberschaft für einzelne Objekte ist nicht mehr vorhanden. Der durch diese Inhaberschaft gewährte Zugriff wird entzogen und Anfragen für Bucket- und Objektmetadaten enthalten nicht mehr das Feld
owner.Buckets erhalten bei der Erstellung spezielle IAM-Rollen. Wenn Sie beim Erstellen eines neuen Buckets den einheitlichen Zugriff auf Bucket-Ebene aktivieren, erhält dieser Bucket zusätzliche IAM-Rollen.
Dabei werden die Berechtigungen beibehalten, die Objekte aus den Standard-Objekt-ACLs für einen Bucket übernommen hätten.
Wenn Sie für einen vorhandenen Bucket den einheitlichen Zugriff auf Bucket-Ebene aktivieren, müssen Sie diese Rollen manuell anwenden. Wenn Sie zuvor die Standard-Objekt-ACL des Buckets geändert haben, sollten Sie wahrscheinlich einen anderen Satz an IAM-Rollen anwenden.
Verhalten bei Deaktivierung
Cloud Storage speichert vorhandene ACLs für den Fall, dass Sie den einheitlichen Zugriff auf Bucket-Ebene deaktivieren und wieder ACLs verwenden möchten. 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.
Voraussetzungen für das Deaktivieren des einheitlichen Zugriffs auf Bucket-Ebene
Wenn Sie den einheitlichen Zugriff auf Bucket-Ebene deaktivieren möchten, muss Folgendes zutreffen:
Die Funktion ist seit weniger als 90 aufeinanderfolgenden Tagen aktiviert.
Sie haben alle IAM-Bedingungen aus der IAM-Richtlinie des Buckets entfernt.
Der Bucket unterliegt nicht der Organisationsrichtlinie Einheitlicher Zugriff auf Bucket-Ebene erforderlich.
Sie haben alle verwalteten Ordner aus dem Bucket gelöscht.
Überlegungen zum Migrieren vorhandener 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 im Bucket angewendet, sofern beim Hinzufügen des Objekts zum Bucket nicht explizit eine ACL angegeben wird.
Für Buckets 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, und den Projektbearbeitern und Projektinhabern, die dem Bucket zugeordnet sind, wird die Berechtigung OWNER gewährt.
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, der mit IAM derzeit nicht möglich ist. Um sicherzustellen, dass bestehende Nutzer den Zugriff auf Objekte nicht verlieren, wenn Sie 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 zur 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 für diesen Bucket zuerst einheitlichen Zugriff auf Bucket-Ebene 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 des Buckets entfernen. Informationen zum Anzeigen und Entfernen von Bedingungen aus einer Bucket-Richtlinie finden Sie unter IAM Conditions für Buckets verwenden.
Nächste Schritte
- Informationen zu einheitlichen Zugriff auf Bucket-Ebene verwenden.
- Informationen zu einheitlichen Zugriff auf Bucket-Ebene erzwingen für Ihre Google Cloud -Organisationen, -Ordner oder -Projekte.
- IAM-Berechtigungen für Buckets und Projekte festlegen.