2016-04-29 6 views
0

Ich möchte wissen, wie ein Computer Daten auf Google Storage kopieren kann.Richtiger Weg zur Verwendung von Google Storage auf einer GCE-VM

Ich brauche eine Maschine, um in einen Bucket schreiben zu können, aber nicht in der Lage, andere Buckets zu erstellen oder zu löschen.

Bei der Recherche habe ich festgestellt, dass Sie einen Konto-Service erstellen sollten, damit sich dieses Konto bei GC anmelden und den Speicher dann verwenden kann.

Aber das Problem ist, wenn die Maschine von GCE ist, gibt es Bereiche. Wenn Sie den Bereich "Standard" einrichten, kann er von Google Storage lesen, kann aber nicht darauf schreiben. Auch nach der Authentifizierung mit einem Dienstkonto. Wenn der Bereich Devstorage.read_write lautet, kann der Rechner Buckets aus diesem Speicher erstellen und entfernen, ohne sich einzuloggen. Ich finde das zu riskieren.

Hat jemand irgendwelche Empfehlungen?

Dank

Antwort

0

Das hier Kernproblem ist, dass die „Schreiben“ Geltungsbereich umfasst sowohl Schreib- als auch löschen, und dass das GCE-Dienstkonto ist wahrscheinlich ein Mitglied der Projekt-Editoren, die Eimer erstellen und löscht. Es klingt wie das, was Sie tun möchten, ein Dienstkonto einzuschränken, nur um einen einzelnen Bucket zu beeinflussen. Sie sollten dies mit diesen Schritten tun können:

  1. Erstellen Sie ein Dienstkonto in Ihrem Projekt (und speichern Sie die Datei mit dem privaten Schlüssel).
  2. Stellen Sie auf der Seite Berechtigungen für das Projekt sicher, dass das Dienstkonto kein Projekteditor für Ihr Projekt ist.
  3. Erstellen Sie mithilfe eines Kontos, das über vollständige Berechtigungen für Ihr Projekt verfügt, den Bucket, und gewähren Sie dem Dienstkonto Schreibzugriff auf den Bucket. Beispiel gsutil befiehlt, dies zu tun:

    gsutil mb gs://yourbucket

    gsutil acl ch -u [email protected]:W gs://yourbucket

  4. eine VM erstellen, das tut nicht aktiviert ein GCE-Dienstkonto haben.

  5. Übertragen Sie die private Schlüsseldatei des Dienstkontos an diese VM.

  6. Auf der VM, gcloud auth activate-service-account --key-file=your-key-file.json

Jetzt laufen gsutil Befehle auf der VM sollte schreiben können (und löschen) Objekte in diesem Eimer, aber keine andere Eimer in Ihrem Projekt.

+0

Danke, für die Info, aber wenn ich dies tue, verliere ich Lesezugriff auf Storage und Cloud Benutzerkonten, Schreibzugriff auf Cloud Logging und Überwachung. Ansonsten kein API-Zugriff. Dies sind Standard-API-Zugriffe von einem Dienstkonto. Wir sehen, was der beste Weg ist zu gehen, müssen sehen, ob irgendwelche Entwickler eine der oben genannten Berechtigungen verwenden. –

+0

Wenn Sie das GCE VM-Dienstkonto für den Zugriff auf andere Dienste benötigen, können Sie einfach den [GoogleCompute] -Eintrag aus /etc/boto.cfg auf der VM entfernen, damit gsutil nicht nach dem GCE-VM-Dienstkonto sucht. Dann können Sie das GCE VM-Dienstkonto für den Zugriff auf andere Dienste und das Dienstkonto verwenden, das Sie über gsutil zum Schreiben in den Google Cloud Storage-Bucket erstellt haben. –