Aparece desde el Insufficient Permission
errores en su salida de depuración de que gcsfuse no tiene suficientes permisos para su depósito. Probablemente tenga acceso de solo lectura.
Asegúrese de leer la documentación de credenciales para gcsfuse. En particular, si usa una cuenta de servicio en una VM de GCE, asegúrese de configurar la VM con el storage-full
ámbito de acceso.
Su problema se debe a permisos insuficientes, pero usted no necesita destruir y volver a crear la VM con un alcance diferente para resolver este problema. Aquí hay otro enfoque que es más adecuado para los sistemas de producción:
- Crear una cuenta de servicio
- Cree una clave para la cuenta de servicio y descargue el archivo JSON
- Concede una función adecuada a la cuenta de servicio
- Otorgue los permisos apropiados a la cuenta de servicio en el depósito
- Cargue las credenciales JSON para la cuenta de servicio a la máquina virtual
Finalmente, defina una variable de entorno que contenga la ruta a las credenciales de la cuenta de servicio cuando llame a gcsfuse desde la línea de comando:
GOOGLE_APPLICATION_CREDENTIALS=/root/credentials/service_credential_file.json gcsfuse bucket_name /my/mount/point
Usa el key_file
opción para lograr lo mismo en fstab
. Ambas opciones están documentadas en la documentación de credenciales de gcsfuse. (EDITAR:esta opción está documentada, pero no funcionará para mí).
Curiosamente, debe usar la variable de entorno o key_file
opción incluso si ha configurado la cuenta de servicio en la VM usando:
gcloud auth activate-service-account --key-file /root/credentials/service_credential_file.json
Por alguna razón, gcsfuse ignora la cuenta activa con credenciales.
Usando el storage-full
El alcance al crear una máquina virtual tiene implicaciones de seguridad y estabilidad, ya que permite que esa máquina virtual tenga acceso completo a todos los depósitos que pertenecen al mismo proyecto. ¿Su servidor de almacenamiento de archivos debería poder sobrescribir los registros en un depósito de registro o leer las copias de seguridad de la base de datos en otro depósito?