サービスアカウント
Podが、KubernetesのAPIや外部システムに対して認証を受けるためのIDのこと。人間向けのユーザーアカウントとは別物。各名前空間にはdefaultがあるが、ワークロードごとに専用のサービスアカウントを作り、RBACを最小限にするのがベストプラクティスだ。
トークンはprojected volumeとして/var/run/secrets/kubernetes.io/serviceaccount/にマウントされる。v1.22以降は有効期限付きのバウンドトークンが使われ、短命で自動的にローテーションされる。それ以前はSecretオブジェクトに期限のないJWTが入っており、Secretが漏れれば即セキュリティホールになった。
AWSのIRSA(IAM Roles for Service Accounts)は、サービスアカウントのトークンをOIDC経由でIAMロールの引き受けに使う仕組みで、Google CloudやAzureにも同様のWorkload Identity Federationがある。Pod内に長期的なクラウド認証情報を置かずに済み、Kubernetesで「最小権限」を実現する標準的なパターンになっている。