2014-12-31 16 views
9

Ho provato ad accedere ai file in un bucket e continuo ad ottenere l'accesso negato sui file. Posso vederli nella console GCS, ma posso accedervi tramite questo e non posso accedervi tramite gsutil eseguendo il comando qui sotto.AccessDeniedException: 403 Proibito su GCS utilizzando l'account proprietario

gsutil cp gs://my-bucket/folder-a/folder-b/mypdf.pdf files/

Ma tutto questo ritorna è AccessDeniedException: 403 Forbidden

posso elencare tutti i file e così via, ma in realtà non accedervi. Ho provato ad aggiungere il mio utente alla acl, ma ciò non ha avuto alcun effetto. Tutti i file sono stati caricati da una VM attraverso un montaggio con fusibile che ha funzionato perfettamente e ha perso tutti gli accessi.

Ho controllato questi posti, ma nessuno sembra avere una soluzione i thats mi ha aiutato

Can't access resource as OWNER despite the fact I'm the owner

gsutil copy returning "AccessDeniedException: 403 Insufficient Permission" from GCE

gsutil cors set command returns 403 AccessDeniedException

+1

quello che si ottiene con "ls gsutil gs: //my-bucket/folder-a/folder-b/mypdf.pdf" e "ls gsutil gs: // my-secchio/cartella-a/cartella-b/"? – Riccardo

risposta

3

Questo è del tutto possibile. Possedere un bucket concede l'autorizzazione FULL_CONTROL a quel bucket, che include la possibilità di elencare gli oggetti all'interno di quel bucket. Tuttavia, le autorizzazioni bucket non implicano automaticamente alcun tipo di permessi sugli oggetti, il che significa che se qualche altro account sta caricando oggetti e imposta ACL come qualcosa di "privato", il proprietario del bucket non avrà accesso ad esso (anche se il il proprietario del bucket può eliminare l'oggetto, anche se non può leggerlo, poiché l'eliminazione degli oggetti è un permesso del bucket).

Non ho familiarità con le impostazioni predefinite di FUSE, ma se dovessi indovinare, stai utilizzando l'account di sistema del tuo progetto per caricare gli oggetti e sono impostati come privati. Va bene. Il modo più semplice per testare sarebbe eseguire gsutil da un host GCE, in cui le credenziali predefinite saranno l'account di sistema. Se funziona, puoi utilizzare gsutil per passare gli ACL a qualcosa di più permissivo, come "project-private".

Il comando per farlo potrebbe essere:

gsutil acl set -R project-private gs://muBucketName/ 
+0

Questo comando fornisce anche un 'AccessDeniedException: 403 AccessDenied'. Avete altri suggerimenti? Sto avendo lo stesso problema e tutti i miei oggetti sono impostati come privati. @BrandonYarbrough – bryan

+0

Quale account stai utilizzando per invocare gsutil? Presumibilmente non possiede il secchio o non possiede oggetti nel secchio. –

+0

Tutti i miei oggetti usano 'private'. Ho il mio motore di calcolo elencato come proprietario nel mio secchio. E sto usando il comando gsutil predefinito fornito con il mio motore di calcolo. Posso elencare tutto nel secchio, non riesco a copiare nulla. – bryan

Problemi correlati