Criei um projeto no GCP. Então criei uma conta de serviço com Compute Admin
função. Depois disso, habilitei Compute Engine API
meu projeto, mas não consigo trabalhar com instâncias:
#gcloud compute instances list
ERROR: (gcloud.compute.instances.list) Some requests did not succeed:
- Required 'compute.zones.list' permission for 'projects/someproject'
O que estou fazendo de errado ?
Responder1
Verifique se a conta de serviço que você está usando para executar esse comando tem a conta adequadaFunção do Compute Engine. Você pode fazer isso aqui: IAM e administrador > IAM.
-- ATUALIZAR --
Para verificar se oconta de serviçotem as permissões corretas para executar estes comandos no Cloud Shell:
$ gcloud iam service-accounts keys create key.json \ --iam-account [email protected]
O comando acima criará e baixará a chave para esta conta de serviço em formato JSON.
$ gcloud projects add-iam-policy-binding some-project-name \ --member serviceAccount:[email protected] \ --role=roles/compute.admin
Este comando atribuirá a função computacional.admin à conta de serviço new-sa.
$ gcloud auth activate-service-account --key-file=key.json
$ gcloud compute instances list
E com estes, personifiquenovo-saconta de serviço usando o arquivo key.json já baixado e execute o comando correspondente para listar as instâncias emalgum nome de projetoprojeto. Se isso for bem-sucedido, o problema estará em outro lugar.
Responder2
A primeira vez que criei uma conta de serviço “cloud66” no período de teste do Google. Muito provavelmente, isso afetou os direitos de acesso. Então mudei o faturamento de um período de teste para um pago. Excluí e recriei a conta de serviço cloud66 na seção "APIs e serviços -> Credenciais". Mas havia uma política de acesso para “cloud66” com a função de “ComputeAdmin” na seção “IAM”. Quando excluí a política de acesso da seção "IAM" e recriei a conta de serviço, o problema foi resolvido.