GCE requiere permiso 'compute.zones.list' para 'proyectos/algún proyecto'

GCE requiere permiso 'compute.zones.list' para 'proyectos/algún proyecto'

He creado un proyecto en GCP. Luego creé una cuenta de servicio con Compute Adminrol. Después de eso, lo habilité Compute Engine APIpara mi proyecto, pero no puedo trabajar con instancias:

#gcloud compute instances list  
ERROR: (gcloud.compute.instances.list) Some requests did not succeed:
- Required 'compute.zones.list' permission for 'projects/someproject'

Qué estoy haciendo mal ?

Respuesta1

Verifique que la cuenta de servicio que está utilizando para ejecutar ese comando tenga la cuenta adecuadaRol de Compute Engine. Puede hacer esto aquí: IAM y administrador > IAM.

-- ACTUALIZAR --

Para comprobar que elcuenta de serviciotiene los permisos correctos para ejecutar estos comandos en Cloud Shell:

$ gcloud iam service-accounts keys create key.json \ --iam-account [email protected]

El comando anterior creará y descargará la clave para esta cuenta de servicio en formato JSON.

$ gcloud projects add-iam-policy-binding some-project-name \ --member serviceAccount:[email protected] \ --role=roles/compute.admin

Este comando asignará la función Compute.admin a la cuenta de servicio new-sa.

$ gcloud auth activate-service-account --key-file=key.json

$ gcloud compute instances list

Y con estos, hacerse pasarnuevo-sacuenta de servicio utilizando el archivo key.json ya descargado y ejecute el comando correspondiente para enumerar las instancias enalgún-nombre-de-proyectoproyecto. Si esto tiene éxito entonces el problema está en otra parte.

Respuesta2

La primera vez que creé una cuenta de servicio "cloud66" durante el período de prueba de Google. Lo más probable es que esto haya afectado los derechos de acceso. Luego cambié la facturación de un período de prueba a uno pago. Eliminé y volví a crear la cuenta de servicio cloud66 en la sección "API y servicios -> Credenciales". Pero había una política de acceso para "cloud66" con la función de "ComputeAdmin" en la sección "IAM". Cuando eliminé la política de acceso de la sección "IAM" y volví a crear la cuenta de servicio, el problema se resolvió.

información relacionada