Cloud Storage-Buckets mit Cloud Storage FUSE bereitstellen

Bereitstellungsoptionen

Auf dieser Seite werden mehrere Möglichkeiten zum Bereitstellen von Cloud Storage-Buckets in Ihrem lokalen Dateisystem mithilfe von Cloud Storage FUSE beschrieben.

Hinweise

Zum Bereitstellen von Buckets müssen Sie zuerst die folgenden Aufgaben ausführen.

Erforderliche Rollen abrufen

Bitten Sie den Bucket-Inhaber, Ihnen die Rolle Storage-Objekt-Betrachter (roles/storage.objectViewer) für den Bucket zuzuweisen, um einen Bucket bereitzustellen. Beachten Sie, dass Sie nach dem Erstellen des Buckets wahrscheinlich bereits die Rolle "Storage-Administrator" (roles/storage.admin) für den Bucket haben und die Rolle "Storage-Objekt-Betrachter" nicht benötigen.

Die vordefinierte Rolle „Storage-Objekt-Betrachter“ enthält die Berechtigung, die zum Bereitstellen eines Buckets erforderlich ist. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderliche Berechtigung anzuzeigen:

Erforderliche Berechtigungen

  • storage.objects.list

Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Eine Anleitung zum Zuweisen von Rollen für Buckets finden Sie unter IAM mit Buckets verwenden.

Cloud Storage FUSE installieren

Installieren Sie Cloud Storage FUSE, falls noch nicht geschehen.

Cloud Storage FUSE-Anfragen authentifizieren

Zur Authentifizierung von Cloud Storage FUSE-Anfragen an Cloud Storage müssen Sie Standardanmeldedaten für Anwendungen einrichten. Standardmäßig lädt Cloud Storage FUSE automatisch die Standardanmeldedaten für Anwendungen ohne weitere Konfiguration.

Führen Sie die folgenden Schritte aus, um mit der Google Cloud CLI Standardanmeldedaten für Anwendungen einzurichten:

  1. Installieren Sie die Google Cloud CLI.
  2. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  3. Erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Google-Konto:

    gcloud auth application-default login

Wenn Sie eine virtuelle Maschine (VM) von Compute Engine erstellen, kann ihr Dienstkonto auch zur Authentifizierung des Zugriffs auf Cloud Storage FUSE verwendet werden.

Bucket bereitstellen

Verwenden Sie den folgenden Befehl, um Buckets in Ihrem lokalen Dateisystem bereitzustellen:

gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT

Wobei:

  • GLOBAL_OPTIONS sind die Optionen, die Sie angeben können, um zu steuern, wie die Bereitstellung eingerichtet wird. Weitere Informationen zu Optionen und ihrer Verwendung finden Sie unter Optionen für die Cloud Storage FUSE-Befehlszeile.

  • BUCKET_NAME ist der Name des Buckets, den Sie bereitstellen möchten. Beispiel: my-bucket. Wenn Sie die dynamische Bereitstellung ausführen möchten, schließen Sie einen Bucket-Namen aus dem Befehl aus.

  • MOUNT_POINT ist das lokale Verzeichnis, in dem der Bucket bereitgestellt wird. Beispiel: /path/to/mount/point.

Nachdem Cloud Storage FUSE beendet wurde, können Sie auf Ihre bereitgestellten Buckets zugreifen, indem Sie ls am Bucket-Bereitstellungspunkt ausführen. Wenn Cloud Storage FUSE im Vordergrund bleiben soll (z. B. für das Debug-Logging), können Sie den Befehl gcsfuse mit dem Flag --foreground ausführen.

Beispiele für die Bereitstellung

In diesem Abschnitt werden verschiedene Beispielbefehle für die Bereitstellung von Buckets beschrieben.

Statische Bereitstellung

Statische Bereitstellung bezieht sich auf das Bereitstellen eines bestimmten Buckets. Führen Sie beispielsweise die folgenden Befehle aus, um den Bucket my-bucket im Verzeichnis /path/to/mount/point bereitzustellen:

mkdir /path/to/mount/point
gcsfuse my-bucket /path/to/mount/point

Dynamische Bereitstellung

Bei der dynamischen Bereitstellung werden alle Buckets, auf die ein Nutzer Zugriff hat, als Unterverzeichnisse bereitgestellt.

