Puncte:1

Permisiunile contului de serviciu GCP

drapel br

Începător GCP aici, sper că există un răspuns rapid care îmi lipsește.

Am un proiect cu o VM GCE care rulează în el. Aș dori să fac o copie de rezervă a unui set de date din când în când în stocarea obiectelor GCP. Planul meu este să rulez „gsutil rsync...” dintr-un job cron.

Am creat o găleată pe care să o folosesc. Nu am editat permisiunile, rolurile sau nimic din găleată.

Rulez „sudo su -” astfel încât să rulez ca root, așa cum mă aștept ca o lucrare cron, apoi tast

gsutil rsync -r -d <dir pentru backup> gs://<bucket>/

si primesc

AccessDeniedException: 403 Permisiune insuficientă

În această stare, am tastat „gcloud config list” și am primit

cont = <xyz>[email protected]

disable_usage_reporting = Adevărat

proiect = <id proiect>

Configurația dvs. activă este: [implicit]

Acesta este contul de serviciu implicit creat când am creat VM-ul. Nu am făcut nicio editare pe el.

În consolă, m-am dus la IAM->conturi de serviciu, faceți clic pe acest cont de serviciu, faceți clic pe fila permisiuni și văd că acest cont de serviciu este un Editor pe <id proiect>

În consolă, merg la Cloud Storage, Browse, dau clic pe bucket-ul meu, merg la fila de permisiuni și văd că rolul de Editor pe are rolurile „Storage Legacy Bucket Owner” și „Storage Legacy Object Owner” Privind acele roluri , mi se spune că primul este accesul de citire/scriere la compartimentele existente cu permisiuni de creare/lista/ștergere pentru obiecte. Al doilea îmi oferă acces de citire/scriere la obiectele existente.

Am verificat că găleata este, momentan, goală.

Ce trebuie să fac pentru a activa comanda mea gsutil să ruleze cu permisiuni suficiente?

Puncte:1
drapel cn

Cel mai probabil, problema dvs. este insuficienta Instanță VM Compute Engine Cloud API Access Scopes.

The gsutil rsync comanda necesită următoarele permisiuni:

  • depozitare.obiecte.crea
  • stocare.obiecte.stergere
  • lista.de.obiecte.depozitare
  • storage.objects.get # este necesar pentru copiile de tip bucket to bucket

Rolul roluri/editor nu are niciuna dintre aceste permisiuni.

Instanțele VM Google Cloud Compute Engine folosesc două metode pentru a autoriza:

  • Contul de serviciu implicit
  • Domenii de acces la API Cloud

Contul de serviciu trebuie să aibă un rol care să acorde permisiunile enumerate mai sus SAU identitatea contului de serviciu trebuie să aibă acces la compartiment și la conținutul acestuia. Google Cloud Storage acceptă două metode de autorizare diferite. De dragul simplității, vă recomand să adăugați un rol obligatoriu în contul de serviciu. Pentru cazul dvs. de utilizare gsutil rsync, recomand adăugarea rolului roles/storage.legacyBucketOwner.

Cu toate acestea, chiar dacă contul de serviciu are permisiunile necesare prin roluri, domeniile de acces API Compute Engine Cloud pot elimina acele permisiuni. Accesați Google Cloud Console, selectați instanța dvs. VM. Verificați ce domenii sunt activate. Ar trebui să activați „Stocare: complet” sau „Permiteți accesul complet la toate API-urile Cloud”. În caz contrar, contul de serviciu va fi limitat în permisiunile obținute pentru jetoanele de acces OAuth pe care le solicită gsutil pentru autorizare.

Instanță VM Compute Engine Cloud API Domenii de acces

Stephen Daniel avatar
drapel br
Funcționează acum! Rolul de editor avea toate permisiunile necesare, dar API-ul nu a fost activat în VM. Am oprit VM-ul, l-am editat pentru a permite toate API-urile, am repornit și totul a funcționat.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.