Open1

GKE Workload Identityのtokenを使って、他サービスも認証させてみる

ei-showei-show

OIDCなどで使われているJWTを用いることで、他サービスも利用できるよねってお話。
GKEを良く使うことがあるので、GKEからAWSリソースへのアクセスを実現できると嬉しい。

https://cloud.google.com/blog/ja/products/containers-kubernetes/kubernetes-bound-service-account-tokens

GSAもBindingできるため、永続なキーを発行しなくて良いところが安心安全なのです。

/var/run/secrets/kubernetes.io/serviceaccount/token

例えば、aws sts assume-role-with-web-identityを使うことでAWSのIAM Userから永続なアクセスキーを発行する必要がなくなります。(たぶん・・・)

SESSION_NAME=gke-cluster-pod
ID_TOKEN=/var/run/secrets/kubernetes.io/serviceaccount/token

aws sts assume-role-with-web-identity \
      --role-arn "$AWS_ROLE_ARN" \
      --role-session-name "$SESSION_NAME" \
      --web-identity-token "$ID_TOKEN"