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インスタンスを作成できることに注意してください。
何か案は?
この種の問題は、クラウドサービスロボットがプロジェクトエディターから削除された場合に発生する可能性があります。私の推測では、あなたの場合、これが問題です。
これは、「役割/エディター」バインディングからcloudservicesロボットが欠落しているSetIamPolicyを含むAPI呼び出しが原因で発生する可能性があります。 SetIamPolicyは単純なPUTであり、リクエストで提供されるポリシーでオーバーライドされます。以下のコマンドを使用して、プロジェクトのIAMポリシーのリストを この記事で説明 として取得できます。
gcloud projects get-iam-policy [project-id]
リストから、以下のサービスアカウントに編集権限があるかどうかを確認できます。
[id] @ cloudservices.gserviceaccount.com
問題を解決するには、 言及されたサービスアカウントを付与「編集者」権限を付与して、問題が解決するかどうかを確認します。
お役に立てれば。
私の場合、kubernetesクラスターを作成しようとしたときに、サービスアカウント/ IAMまたはその他のものを削除しましたが、まったく同じエラーメッセージがポップアップ表示されました。
サービスアカウントを再作成するようにGoogleに依頼したところ、サービスアカウントを再度有効にするだけでサービスアカウントとその権限を再作成できるとのことでした。したがって、私の場合、kubernetesを再び機能させるために次の2つのコマンドを実行しました。
gcloud services enable compute
gcloud services enable container
ここに彼らが私に与えたリンクがあります: https://issuetracker.google.com/64671745#comment2
わかったと思います。 GitHub からのアドバイスに従ってみました。私のアカウントに設定する必要がある権限([email protected]
と呼ばれる)は次のとおりです。
roles/compute.instanceAdmin roles/editor roles/iam.serviceAccountUser
最後の1つは重要であるように見えました。