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

このコマンドは、compute.admin ロールを new-sa サービス アカウントに割り当てます。

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

$ gcloud compute instances list

そしてこれらを使ってニューサすでにダウンロードしたkey.jsonファイルを使用してサービスアカウントを作成し、対応するコマンドを実行してインスタンスを一覧表示します。プロジェクト名プロジェクト。これが成功した場合、問題は別の場所にあります。

答え2

初めて Google テスト期間にサービス アカウント「cloud66」を作成しました。おそらく、これがアクセス権に影響を与えたのでしょう。その後、課金をテスト期間から有料に切り替えました。「API とサービス -> 認証情報」セクションで cloud66 サービス アカウントを削除して再作成しました。しかし、「IAM」セクションに「ComputeAdmin」のロールを持つ「cloud66」のアクセス ポリシーがありました。「IAM」セクションからアクセス ポリシーを削除してサービス アカウントを再作成すると、問題は解決しました。

関連情報