2014-12-31 16 views
9

Próbowałem uzyskać dostęp do plików w wiadrze i nadal otrzymuję odmowę dostępu do plików. Widzę je w konsoli GCS, ale mam do nich dostęp i nie mam do nich dostępu poprzez gsutil, uruchamiając poniższe polecenie.AccessDeniedException: 403 Zabrania się na GCS przy użyciu konta właściciela

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

Ale wszystko to zwraca się AccessDeniedException: 403 Forbidden

mogę wymienić wszystkie pliki i takie, ale nie faktycznie do nich dostęp. Próbowałem dodać mojego użytkownika do acl, ale to wciąż nie miało wpływu. Wszystkie pliki zostały przesłane z maszyny wirtualnej poprzez mocowanie bezpiecznika, które działało idealnie i po prostu straciło cały dostęp.

Sprawdziłem te posty ale nikt wydaje się mieć ów rozwiązanie pomogło mi

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

czego można się dostać z "gsutil ls gs: //my-bucket/folder-a/folder-b/mypdf.pdf" i „gsutil ls gs: // my-bucket/folder-a/folder-b/"? – Riccardo

Odpowiedz

3

Jest to całkiem możliwe. Posiadanie wiadra nadaje uprawnienie FULL_CONTROL do tego zasobnika, co obejmuje możliwość wyświetlania obiektów w tym zasobniku. Jednak uprawnienia wiadra nie oznaczają automatycznie żadnych uprawnień obiektu, co oznacza, że ​​jeśli inne konto ładuje obiekty i ustawia listy ACL jako coś "prywatnego", właściciel zasobu nie będzie miał do niego dostępu (chociaż właściciel zasobu może usunąć obiekt, nawet jeśli nie może go odczytać, ponieważ usuwanie obiektów jest uprawnieniem do wiadra).

Nie jestem zaznajomiony z domyślnymi ustawieniami FUSE, ale jeśli musiałbym zgadywać, używasz konta systemowego swojego projektu, aby przesłać obiekty i są one ustawione jako prywatne. W porządku. Najprostszym sposobem sprawdzenia, czy jest uruchomienie gsutil z hosta GCE, gdzie domyślnymi poświadczeniami będzie konto systemowe. Jeśli to działa, możesz użyć gsutil, aby przełączyć ACL na coś bardziej permisywnego, na przykład "project-private".

Polecenie to zrobić byłoby:

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

To polecenie daje także 'AccessDeniedException: 403 AccessDenied'. Czy masz jakieś inne sugestie? Mam ten sam problem i wszystkie moje obiekty są ustawione jako prywatne. @BrandonYarbrough – bryan

+0

Jakiego konta używasz do wywołania gsutil? Prawdopodobnie nie jest właścicielem wiadra lub nie posiada jakiegoś obiektu w wiadrze. –

+0

Wszystkie moje obiekty używają 'private'. Mój silnik obliczeniowy jest wymieniony jako właściciel w moim wiadrze. Używam domyślnej komendy gsutil dostarczonej z moim silnikiem obliczeniowym. Mogę wymienić wszystko w wiadrze, po prostu nie mogę niczego skopiować. – bryan