このページでは、Google Kubernetes Engine(GKE)サービス アカウントに関する問題のトラブルシューティングを行う方法について説明します。
Google Cloud プロジェクトにデフォルトのサービス アカウントを復元する
GKE のデフォルトのサービス アカウント、container-engine-robot
が、プロジェクトから誤ってバインド解除されることがあります。Kubernetes Engine サービス エージェント ロール(roles/container.serviceAgent
)は、クラスタ リソースを管理する権限をサービス アカウントに付与する Identity and Access Management(IAM)ロールです。このロール バインディングをサービス アカウントから削除すると、デフォルト サービス アカウントはプロジェクトからバインド解除され、アプリケーションのデプロイや他のクラスタ操作の実行をユーザーができなくなる可能性があります。
サービス アカウントがプロジェクトから削除されているかどうかを確認するには、Google Cloud コンソールまたは Google Cloud CLI を使用します。
コンソール
Google Cloud コンソールで、[IAM と管理] ページに移動します。
gcloud
次のコマンドを実行します。
gcloud projects get-iam-policy PROJECT_ID
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。
ダッシュボードまたはコマンドで、サービス アカウントの中に container-engine-robot
が表示されない場合、ロールはバインドされていません。
Kubernetes Engine サービス エージェントのロール(roles/container.serviceAgent
)バインディングを復元するには、次のコマンドを実行します。
PROJECT_NUMBER=$(gcloud projects describe "PROJECT_ID" \
--format 'get(projectNumber)') \
gcloud projects add-iam-policy-binding PROJECT_ID \
--member "serviceAccount:service-${PROJECT_NUMBER?}@container-engine-robot.iam.gserviceaccount.com" \
--role roles/container.serviceAgent
ロール バインディングが復元されたことを確認します。
gcloud projects get-iam-policy $PROJECT_ID
サービス アカウント名と container.serviceAgent
ロールが表示されている場合、ロール バインディングが復元されています。例:
- members:
- serviceAccount:service-1234567890@container-engine-robot.iam.gserviceaccount.com
role: roles/container.serviceAgent
Compute Engine のデフォルトのサービス アカウントを有効にする
ノードプールに使用されるサービス アカウントは通常、Compute Engine のデフォルトのサービス アカウントです。このデフォルトのサービス アカウントが無効になっていると、ノードがクラスタに登録できないことがあります。
プロジェクトでサービス アカウントが無効になっているかどうかを確認するには、Google Cloud コンソールまたは gcloud CLI を使用します。
コンソール
Google Cloud コンソールで、[IAM と管理] ページに移動します。
gcloud
- 次のコマンドを実行します。
gcloud iam service-accounts list --filter="NAME~'compute' AND disabled=true"
サービス アカウントが無効になっている場合は、次のコマンドを実行してサービス アカウントを有効にします。
gcloud iam service-accounts enable PROJECT_ID-compute@developer.gserviceaccount.com
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。
詳細については、ノードの登録に関するトラブルシューティングをご覧ください。
エラー 400/403: Missing edit permissions on account
サービス アカウントが削除されている場合は、編集権限がないことを示すエラーが表示されることがあります。このエラーのトラブルシューティング方法については、エラー 400/403: アカウントに対する編集権限がないをご覧ください。
次のステップ
さらにサポートが必要な場合は、Cloud カスタマーケアにお問い合わせください。