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

k8sのシークレット管理をちょっとだけ楽にした話

Avatar for muso muso
June 06, 2026

 k8sのシークレット管理をちょっとだけ楽にした話

Road to SRE NEXT 2026 @神戸の発表資料

Avatar for muso

muso

June 06, 2026

More Decks by muso

Other Decks in Technology

Transcript

  1. Secret のマニフェスト 中身はBase64 エンコードされているだけ apiVersion: v1 kind: Secret metadata: name:

    db-credentials type: Opaque data: username: YWRtaW4= # admin password: cGFzc3dvcmQxMjM= # password123
  2. 暗号化したSecret のマニフェスト apiVersion: v1 kind: Secret metadata: name: db-credentials type:

    Opaque data: username: ENC[AES256_GCM,data:k8vQ==,iv:9Hx...,tag:Lm2...,type:str] password: ENC[AES256_GCM,data:pZ3rT9w==,iv:Qa1...,tag:Rb7...,type:str] sops: kms: - arn: arn:aws:kms:ap-northeast-1:123456789012:key/xxxx-xxxx encrypted_regex: ^(data|stringData)$
  3. SOPS のつらみ ①:登録がめんどくさ い 1. パスワードを考える 2. 値ごとにBase64 へ変換する echo

    -n 'password123' | base64 3. Secret のマニフェストに手で書き込む 4. 暗号化する sops encrypt -i secret.sops.yaml
  4. ExternalSecret のマニフェスト(抜粋) spec: refreshInterval: "1m" secretStoreRef: name: openbao kind: SecretStore

    target: name: db-credentials data: - secretKey: password remoteRef: key: database/db-credentials property: password
  5. まとめ Before 登録が手間(Base64 化 → 手書き → 暗号化) 暗号化してもGit に機密情報が残る

    After :OpenBao で誰でも簡単に登録できる 登録の手間が減った(toil 削減) Git に機密情報が載らない(誤push の心配もなし) 対価として、Secret ストアの信頼性は自分たちで担保する