WORM-Storage-Buckets erstellen

Auf dieser Seite wird beschrieben, wie Sie WORM-Speicher-Buckets (Write Once Read Many) in GDC-Umgebungen (Google Distributed Cloud) mit Air Gap erstellen. Dazu gehören die Voraussetzungen und Schritte zum Erstellen eines WORM-Buckets mit einer definierten Aufbewahrungsdauer sowie zum Gewähren von Zugriffsberechtigungen mithilfe von Rollenbindungen. Anhand dieser Informationen können Sie strenge Praktiken zur Datenaufbewahrung und Unveränderlichkeit durchsetzen und so für eine robuste und konforme Datenspeicherung für Datensätze und Anwendungsfälle wie Audit-Logging sorgen.

Diese Seite richtet sich an IT-Administratoren in der Gruppe der Infrastrukturbetreiber oder Entwickler in der Gruppe der Anwendungsbetreiber, die Einstellungen für die Datenaufbewahrung und Compliance für Storage-Buckets in GDC-Umgebungen mit Air Gap verwalten. Weitere Informationen finden Sie unter Zielgruppen für die Dokumentation zu GDC mit Air Gap.

Hinweis

Storage-Buckets sind Ressourcen, die auf ein bestimmtes Projekt beschränkt sind. Das Projekt fungiert als Container, der Ihre Buckets gruppiert und ihre Verwaltung über den Management API-Server ermöglicht. Bevor Sie die Vorgänge auf dieser Seite ausführen können, müssen Sie entweder ein neues Projekt erstellen oder ein vorhandenes Projekt auswählen, für das Sie ausreichende Berechtigungen haben.

Erforderliche IAM-Rollen

Wenden Sie sich an Ihren IAM-Projektadministrator, um die folgenden Rollen in Ihrem Projekt-Namespace anzufordern:

  • Bucket-Projektadministrator (project-bucket-admin): Erstellen, Aktualisieren und Löschen von Storage-Buckets.
  • Bucket-Objekt-Projekt-Betrachter (project-bucket-object-viewer): Details zu Storage-Buckets und -Objekten aufrufen und prüfen.

Weitere Informationen finden Sie unter Bucket-Zugriff gewähren.

Umgebung vorbereiten

So führen Sie Befehle für den Management-API-Server oder den globalen API-Server aus:

  1. Melden Sie sich an und generieren Sie die kubeconfig-Datei für den API-Server für die zonale Verwaltung, falls Sie noch keine haben.
  2. Gehen Sie bei Dual-Zone-Buckets so vor:
    • Prüfen Sie mit Ihrem Infrastrukturbetreiber (IO), ob die benutzerdefinierte Ressource BucketLocationConfig für Ihre gekoppelten Zonen erstellt wurde.
    • Generieren Sie die kubeconfig-Datei für den globalen API-Server.

WORM-Bucket erstellen

Ein WORM-Bucket sorgt dafür, dass Objekte nicht überschrieben werden, und bewahrt sie für einen Mindestzeitraum auf. Audit-Logging ist ein Beispiel für einen Anwendungsfall für einen WORM-Bucket.

So erstellen Sie einen WORM-Bucket:

  1. Legen Sie beim Erstellen des Buckets eine Aufbewahrungsdauer fest. Die Aufbewahrungsdauer gibt an, wie viele Tage jede Objektversion vor dem Löschen oder Ändern geschützt ist. Diese Aufbewahrungsdauer unterscheidet sich von der Mindestspeicherdauer der Speicherklasse (z. B. die Mindestspeicherdauer von 30 Tagen für die Speicherklasse Standard). Im folgenden Bucket wird beispielsweise eine Aufbewahrungsdauer von 365 Tagen festgelegt. Wenden Sie sich an Ihren Infrastrukturbetreiber (IO), wenn Sie die Limits der Aufbewahrungsrichtlinie überschreiten müssen.

    apiVersion: object.gdc.goog/v1
    kind: Bucket
    metadata:
      name: foo-logging-bucket
      namespace: foo-service
    spec:
      description: "Audit logs for foo"
      storageClass: Standard
      bucketPolicy:
        lockingPolicy:
          defaultObjectRetentionDays: 365
    
  2. Weisen Sie allen Nutzern, die Lesezugriff benötigen, die Rolle project-bucket-object-viewer zu:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: foo-service
      name: object-readonly-access
    roleRef:
      kind: Role
      name: project-bucket-object-viewer
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: ServiceAccount
      namespace: foo-service
      name: foo-log-processor
    - kind: User
      name: bob@example.com
      apiGroup: rbac.authorization.k8s.io
    
  3. Weisen Sie Nutzern, die Inhalte in den Bucket schreiben müssen, die Rolle project-bucket-object-admin zu:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: foo-service
      name: object-write-access
    roleRef:
      kind: Role
      name: project-bucket-object-admin
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: ServiceAccount
      namespace: foo-service
      name: foo-service-account