前言
某位大神說,GKE使用 IAM的角色認證安全性不太夠,
所以希望未來都改用這種,workload Ideneity,
就開始了採坑之旅,是說這個坑沒想像中的深。
正文
查詢cluster是否有 workload Identity
gcloud container clusters describe yaboxxx-test -z asia-east1-b
建議最好直接加上地區,不然看錯誤訊息也是可以。
會說在某個地區找不到此cluster
修改cluster ,啟用 Workload Identity
gcloud container clusters update istio-test -z asia-east1-b \ --workload-pool=rd7-project.svc.id.goog
修改 node-pool
gcloud container node-pools update defaultpool -z asia-east1-b \ --cluster=istio-test \ --workload-metadata=GKE_METADATA
如果成功的話,會看到
GKE 中繼資料伺服器 : 已啟用
建立ns
kubectl create ns token-proxy
建立kubernetes 帳號
kubectl create serviceaccount -n token-proxy proxy-user
申請 Google service accout的 IAM 服務帳號,
然後綁定 kubernetes service account 與 Google service account 。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount: project.svc.id.goog[token-proxy/proxy-user]" \ token-proxy@rd7-project.iam.gserviceaccount.com
在 kubernet service account上面,增加註釋
kubectl annotate serviceaccount \ --namespace token-proxy proxy-user \ iam.gke.io/gcp-service-account=token-proxy@rd7-project.iam.gserviceaccount.com
ref.
使用 Workload Identity
0 意見:
張貼留言