2016-07-31 20 views
0

Ich möchte einen Dataproc-Cluster erstellen, der unter einem nicht standardmäßigen Dienstkonto ausgeführt wird. Die folgenden Arbeiten für eine Serverinstanz:Verwenden eines nicht standardmäßigen Dienstkontos in Google Cloud dataproc

gcloud compute instances create instance-1 --machine-type "n1-standard-1" --zone "europe-west1-b" --scopes [email protected]="https://www.googleapis.com/auth/cloud-platform" 

Aber das gleiche --scopes Argument schlägt fehl, wenn eine Dataproc Instanz:

gcloud dataproc clusters create --zone "europe-west1-b" --scopes [email protected]="https://www.googleapis.com/auth/cloud-platform" testdataproc12345 

ERROR: (gcloud.dataproc.clusters.create) Invalid service account scope: '[email protected]= https://www.googleapis.com/auth/cloud-platform '

Ist es möglich, unter einem Nicht-Standard-Dienstkonto ausgeführt Dataproc ?

Antwort

1

Leider gibt es im Moment keine Möglichkeit, Ihre benutzerdefinierten Dienstkonten mit den normalen Authentifizierungseinstellungen für "Bereiche und Metadaten" zu spezifizieren. Dies ist jedoch eine bekannte Featureanforderung, daher sollte sie in einem zukünftigen Dataproc-Update verfügbar sein.

In der Zwischenzeit können Sie, obwohl Sie den Bereich "Speicher lesen/schreiben" mit dem Standard-GCE-Dienstkonto bei der Verwendung von Dataproc nicht deaktivieren können, die Hadoop-Seite über Schlüsseldateien mit einem bestimmten Dienstkonto verwenden mit den „Create Keys“ Option unter der IAM & Admin > Service accounts Seite eine JSON keyfile für Ihr Dienstkonto zu erhalten, und zwei Dinge tut dann:

  1. Fügen Sie die folgende Eigenschaft bei Cluster-Erstellungszeit:

    --properties core:fs.gs.auth.service.account.json.keyfile=/etc/hadoop/conf/my-service-account.json 
    
  2. Verwenden Sie eine Init-Aktion, die Ihre JSON-Schlüsseldatei auf Ihre Knoten kopiert. Beachten Sie, dass dies bedeutet, dass Ihre JSON-Schlüsseldatei für das GCE-Standarddienstkonto als Leser verfügbar sein muss und dass jeder, der Zugriff auf den GCS-Standort Ihrer JSON-Schlüsseldatei hat, jetzt auch im Namen dieses Dienstkontos handeln kann müssen Sie Ihr Projekt weiterhin so sicher wie nötig halten. gelten

    #!/bin/bash 
    # Save this somewhere as gs://somepath/my-keyfile-setup.sh 
    
    gsutil cp gs://path/to/your/json/file/in/gcs/my=service-account.json \ 
        /etc/hadoop/conf/my-service-account.json 
    

    Und dann die init Aktion:

    gcloud dataproc clusters create --initialization-actions gs://somepath/my-keyfile-setup.sh ...