WORM-Storage-Buckets erstellen

Auf dieser Seite erfahren Sie, wie Sie WORM-Speicher-Buckets (Write Once Read Many) in Google Distributed Cloud (GDC) mit Air Gap erstellen. Dabei werden die Voraussetzungen und Schritte zum Erstellen eines WORM-Buckets mit einer festgelegten Aufbewahrungsdauer sowie zum Erteilen von Zugriffsberechtigungen mithilfe von Rollenbindungen behandelt. Mit diesen Informationen können Sie strenge Richtlinien zur Datenaufbewahrung und Unveränderlichkeit durchsetzen und so eine robuste und konforme Datenspeicherung für Aufzeichnungen und Anwendungsfälle wie die Audit-Protokollierung ermöglichen.

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

Hinweis

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

Erforderliche IAM-Rollen

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

  • Projekt-Bucket-Administrator (project-bucket-admin): Speicher-Buckets erstellen, aktualisieren und löschen.
  • Projekt-Bucket-Objektbetrachter (project-bucket-object-viewer): Details zu Speicher-Buckets und -Objekten ansehen 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 zonalen Management API-Server, falls Sie noch keine haben.
  2. Führen Sie für Buckets mit zwei Zonen die folgenden Schritte aus:
    • Prüfen Sie mit Ihrem Infrastrukturbetreiber, 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 für einen Mindestzeitraum aufbewahrt werden. Ein Anwendungsfall für einen WORM-Bucket ist die Audit-Protokollierung.

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 gesperrt ist. Diese Aufbewahrungsdauer unterscheidet sich von der Mindestspeicherdauer der Speicherklasse (z. B. 30 Tage 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 Grenzwerte für die 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. Erteilen Sie allen Nutzern, die schreibgeschützten Zugriff benötigen, die Rolle project-bucket-object-viewer:

    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. Erteilen Sie Nutzern, die Inhalte in den Bucket schreiben müssen, die Rolle project-bucket-object-admin:

    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