我已經在 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
檢查用於執行該命令的服務帳戶是否具有正確的權限計算引擎角色。您可以在此處執行此操作: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
此指令會將compute.admin角色指派給new-sa服務帳號。
$ gcloud auth activate-service-account --key-file=key.json
$ gcloud compute instances list
並用這些來模仿新南澳服務帳戶使用已下載的 key.json 檔案並執行相應的命令以列出其中的實例某些項目名稱專案.如果成功,則問題出在其他地方。
答案2
我第一次建立服務帳戶「cloud66」是在Google測試期間。這很可能會影響存取權限。然後我將計費方式從測試期切換為付費期。我在「API 和服務 -> 憑證」部分中刪除並重新建立了 cloud66 服務帳戶。但在「IAM」部分中有一個針對「cloud66」的存取策略,其角色為「ComputeAdmin」。當我從「IAM」部分刪除存取原則並重新建立服務帳戶時,問題就會解決。