Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Vault Secrets Operator と Dynamic Secrets で安全にシークレットを使おう / Vault Secrets Operator and Dynamic Secrets
Search
ののし
May 29, 2023
Technology
4
710
Vault Secrets Operator と Dynamic Secrets で安全にシークレットを使おう / Vault Secrets Operator and Dynamic Secrets
ののし
May 29, 2023
Tweet
Share
More Decks by ののし
See All by ののし
HashiCorp Ambassador が予想!Red Hat × HashiCorp の未来 / The Future of Red Hat and HashiCorp
nnstt1
1
70
Terraform を使った Front Door の小ネタ / Terraform for Front Door
nnstt1
0
56
つまずきから学ぶ Backstage の Golden Path 構築
nnstt1
1
650
Azure ユーザに捧げる Terraform Cloud 101 / Terraform Cloud 101 for Azure Users
nnstt1
0
410
AKS と HCP Vault の組み合わせでつまずいた話 / Stumbles with AKS and HCP Vault combination
nnstt1
1
66
Vault Secrets Operator と HCP Vault を使った AKS のシークレット管理 / AKS secret management using the Vault Secrets Operator and HCP Vault
nnstt1
0
66
OpenShift を身近に感じる Single Node OpenShift と OpenShift Local / Single Node OpenShift and OpenShift Local that makes OpenShift familiar
nnstt1
1
870
カンタンお手軽?!k8sから使えるラズパイ分散ストレージ / Raspberry Pi distributed storage from k8s
nnstt1
1
1.3k
Operator を導入してみよう ~MinIO Operator 編~ / Let's install Operator ~MinIO Operator~
nnstt1
0
980
Other Decks in Technology
See All in Technology
成長期に歩みを止めないための創業期の開発文化形成
mayah
6
420
OSSコミットしてZennの課題を解決した話
dyoshikawa1993
0
150
年間一億円削減した時系列データベースのアーキテクチャ改善~不確実性の高いプロジェクトへの挑戦~
lycorptech_jp
PRO
3
2.9k
ACRiルーム最新情報とAMD GPUサーバーのご紹介
anjn
0
150
Matterport を使ってクラスメソッド各拠点のバーチャルオフィスツアーを作成してみた
wakatsuki
0
160
コンテナ・K8s研修 - 後半 Kubernetes 基礎&ハンズオン【MIXI 24新卒技術研修】
mixi_engineers
PRO
1
120
AIエージェントを現場に導入する目線とは
masahiro_nishimi
1
1.5k
コンテナ・K8s研修 - 前半 コンテナ基礎・ハンズオン【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
170
DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern
urmot
4
390
Git 研修 Basic【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
310
Azure OpenAI Service Dev Day / LLMでできる!使える!生成AIエージェント
masahiro_nishimi
3
750
開発生産性をむしろ向上させる セキュリティパートナーの作り方 / Dev Productivity Con 2024
flatt_security
0
360
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
26
1.6k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
24
1.8k
What's in a price? How to price your products and services
michaelherold
239
11k
A better future with KSS
kneath
231
17k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
149
45k
BBQ
matthewcrist
82
9k
How To Stay Up To Date on Web Technology
chriscoyier
784
250k
The Illustrated Children's Guide to Kubernetes
chrisshort
39
47k
Automating Front-end Workflow
addyosmani
1362
200k
How to name files
jennybc
67
96k
Testing 201, or: Great Expectations
jmmastey
33
6.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
399
65k
Transcript
Vault Secrets Operator と Dynamic Secrets で 安全にシークレットを使おう Kubernetes Novice
Tokyo #25 LT 2023/5/29
Name Taichi Nonoshita Twitter ののし @nnstt1 Company 株式会社エーピーコミュニケーションズ Love 3人の息子たち
自己紹介 めざせ Azure 資格全冠! (あと13個)
Kubernetes シークレットの管理はむずかしい
Kubernetes シークレットの管理はむずかしい そもそも
シークレットの管理はむずかしい 管理者 開発者 依頼 DB ユーザ作成 認証情報 ユーザ 台帳 認証情報を記録
シークレットの管理はむずかしい 管理者 開発者 依頼 DB ユーザ作成 認証情報 ユーザ 台帳 認証情報を記録
記録ミス 棚卸 パスワード使いまわし 退職 使われているか 不明なユーザ
Dynamic Secrets
Dynamic Secrets とは • HashiCorp Vault の機能 • 各種データベースやクラウドプロバイダに一時ユーザを作成 •
有効期限 (TTL) が切れたら一時ユーザを削除 ログイン & リクエスト ユーザ作成 事前に Dynamic Secrets を設定 管理者 認証情報 DB ユーザ ユーザ削除
接続先データベースやユーザ作成時のクエリを設定 • データベースプラグインを選択 • ユーザ名とパスワードは動的に生成される シークレットエンジン 接続先データベース ユーザ作成時のクエリ(SQL Server の場合)
クライアントが Dynamic Secrets を使えるようにポリシーを設定 • Dynamic Secrets はシークレットエンジンの読み込み権限があれば利用可能 ポリシー ログイン
database シークレットエンジンの 参照を許可するポリシー ポリシーと紐づけ
Vault にログインして vault read database/creds/<Role 名> を実行 • リース情報が出力される ◦
ユーザ名 & パスワード ◦ 有効期間(ここでは 3 分) ◦ 更新の可否 クライアントから Dynamic Secrets を利用
Dynamic Secrets はとても便利 Kubernetes でも Dynamic Secrets を使いたい! • アプリケーション(コンテナ)側で
Vault を使うことは意識したくない • Kubernetes シークレット に Vault シークレットを反映してほしい ログイン & リクエスト ユーザ作成 認証情報 DB ユーザ
Vault Secrets Operator
• HashiCorp 公式の Vault シークレットを Kubernetes シークレットに 反映してくれる Operator •
現在 (2025/5/29) のバージョンは v0.1.0-beta • インストール方法などは Kubernetes Novice Tokyo #24 で @URyo_0213 さんが発表 された資料を参照ください。 え?なんで同じ Operator ネタなの? Vault Secrets Operator とは https://speakerdeck.com/ry/vault-secrets-operator-tutorial
• Vault 設定 ◦ Kubernetes 認証の有効化、ロール作成 ◦ シークレットエンジン (Dynamic Secrets)
パスワードください Vault Secrets Operator から Dynamic Secrets を使う Kubernetes 認証 このアカウント本物? Service Account TokenReview API https://kubernetes.io/docs/reference/kubernetes-api/authentication-resources/token-review-v1/
• カスタムリソース ◦ VaultConnection ▪ Vault の接続情報 ◦ VaultAuth ▪
Operator が Vault を使う際の認証情報 ◦ VaultDynamicSecret ▪ Vault シークレットを反映させる Kubernetes シークレット ▪ シークレットを使うアプリケーション Vault Secrets Operator から Dynamic Secrets を使う
カスタムリソースと Vault の関係 VaultConnection VaultAuth VaultDynamicSecret address vaultConnectionRef vaultAuthRef mount
role rolloutRestartTargets destination method mount kubernetes role serviceAccount Kubernetes Auth kubernetes Role dynamic-role Secrets Engines database Role readonly ※一部パラメータを省略
• VaultDynamicSecret を起点に Vault からシークレット反映 1. カスタムリソースをチェック 2. ServiceAccount Token
発行 3. Vault に Dynamic Secrets を要求 4. データベースにユーザ作成 5. リース情報を応答 6. Kubernetes シークレットを更新 7. アプリケーションをロールアウトして シークレット反映 Vault Secrets Operator の動作 VaultDynamicSecret Vault Secrets Operator ① ③ ④ ⑤ ② ⑥ ⑦ DB ユーザ 有効期限 2023/5/29 19:10:00
• VaultDynamicSecret があれば Dynamic Secrets の有効期限を延長 1. カスタムリソースをチェック 2. 有効期限を更新(延長)
Vault Secrets Operator の動作 VaultDynamicSecret Vault Secrets Operator ① ② DB ユーザ 有効期限 2023/5/29 19:20:00
• VaultDynamicSecret がなければ何もしない 1. カスタムリソースをチェック 2. Vault が DB からユーザを削除
3. Kubernetes シークレットを使ったDB アクセス不可 Vault Secrets Operator の動作 VaultDynamicSecret Vault Secrets Operator ① ② DB ユーザ 有効期限 2023/5/29 19:20:00 ③
まとめ • HashiCorp Vault はいいぞ • Dynamic Secrets はいいぞ •
Vault Secrets Operator はいいぞ