web-dev-qa-db-ja.com

Google Compute Engine:必要な「compute.zones.get」権限エラー

Google Cloud PlatformでKubernetesクラスターを作成しようとしていますが、Webアプリからクラスターを作成しようとすると、次のエラーが表示されます。

Compute Engineで不明なエラーが発生しました:「外部:Google Compute Engine:「projects/my-project-198766/zones/us-west1-a」に必要な「compute.zones.get」権限が必要です。」エラーコード:「18」

Gcloudを使用すると、次の応答を受け取ります。

(gcloud.container.clusters.create)ResponseError:code = 403、message = Google Compute Engine: 'projects/my-project-198766/zones/us-west1-a'に必要な 'compute.zones.get'権限

私にはオーナーの役割があり、問題なくVMインスタンスを作成できることに注意してください。

何か案は?

7
TheoK

この種の問題は、クラウドサービスロボットがプロジェクトエディターから削除された場合に発生する可能性があります。私の推測では、あなたの場合、これが問題です。

これは、「役割/エディター」バインディングからcloudservicesロボットが欠落しているSetIamPolicyを含むAPI呼び出しが原因で発生する可能性があります。 SetIamPolicyは単純なPUTであり、リクエストで提供されるポリシーでオーバーライドされます。以下のコマンドを使用して、プロジェクトのIAMポリシーのリストを この記事で説明 として取得できます。

gcloud projects get-iam-policy [project-id]

リストから、以下のサービスアカウントに編集権限があるかどうかを確認できます。

[id] @ cloudservices.gserviceaccount.com

問題を解決するには、 言及されたサービスアカウントを付与「編集者」権限を付与して、問題が解決するかどうかを確認します。

お役に立てれば。

3
Taher

私の場合、kubernetesクラスターを作成しようとしたときに、サービスアカウント/ IAMまたはその他のものを削除しましたが、まったく同じエラーメッセージがポップアップ表示されました。

サービスアカウントを再作成するようにGoogleに依頼したところ、サービスアカウントを再度有効にするだけでサービスアカウントとその権限を再作成できるとのことでした。したがって、私の場合、kubernetesを再び機能させるために次の2つのコマンドを実行しました。

gcloud services enable compute
gcloud services enable container

ここに彼らが私に与えたリンクがあります: https://issuetracker.google.com/64671745#comment2

5

わかったと思います。 GitHub からのアドバイスに従ってみました。私のアカウントに設定する必要がある権限([email protected]と呼ばれる)は次のとおりです。

roles/compute.instanceAdmin roles/editor roles/iam.serviceAccountUser

最後の1つは重要であるように見えました。

1