Closed sinmetal closed 5 years ago
そういえば GKE でのデフォルトサービスアカウントの scope の変更自体が非推奨になっていますね。 https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform?hl=en#why_use_service_accounts
Updating the default service account’s permissions or assigning more access scopes to compute instances is not the recommended way to authenticate to other Cloud Platform services from Pods running on GKE.
GCE でもスコープの設定はレガシーと書かれるようになった。 https://cloud.google.com/compute/docs/access/service-accounts?hl=en#accesscopesiam
Access scopes are the legacy method of specifying permissions for your instance.
薄々思ってたけど、やはりそういう時代になったか!
WHAT
GKE 1.10から、GCP Scopeの指定の方法が変更される。 元々はCluster作成時に指定し、全てのNodePoolが同じ設定になるようになっていた。 GKE1.10からは、NodePool追加時にGCP Scopeを指定できるようになった。 それに伴いDefaultのScopeが変わっている。 Scopeの指定がない場合、以下のようなScopeが設定される。![image](https://user-images.githubusercontent.com/446022/46279886-5750f800-c5a5-11e8-8d8a-5144b403061e.png)
Cloud Consoleには2018/10/01時点では、NodePool追加時にGCP Scopeを設定する機能が無いため、必ず上記の
gke-default
になってしまう。 指定したい場合は、gcloud container node-pools create
でNodePoolを作成してやる必要がある。以下はCommandのExamplehttps://cloud.google.com/sdk/gcloud/reference/container/node-pools/create
WHY
GKEでDefault Service Account使っていて、GCP Scopeを指定してる人が苦しまないように書いたTips しんめたるはテスト環境で雑にFull Scope指定してCluster作ってたので、新しいNodePoolをCloud Consoleから追加したら、全部Permission Deniedになって、苦しんだ。