Closed2
[K8s] ServiceAccount Tokenは「Bound」されてどう変わる?手動で作ったものは期限切れになる?
本記事で書きたいこと
Kubernetes v1.22以降から有効化される「Bound Service Account Token」
何がどう変化するのかが分かりづらいので本スクラップで簡潔にまとめます。
結論
- Podで使用されるService Account TokenはK8s 1.22以降で「Bound」され、有効期限付きになる。(デフォルトは1時間) [1]
- 手動で作ったService Account Tokenは期限切れが起らないが[2]、K8s v1.29以降では使用されないものは徐々に「削除」される予定 [3]
Tokenが有効期限つきになる背景
以前のService Account (以降SA)[4]は有効期限が一切ありませんでした。仮に管理権限を持つ有効期限のないSA Tokenが漏洩した場合、非常に危険です。その観点から、2017年から期限付きのアイディアが生まれ、2021年、K8s 1.22から「Bound Service Account Token
」と言う機能がリリースされました。
参考にしたサイト
-
https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/#bound-service-account-token-volume ↩︎
-
You can still manually create a Secret to hold a service account token; for example, if you need a token that never expires. (参考)
-
https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/2799-reduction-of-secret-based-service-account-token ↩︎
-
一般的な概念で言い表すとユーザで、Tokenはパスワードに当たります。どちらもPod (Docker Containerの集合体)内のVolumeにMountされます(実際のファイルとして存在) ↩︎
このスクラップは2023/03/04にクローズされました