GNU/Linux >> Linux Esercitazione >  >> Linux

gcsfuse Errore di input/output

Appare dal Insufficient Permission errori nell'output di debug che indicano che gcsfuse non dispone di autorizzazioni sufficienti per il bucket. Probabilmente ha accesso in sola lettura.

Assicurati di leggere la documentazione delle credenziali per gcsfuse. In particolare, se utilizzi un account di servizio su una VM GCE, assicurati di impostare la VM con storage-full ambito di accesso.


Il tuo problema deriva da autorizzazioni insufficienti, ma no è necessario distruggere e ricreare la VM con un ambito diverso per risolvere questo problema. Ecco un altro approccio più adatto ai sistemi di produzione:

  1. Crea un account di servizio
  2. Crea una chiave per l'account di servizio e scarica il file JSON
  3. Assegna un ruolo appropriato all'account di servizio
  4. Concedi le autorizzazioni appropriate all'account di servizio nel bucket
  5. Carica le credenziali JSON per l'account di servizio nella VM

Infine, definisci una variabile di ambiente che contenga il percorso delle credenziali dell'account di servizio quando chiami gcsfuse dalla riga di comando:

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

Usa il key_file opzione per ottenere la stessa cosa in fstab . Entrambe queste opzioni sono documentate nella documentazione delle credenziali di gcsfuse. (EDIT:questa opzione è documentata, ma non funzionerà per me.)

È interessante notare che devi usare la variabile d'ambiente o key_file opzione anche se hai configurato l'account di servizio sulla VM utilizzando:

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

Per qualche motivo, gcsfuse ignora l'account con credenziali attivo.

Usando il storage-full ambito durante la creazione di una VM ha implicazioni sulla sicurezza e sulla stabilità, perché consente a tale VM di avere pieno accesso a ogni bucket che appartiene allo stesso progetto. Il tuo server di archiviazione file dovrebbe davvero essere in grado di sovrascrivere i log in un bucket di registrazione o leggere i backup del database in un altro bucket?


Linux
  1. Come funzionano l'input da tastiera e l'output di testo?

  2. Output di quale comando utilizzato per l'input su Cd?

  3. Output da salvare in un file con lo stesso nome del file di input?

  4. creazione di collegamento simbolico:errore di protocollo

  5. Come reindirizzare l'output del servizio systemd su un file

Spiegazione del reindirizzamento di input e output su Linux

Spiegazione:input, output e reindirizzamento degli errori in Linux

Shell Scripting Part4 – Input, Output e Reindirizzamento

Correggi l'errore cPanel:l'account e-mail esiste già

Errore SFTP Messaggio ricevuto troppo lungo

Come reindirizzare l'output del programma come input