gcloud - нет разрешений для любого API, хотя я владелец и отлично работает через веб-интерфейс - PullRequest
0 голосов
/ 19 января 2019

Я владелец своей недавно созданной организации, я создал проект под этой организацией и связал его с платежным счетом организации, где у меня есть кредиты на 1000 $.Через веб-интерфейс я могу раскручивать кластеры, виртуальные машины, сети ... Но когда я хочу сделать это через gcloud, я получаю отказ в доступе.Например:

$ gcloud compute networks list
API [compute.googleapis.com] not enabled on project [XXX]. 
Would you like to enable and retry (this will take a few minutes)? 
(y/N)?  y

ERROR: (gcloud.compute.networks.create) PERMISSION_DENIED: The caller does not have permission

, но в веб-интерфейсе GCP я вижу, что API явно включен (и его можно использовать), просто gcloud не позволяет мне работать с ними.Учетная запись в gcloud точно такая же, которую я использую в веб-консоли - проверено gcloud auth list и:

$ gcloud config configurations describe myproject
is_active: true
name: myproject
properties:
  compute:
    region: europe-west1
    zone: europe-west1-b
  core:
    account: <my-email>
    project: <the-project-I-want>

или

$ gcloud services list
ERROR: (gcloud.services.list) User [<myusername>] does not have permission to access project [myproject] (or it may not exist): The caller does not have permission

. Она отлично работает с другой учетной записью.(и другая организация / проекты), но я не настраивал тот в прошлом.Что я должен делать?Большое спасибо!

ОБНОВЛЕНИЕ: После gcloud init, по крайней мере, gcloud services list начал работать.Но остальные не сделали:

$ gcloud services list
NAME                              TITLE
bigquery-json.googleapis.com      BigQuery API
cloudapis.googleapis.com          Google Cloud APIs
clouddebugger.googleapis.com      Stackdriver Debugger API
cloudtrace.googleapis.com         Stackdriver Trace API
compute.googleapis.com            Compute Engine API
container.googleapis.com          Kubernetes Engine API
containerregistry.googleapis.com  Container Registry API
datastore.googleapis.com          Cloud Datastore API
logging.googleapis.com            Stackdriver Logging API
monitoring.googleapis.com         Stackdriver Monitoring API
oslogin.googleapis.com            Cloud OS Login API
pubsub.googleapis.com             Cloud Pub/Sub API
servicemanagement.googleapis.com  Service Management API
serviceusage.googleapis.com       Service Usage API
sql-component.googleapis.com      Cloud SQL
storage-api.googleapis.com        Google Cloud Storage JSON API
storage-component.googleapis.com  Google Cloud Storage
$ gcloud compute networks create testing-net --subnet-mode=custom '--description=Network to host testing kubernetes cluster'

API [compute.googleapis.com] not enabled on project [{PROJECT_ID}]. 
Would you like to enable and retry (this will take a few minutes)? 
(y/N)?  y

ERROR: (gcloud.compute.networks.create) PERMISSION_DENIED: The caller does not have permission

^ PROJECT_ID выше показывает идентификатор моей организации, а не фактический проект под этой организацией.

1 Ответ

0 голосов
/ 19 января 2019

Таким образом, проблема заключалась в том, что я использовал неправильный project_id, когда gcloud config set project и gcloud по умолчанию почему-то перешел в организацию.

Поэтому мне пришлось найти правильный идентификатор проекта с помощью gcloud projects list, а затем использовать gcloud config set project {PROJECT-ID} ( не название проекта!)

...