Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

gcloud - no permissions for any API even though I am owner and works fine through web UI

I am the owner of my newly created organization, I created a project under this organization and linked it to the organization billing account where I have 1000$ in credits. Through the web UI, I am able to spin up clusters, VMs, networks... But when I want to do so through gcloud, I am getting permissions denied. E.g.:

$ 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

but I can see in the web UI GCP that the API is clearly enabled (and can be used), it's just the gcloud not letting me work with them. The account under gcloud is exactly the same I am using in the web console - validated by gcloud auth list and:

$ 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>

or

$ 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

It works totally fine with a different account (and different organization/projects), but I didn't set up that one in the past. What should I do? Thanks a lot!

UPDATE: After gcloud init, at least the gcloud services list started to work. But the rest did not:

$ 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

^ the PROJECT_ID above shows my organization's ID, not the actual project under this org.

like image 606
kotrfa Avatar asked Dec 14 '22 13:12

kotrfa


1 Answers

So the problem was that I used the wrong project_id when gcloud config set project and gcloud defaulted to organization for some reason.

So I had to find correct project id using gcloud projects list and then use gcloud config set project {PROJECT-ID} (not the project name!)

like image 75
kotrfa Avatar answered May 19 '23 11:05

kotrfa