GNU/Linux >> LINUX-Kenntnisse >  >> Linux

gcsfuse Eingabe-/Ausgabefehler

Es erscheint aus dem Insufficient Permission Fehler in Ihrer Debug-Ausgabe, dass gcsfuse keine ausreichenden Berechtigungen für Ihren Bucket hat. Wahrscheinlich hat es nur Lesezugriff.

Lesen Sie unbedingt die Dokumentation zu Anmeldeinformationen für gcsfuse. Stellen Sie insbesondere bei Verwendung eines Dienstkontos auf einer GCE-VM sicher, dass Sie die VM mit storage-full einrichten Zugriffsbereich.


Ihr Problem rührt von unzureichenden Berechtigungen her, aber Sie nicht müssen die VM mit einem anderen Bereich zerstören und neu erstellen, um dieses Problem zu lösen. Hier ist ein weiterer Ansatz, der besser für Produktionssysteme geeignet ist:

  1. Erstellen Sie ein Dienstkonto
  2. Erstellen Sie einen Schlüssel für das Dienstkonto und laden Sie die JSON-Datei herunter
  3. Geben Sie dem Dienstkonto eine entsprechende Rolle
  4. Geben Sie dem Dienstkonto die entsprechenden Berechtigungen für den Bucket
  5. Laden Sie die JSON-Anmeldedaten für das Dienstkonto auf die VM hoch

Definieren Sie abschließend eine Umgebungsvariable, die den Pfad zu den Anmeldeinformationen des Dienstkontos enthält, wenn gcsfuse über die Befehlszeile aufgerufen wird:

GOOGLE_APPLICATION_CREDENTIALS=/root/credentials/service_credential_file.json gcsfuse bucket_name /my/mount/point

Verwenden Sie die key_file Option, um dasselbe in fstab zu erreichen . Beide Optionen sind in der gcsfuse-Anmeldeinformationendokumentation dokumentiert. (BEARBEITEN:Diese Option ist dokumentiert, funktioniert aber bei mir nicht.)

Interessanterweise müssen Sie die Umgebungsvariable oder key_file verwenden Option, auch wenn Sie das Dienstkonto auf der VM mit:

konfiguriert haben
gcloud auth activate-service-account --key-file /root/credentials/service_credential_file.json

Aus irgendeinem Grund ignoriert gcsfuse das aktive Anmeldekonto.

Verwenden Sie den storage-full Bereich beim Erstellen einer VM hat Auswirkungen auf Sicherheit und Stabilität, da diese VM vollen Zugriff auf jeden Bucket hat, der zu demselben Projekt gehört. Sollte Ihr Dateispeicherserver wirklich in der Lage sein, die Protokolle in einem Logging-Bucket zu überschreiben oder die Datenbanksicherungen in einem anderen Bucket zu lesen?


Linux
  1. Eingabe-/Ausgabeumleitung in Linux/Unix

  2. Wie funktionieren Tastatureingabe und Textausgabe?

  3. Ausgabe welchen Befehls für die Eingabe auf CD verwendet?

  4. SFTP-Fehler Empfangene Nachricht zu lang

  5. So leiten Sie die Ausgabe des systemd-Dienstes in eine Datei um

Eingabe-Ausgabe-Umleitung unter Linux erklärt

Erklärt:Eingabe-, Ausgabe- und Fehlerumleitung in Linux

Shell-Scripting Teil 4 – Eingabe, Ausgabe und Umleitung

cPanel-Fehler beheben – Das E-Mail-Konto existiert bereits

Ubuntu-Eingabe-/Ausgabefehler

Interpretieren von dd Input/Output-Fehler