Storage-Buckets für Projekte erstellen

Auf dieser Seite wird beschrieben, wie Sie Storage-Buckets für Google Distributed Cloud (GDC) mit Air Gap erstellen.

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:

  • Projekt-Bucket-Administrator (project-bucket-admin): Erstellen, Aktualisieren und Löschen von Storage-Buckets.
  • Project Bucket Object Viewer (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.

Benennungsrichtlinien für Storage-Buckets

Bucket-Namen müssen den folgenden Namenskonventionen entsprechen:

  • Darf innerhalb des Projekts nur einmal vorkommen. Der Management API-Server stellt dem vollständig qualifizierten Namen des Buckets ein eindeutiges Präfix voran, um Konflikte innerhalb der Organisation zu vermeiden. Im unwahrscheinlichen Fall, dass ein Präfix und ein Bucket-Name in verschiedenen Organisationen kollidieren, schlägt die Bucket-Erstellung mit dem Fehler „Bucket-Name wird verwendet“ fehl.
  • Geben Sie keine personenidentifizierbaren Informationen an.
  • DNS-konform sein.
  • Mindestens 1 und maximal 55 Zeichen enthalten.
  • Er muss mit einem Buchstaben beginnen und darf nur Buchstaben, Ziffern und Bindestriche enthalten.

Bucket erstellen

Standardmäßig verwenden Buckets die Speicherklasse Standard. Wenn Nearline Storage von Ihrem Infrastrukturoperator (IO) aktiviert wurde, können Sie auch die Speicherklasse Nearline für Daten auswählen, auf die seltener zugegriffen wird. Nearline Storage wird sowohl für Buckets mit einer Zone als auch für Buckets mit zwei Zonen unterstützt.

Console

  1. Klicken Sie im Navigationsmenü auf Objektspeicher.
  2. Wählen Sie in der Projektauswahl das Projekt aus, in dem Sie den Bucket erstellen möchten.
  3. Klicken Sie auf Bucket erstellen.
  4. Weisen Sie dem Bucket im Bucket-Erstellungsprozess einen Namen zu, der für alle Buckets im Projekt eindeutig ist.
  5. Geben Sie eine Beschreibung ein.
  6. Wählen Sie unter Speicherklasse die Option Standard oder Nearline aus. Die Option Nearline ist nur sichtbar, wenn Nearline Storage aktiviert ist.
  7. Optional: Klicken Sie auf den Ein/Aus-Button toggle_off, um eine Aufbewahrungsrichtlinie festzulegen, und geben Sie die gewünschte Anzahl von Tagen ein. Wenden Sie sich an Ihren IO, wenn Sie die Limits der Aufbewahrungsrichtlinie überschreiten müssen.
  8. Klicken Sie auf Erstellen. Eine Erfolgsmeldung wird angezeigt und Sie werden zur Seite Buckets zurückgeleitet.

Wenn Sie prüfen möchten, ob Sie einen neuen Bucket erstellt haben, aktualisieren Sie nach einigen Minuten die Seite Buckets und prüfen Sie, ob sich der Bucket-Status von Not ready in Ready ändert.

gdcloud

So erstellen Sie einen Bucket für eine einzelne Zone mit gdcloud und der Speicherklasse Nearline:

gdcloud storage buckets create BUCKET_NAME \
    --location=ZONE_NAME \
    --location-type=SingleZone \
    --storage-class=Nearline

So erstellen Sie einen Dual-Zone-Bucket mit gdcloud am globalen Standort:

gdcloud storage buckets create BUCKET_NAME \
    --location=ZONE_1,ZONE_2 \
    --location-type=AsyncDualZone \
    --storage-class=Nearline

Wenn --storage-class weggelassen wird, wird standardmäßig Standard verwendet.

Weitere Informationen finden Sie unter gdcloud storage buckets create.

API

Wenn Sie einen zonalen Bucket erstellen möchten, wenden Sie eine Bucket-Spezifikation auf Ihren Projekt-Namespace an:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f bucket.yaml

Das folgende Beispiel zeigt eine Bucket-Spezifikation mit der Speicherklasse Standard:

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: DESCRIPTION
  storageClass: Standard
  bucketPolicy:
    lockingPolicy:
      defaultObjectRetentionDays: RETENTION_DAY_COUNT

Das folgende Beispiel zeigt eine Bucket-Spezifikation mit der Speicherklasse Nearline:

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: DESCRIPTION
  storageClass: Nearline
  bucketPolicy:
    lockingPolicy:
      defaultObjectRetentionDays: RETENTION_DAY_COUNT

Das folgende Beispiel zeigt eine Bucket-Spezifikation mit der Verschlüsselungsversion v1:

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
  labels:
    object.gdc.goog/encryption-version: v1
spec:
  description: DESCRIPTION
  storageClass: Standard
  bucketPolicy:
    lockingPolicy:
      defaultObjectRetentionDays: RETENTION_DAY_COUNT

Weitere Informationen finden Sie in der Bucket API-Referenz.

Das folgende Beispiel zeigt eine Spezifikation für einen Dual-Region-Bucket für den globalen API-Server:

apiVersion: object.global.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: PROJECT_NAME
spec:
  location: LOCATION_NAME
  description: Sample DZ Bucket
  storageClass: Standard

Wenn Sie einen Dual-Region-Bucket mit Nearline Storage erstellen möchten, legen Sie storageClass: Nearline fest.

Beachten Sie, dass für Dual-Region-Buckets nur die V2-Verschlüsselung unterstützt wird und alle Vorgänge zum Erstellen, Aktualisieren oder Löschen einer Dual-Region-Bucket-Ressource über den globalen API-Server ausgeführt werden müssen.

Wenn Sie einen Dual-Region-Bucket erstellen möchten, wenden Sie die Spezifikation auf den globalen API-Server an:

kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f bucket.yaml

Führen Sie nach dem Erstellen des Buckets den folgenden Befehl aus, um die Details des Buckets zu bestätigen und zu prüfen:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG describe buckets BUCKET_NAME -n PROJECT_NAMESPACE

Der Abschnitt Status enthält zwei wichtige Felder: Verschlüsselung (für Verschlüsselungsdetails) und Vollständig qualifizierter Name (enthält den FULLY_QUALIFIED_BUCKET_NAME).

Verschlüsselung v1

Die Informationen beziehen sich auf den AEADKey mit dem Namen obj-FULLY_QUALIFIED_BUCKET_NAME, der als Referenz für den Verschlüsselungsschlüssel dient, der zum Verschlüsseln von im Bucket gespeicherten Objekten verwendet wird. Hier ein Beispiel:

Status:
  Encryption:
    Key Ref:
      Kind: AEADKey
      Name: obj-FULLY_QUALIFIED_BUCKET_NAME
      Namespace: PROJECT_NAMESPACE
    Type: CMEK

Verschlüsselung v2

Die Informationen beziehen sich auf das Secret mit dem Namen kek-ref-FULLY_QUALIFIED_BUCKET_NAME, das als Referenz für aktive Standard-AEADKeys dient. Aktive Standard-AEADKeys werden zufällig ausgewählt, um Objekte zu verschlüsseln, die in den Bucket hochgeladen werden, wenn kein bestimmter AEADKey angegeben ist.

Hier ein Beispiel:

Status:
  Encryption:
    Key Ref:
      Kind: Secret
      Name: kek-ref-FULLY_QUALIFIED_BUCKET_NAME
      Namespace: PROJECT_NAMESPACE
    Type: CMEK

Sie können auch den folgenden Befehl ausführen, um zu prüfen, ob die erforderlichen AEADKeys erstellt wurden:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get aeadkeys -n PROJECT_NAMESPACE -l  cmek.security.gdc.goog/resource-name=FULLY_QUALIFIED_BUCKET_NAME