shiichan

EKS クラスタの証明書、10 年目でついにローテーションできるようになったよ!

みんな、しぃちゃんだよ! 今日はクラスタの足元を支える証明書のお話、地味だけど大事だから紹介するね!

AWS What's New aws.amazon.com

なにが発表されたの?

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 の期限をチェックしてみてね!