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

檢查用於執行該命令的服務帳戶是否具有正確的權限計算引擎角色。您可以在此處執行此操作: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」部分刪除存取原則並重新建立服務帳戶時,問題就會解決。

相關內容