Einheitlicher Zugriff auf Bucket-Ebene

Einrichtung

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.

Überblick

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?

Grundsätzlich sollte ein einheitlicher Zugriff auf Bucket-Ebene verwendet werden, da dies den Zugriff auf Ihre Cloud Storage-Ressourcen vereinheitlicht und vereinfacht.

Mit dem einheitlichen Zugriff auf Bucket-Ebene können Sie auch andere Google Cloud-Sicherheitsfeatures wie domaineingeschränkte Freigabe, Identitätsföderation von Mitarbeitern und IAM Conditions.

In den folgenden Fällen sollten Sie möglicherweise keinen einheitlichen Zugriff auf Bucket-Ebene verwenden und stattdessen exakt abgestufte ACLs beibehalten:

  • Sie möchten den Zugriff auf bestimmte Objekte in einem Bucket über alte ACLs steuern.

  • Sie möchten, dass der Uploader eines Objekts vollständige Kontrolle über das Objekt, aber eingeschränkten Zugriff auf andere Objekte in Ihrem Bucket hat.

  • Mit der XML API können Sie Berechtigungen für Buckets aufrufen oder festlegen.

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.

  • 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 den 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.

Beispielsweise verwenden Buckets häufig die vordefinierte ACL projectPrivate als Standard-Objekt-ACL. 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:

Nächste Schritte