Bei einer dynamischen Bereitstellung schließen Sie einen Bucket-Namen mit dem Befehl aus. Angenommen, Sie haben Zugriff auf my-bucket-1, my-bucket-2 und my-bucket-3. Führen Sie die folgenden Befehle aus, um alle Buckets im Verzeichnis /path/to/mount/point bereitzustellen:

mkdir /path/to/mount/point
gcsfuse /path/to/mount/point

Anschließend können Sie auf die Buckets als Unterverzeichnisse zugreifen:

ls /path/to/mount/point/my-bucket-1/
ls /path/to/mount/point/my-bucket-2/
ls /path/to/mount/point/my-bucket-3/

Dynamisch bereitgestellte Buckets können nicht vom Root-Bereitstellungspunkt aus aufgelistet werden. Stattdessen muss der Bucket-Name als Teil des Listenvorgangs angegeben werden.

Bucket als schreibgeschützt bereitstellen

Um einen Bucket schreibgeschützt bereitzustellen, übergeben Sie die Option -o ro an den Befehl gcsfuse. Wenn Sie beispielsweise den Bucket my-bucket als schreibgeschützt im Verzeichnis /path/to/mount/point bereitstellen möchten, führen Sie den folgenden Befehl aus:

gcsfuse -o ro my-bucket  /path/to/mount/point

Verzeichnis in einem Bucket bereitstellen

Standardmäßig stellt Cloud Storage FUSE Buckets vollständig bereit, einschließlich des Inhalts und der Verzeichnisstrukturen des Buckets. Um ein bestimmtes Verzeichnis in einem Bucket bereitzustellen, übergeben Sie die Option --only-dir an den Befehl gcsfuse. Wenn Sie beispielsweise das Verzeichnis my-bucket/a/b im Verzeichnis /path/to/mount/point bereitstellen möchten, führen Sie den folgenden Befehl aus:

gcsfuse --only-dir a/b my-bucket /path/to/mount/point

Mit dem Linux-Befehl mount bereitstellen

Die Cloud Storage FUSE-Installation enthält einen Helper mit dem Linux-Befehl mount, mit dem Sie Buckets mit dem Befehl mount bereitstellen können. Der Befehl mount muss unter Root ausgeführt werden, wenn Sie Linux verwenden. Mit dem folgenden Befehl wird beispielsweise der Bucket my-bucket im Pfad /path/to/mount/point bereitgestellt:

sudo mount -t gcsfuse -o rw,user my-bucket /path/to/mount/point

Bei der Bereitstellung mit dem Linux-Befehl mount können die Befehlszeilenoptionen von Cloud Storage FUSE als Argument an das Flag -o übergeben werden. Bindestriche (-) sollten jedoch durch Unterstriche (_) ersetzt werden. Beispiel: implicit_dirs anstelle von implicit-dirs.

sudo mount -t gcsfuse -o implicit_dirs my-bucket /path/to/mount/point

Persistente Bereitstellung

Die Cloud Storage FUSE-Installation enthält einen Helper, der unter dem Pfad /sbin/mount.gcsfuse in Ihrem System installiert ist. Mit diesem Hilfsprogramm können Sie Bereitstellungspunkte mithilfe der Datei /etc/fstab erstellen und so die Bereitstellungen beibehalten.

Wenn Sie die Datei /etc/fstab hinzufügen, wird durch die folgende Zeile beispielsweise ein Bereitstellungspunkt für den Bucket my-bucket im Pfad /mount/point definiert:

my-bucket /mount/point gcsfuse rw,noauto,user

Wobei:

  • Die Option rw gibt an, dass der Bereitstellungspunkt mit Lese- und Schreibberechtigungen erstellt wird.

  • Die Option noauto gibt an, dass das Dateisystem beim Start nicht bereitgestellt werden soll.

  • Mit der Option user kann jeder den in der Datei /etc/fstab angegebenen Bereitstellungspunkt erstellen. Nachdem die Beispielzeile der Datei /etc/fstab hinzugefügt wurde, können Sie mount /mount/point als Nicht-Root-Nutzer ausführen.

Wenn Sie den Bucket beim Booten automatisch bereitstellen möchten, müssen Sie möglicherweise die Option x-systemd.requires=network-online.target oder die Option _netdev in den Eintrag /etc/fstab aufnehmen, damit Cloud Storage FUSE darauf wartet, dass das Netzwerksystem bereit ist, bevor die Bereitstellung erfolgt. Beispiele:

