GCE에는 'projects/someproject'에 대한 'compute.zones.list' 권한이 필요합니다.

GCE에는 'projects/someproject'에 대한 'compute.zones.list' 권한이 필요합니다.

GCP에서 프로젝트를 만들었습니다. 그런 다음 역할이 있는 서비스 계정을 만들었습니다 Compute Admin. 그 후 Compute Engine API프로젝트를 활성화했지만 인스턴스를 사용할 수 없습니다.

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

내가 도대체 ​​뭘 잘못하고있는 겁니까 ?

답변1

해당 명령을 실행하는 데 사용하는 서비스 계정에 적절한 권한이 있는지 확인하세요.Compute Engine 역할. IAM 및 관리자 > IAM에서 이를 수행할 수 있습니다.

-- 업데이트 --

확인하기 위해서비스 계정올바른 권한이 있으면 Cloud Shell에서 다음 명령어를 실행하세요.

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

위 명령어는 이 서비스 계정의 키를 JSON 형식으로 생성하고 다운로드합니다.

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

이 명령은 new-sa 서비스 계정에 Compute.admin 역할을 할당합니다.

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

$ gcloud compute instances list

그리고 이것으로 가장새로운 사이미 다운로드한 key.json 파일을 사용하여 서비스 계정을 만들고 해당 명령을 실행하여 인스턴스를 나열합니다.일부 프로젝트 이름프로젝트. 이것이 성공하면 문제는 다른 곳에 있는 것입니다.

답변2

구글 테스트 기간에 처음으로 "cloud66" 서비스 계정을 만들었습니다. 아마도 이는 액세스 권한에 영향을 미쳤을 것입니다. 그런 다음 결제 기간을 테스트 기간에서 유료 기간으로 전환했습니다. "API 및 서비스 -> 자격 증명" 섹션에서 cloud66 서비스 계정을 삭제하고 다시 만들었습니다. 그런데 "IAM" 섹션에 "ComputeAdmin" 역할을 가진 "cloud66"에 대한 액세스 정책이 있었습니다. 'IAM' 섹션에서 액세스 정책을 삭제하고 서비스 계정을 다시 생성하니 문제가 해결되었습니다.

관련 정보