2016-03-10 8 views
10

Od VM w GCE, zrobiłem następujący403 "Wniosek miał wystarczających zakresy uwierzytelniania" podczas gcloud klastra pojemnika get-poświadczenia

gcloud auth activate-service-account --key-file <blah> 
# "blah" is a service account key file (JSON) I generated from the web interface 
gcloud config set project <project-name> 
gcloud config set compute/zone <zone-name> 
gcloud set container/cluster <cluster-name> 

Wtedy gdy próbowałem uruchomić

gcloud container clusters get-credentials <cluster-name> 

i nie powiodło się z komunikatem o błędzie:

Error message: "ERROR: (gcloud.container.clusters.get-credentials) ResponseError: code=403, message=Request had insufficient authentication scopes."

Maszyna wirtualna znajduje się w tej samej sieci co klaster GKE. Próbowałem tego samego, z tym samym plikiem kluczy kont serwisowych z komputera spoza GCE, z klastrem GKE w "domyślnej" sieci i udało się ...

Proszę doradzić.

Odpowiedz

19

Aby używać interfejsu API Google Kubernetes Engine z maszyny wirtualnej GCE, należy dodać zakres platformy chmury ("https://www.googleapis.com/auth/cloud-platform") do swojej maszyny wirtualnej po jej utworzeniu.

+0

jak to zrobić? – twoface88

+2

Jeśli używasz wiersza poleceń, możesz zrobić coś takiego, jak 'gcloud compute instances create NAME --scopes = https: // www.googleapis.com/auth/cloud-platform'. Jeśli korzystasz z konsoli chmury, podczas tworzenia maszyny wirtualnej wyszukaj sekcję "Dostęp do tożsamości i API" i wybierz "Zezwalaj na pełny dostęp do wszystkich interfejsów API Cloud". –

+0

@RobertBailey Thanx za instrukcje, naprawdę pomocne. Ale dlaczego potrzebujemy zapewnić pełny dostęp do wszystkich interfejsów API w chmurze? Każdy pomysł, który API wymieniony w konsoli w chmurze umożliwia działanie CloudKMS? –