my-bucket /mount/point gcsfuse rw,x-systemd.requires=network-online.target,user

Sie können einen Bucket automatisch als bestimmter Nicht-Root-Nutzer bereitstellen, indem Sie die Optionen uid und/oder gid in den Eintrag /etc/fstab aufnehmen. Beispiele:

my-bucket /mount/point gcsfuse rw,_netdev,allow_other,uid=1001,gid=1001

Ähnlich wie beim Linux-Befehl mount müssen die Flags, die zum Bereitstellen in der Datei /etc/fstab verwendet werden, Unterstriche (_) anstelle von Bindestrichen (-) verwenden. Beispiel: implicit_dirs anstelle von implicit-dirs.

Bucket mit Ordnern bereitstellen

Zum Bereitstellen eines Buckets einschließlich seiner verwalteten Ordner verwenden Sie die Option --implicit-dirs in den Befehl.

Führen Sie beispielsweise die folgenden Befehle aus, um den Bucket my-bucket und seine verwalteten Ordner im Verzeichnis /path/to/mount/point bereitzustellen:

mkdir /path/to/mount/point
gcsfuse --implicit-dirs my-bucket /path/to/mount/point

Beachten Sie beim Bereitstellen eines Buckets mit verwalteten Ordnern die folgenden Einschränkungen und Überlegungen:

  • In bereitgestellten Buckets werden keine leeren verwalteten Ordner angezeigt.

  • Sie können IAM-Berechtigungen für einen verwalteten Ordner nicht mit Cloud Storage FUSE festlegen oder verwalten. Informationen zum Festlegen oder Verwalten von IAM-Berechtigungen für einen verwalteten Ordner finden Sie unter IAM mit verwalteten Ordnern verwenden.

  • Sie können einen verwalteten Ordner in einem bereitgestellten Bucket mit den Befehlen cp und mv kopieren und verschieben. Wenn Sie einen verwalteten Ordner kopieren oder verschieben, werden die IAM-Richtlinien des ursprünglichen verwalteten Ordners nicht in den neuen verwalteten Ordner übernommen. Sie müssen neue IAM-Richtlinien für den neuen verwalteten Ordner festlegen.

Zugriffsberechtigungen für den Bereitstellungspunkt steuern

Standardmäßig erstellt Cloud Storage FUSE Bucket-Bereitstellungspunkte mit Berechtigungen, die nur dem aufrufenden Nutzer den Zugriff auf den Inhalt der bereitgestellten Buckets ermöglichen. Dies ist eine Sicherheitsmaßnahme, die im FUSE-Kernel implementiert wird.

Um einen Bucket bereitzustellen und anderen den Zugriff auf den Bucket-Bereitstellungspunkt zu ermöglichen, können Sie den Befehl mount als Root mit der Option -o allow_other ausführen:

mount -t gcsfuse -o allow_other my-bucket /path/to/mount/point

Wenn Sie vermeiden möchten, dass der Bucket als Root bereitgestellt wird, müssen Sie der Datei /etc/fuse.conf user_allow_other hinzufügen, damit andere Nutzer auf den Bucket-Bereitstellungspunkt zugreifen können.

Für den Zugriff auf einen bereitgestellten Bucket müssen außer dem aufrufenden Nutzer auch andere Nutzer die erforderlichen IAM-Berechtigungen haben.

Erforderliche Rollen für den Zugriff auf einen bereitgestellten Bucket

Bitten Sie den Bucket-Inhaber, Ihnen die Rolle Storage-Objekt-Nutzer (roles/storage.objectUser) für den Bucket zuzuweisen, damit Sie aus einem bereitgestellten Bucket lesen und in diesen schreiben können.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Lesen aus einem bereitgestellten Bucket und zum Schreiben in einen bereitgestellten Bucket erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

  • storage.objects.create
  • storage.objects.delete
  • storage.objects.get
  • storage.objects.list
  • storage.objects.update

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Eine Anleitung zum Zuweisen von Rollen für Buckets finden Sie unter IAM mit Buckets verwenden.

Bucket-Bereitstellung aufheben

Verwenden Sie das fusermount-Tool, um die Bereitstellung eines Buckets aufzuheben:

fusermount -u /path/to/mount/point

Nächste Schritte