Upgrade to Pro — share decks privately, control downloads, hide ads and more …

EKSシークレット管理のつらみと責務分解

Avatar for j-maki j-maki
March 26, 2026
75

 EKSシークレット管理のつらみと責務分解

Avatar for j-maki

j-maki

March 26, 2026

Transcript

  1. 前提 - EKSとシークレット ECS の場合 → タスク定義で Secrets Manager を直接参照できる

    EKS の場合 → Secrets Manager の値をクラスター内に直接持ち込めない → 何かしらの仕組みが必要 5
  2. Before - Terraformで一元管理していたが… 構成 Secrets Manager のリソース定義から EKS上のSecretまで すべてTerraformモジュ ールで一律生成

    運用のつらみ 初回はダミー値を投入 → アプリチームが本物の値を発行して再度PE側で terraform apply シークレットの追加・変更のたびに PEへの依頼が必要 アプリチームが自律的にシークレットを管理できない → PEがボトルネックになっていた 6
  3. なぜESOか - EKSシークレット同期方式の比較 CSI Driver (ASCP) ESO 提供元 AWS公式 OSS

    (CNCF) 仕組み Pod起動時にボリュームマウント Podと独立して定期同期 K8s Secret生成 オプション(追加設定要) ネイティブに生成 CSI Driver は Podのライフサイクルに密結合 → PE/アプリ間の分業が難しい印象 ESO は K8s Secretを生成するだけのシンプルな仕組み → 今回の責務分解の目的に合いそうなESOを選定 8
  4. Secrets Manager の責務分解 リソース定義(箱)は常にPE。値の管理者はシークレットの性質で変わる。 対象 リソース定義(箱) 値 PE作成(DB, NewRelic等) PE

    PE アプリ固有(外部サービスのAPIキー等) PE アプリ 判断軸:「その値を知っているのは誰か」 PEが作成するもの → PEがTerraformで管理 アプリ固有の秘匿情報 → アプリチームがAWSコンソールから変更 11