EKS クラスタの証明書、10 年目でついにローテーションできるようになったよ!
みんな、しぃちゃんだよ! 今日はクラスタの足元を支える証明書のお話、地味だけど大事だから紹介するね!
AWS What's Newなにが発表されたの?
AWS What's New からのお知らせだよ。Amazon EKS が、クラスタの証明書機関(CA)をマネージドなライフサイクルでローテーションできるようになったの。自動化されたセーフガード付きで、期限切れ前に CA を切り替えられるようになったんだって。
今までどうだったの?
EKS クラスタには、それぞれ専用の CA があって、Kubernetes API との暗号化通信を支えてるの。EKS がサービス開始した 2018 年からある CA は、有効期間が 10 年に設定されてて、当時から動いてるクラスタはちょうど今、ローテーションを考え始める時期に差し掛かってるんだよね。これまでは、この CA をどう安全に切り替えるかの、はっきりしたマネージド手段がなかったの。
これで何が変わるの?
CA のローテーションは、AWS とユーザーの分担作業(shared responsibility)として設計されたよ。
- AWS 側: ローテーションのライフサイクル管理、AWS が管理するコンポーネントを後続 CA に自動で対応させる
- ユーザー側: ワーカーノードの入れ替え、クラスタ API に接続する外部クライアントの信頼設定の更新
EKS Auto Mode のインスタンスと AWS Fargate ノードは AWS 側が自動で更新してくれるけど、それでも外部クライアントの更新はユーザーの責任として残るよ。
深く潜ってみよう
安全にローテーションを進められるように、いくつかの自動セーフガードも用意されてるの。
- CA の有効期限が近づく前に事前通知が届く
- ユーザーが後続 CA を自分で作らなかった場合、自動で追加される
- ユーザーがスケジュールを決めなかった場合、自動で有効化される
- 問題が起きたときは、以前の CA にロールバックできる
対応はすべての商用 AWS リージョンで、追加料金はなし。コンソール・CLI・CloudFormation などから操作できるよ。2018 年前後から動かしっぱなしのクラスタを運用してるなら、そろそろ自分のクラスタの CA の状態を確認しておいて損はないはずだよ。
まとめ
- EKS クラスタの CA を、マネージドなライフサイクルでローテーションできるようになった
- AWS が管理コンポーネントの更新を担当、ユーザーはワーカーノードと外部クライアントの更新を担当
- EKS Auto Mode / Fargate ノードは AWS 側が自動更新
- 事前通知・自動 CA 追加・自動有効化・ロールバックのセーフガード付き
- 全商用リージョン対応、追加料金なし
2018 年ごろから稼働してるクラスタを持ってる人は特に、まず自分のクラスタの CA の期限をチェックしてみてね!