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
620
Vault Secrets Operator と Dynamic Secrets で安全にシークレットを使おう / Vault Secrets Operator and Dynamic Secrets
ののし
May 29, 2023
Tweet
Share
More Decks by ののし
See All by ののし
つまずきから学ぶ Backstage の Golden Path 構築
nnstt1
1
58
Azure ユーザに捧げる Terraform Cloud 101 / Terraform Cloud 101 for Azure Users
nnstt1
0
300
AKS と HCP Vault の組み合わせでつまずいた話 / Stumbles with AKS and HCP Vault combination
nnstt1
1
55
Vault Secrets Operator と HCP Vault を使った AKS のシークレット管理 / AKS secret management using the Vault Secrets Operator and HCP Vault
nnstt1
0
29
OpenShift を身近に感じる Single Node OpenShift と OpenShift Local / Single Node OpenShift and OpenShift Local that makes OpenShift familiar
nnstt1
1
750
カンタンお手軽?!k8sから使えるラズパイ分散ストレージ / Raspberry Pi distributed storage from k8s
nnstt1
1
1.2k
Operator を導入してみよう ~MinIO Operator 編~ / Let's install Operator ~MinIO Operator~
nnstt1
0
900
Cephadm を使った Ceph クラスタ構築 / Build a Ceph cluster with Cephadm
nnstt1
2
4.1k
ExternalDNS を試してみた / Tried ExternalDNS
nnstt1
2
730
Other Decks in Technology
See All in Technology
生成AIサービスPanorama AIご説明資料
sdt
0
300
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
7
100k
業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7
ponkio_o
PRO
24
7.2k
BDD(Cucumber)コミュニティが無料提供しているコンテンツの紹介と現在起きている危機
nihonbuson
4
750
任意コード実行の原理
ffri
0
190
LLMプロダクト事業の立ち上げにおける挑戦
layerx
PRO
7
1.5k
どう買う?Azure
kuniteru
1
190
関数型DDDの理論と実践:「決定を遅らせる」を先につくり、 ビジネスの機動力と価値をあげる
knih
2
500
暗黙知を集積するプラットフォーム : 「健常者エミュレータ事例集」の取り組み
sora32127
1
170
技術広報として2023年度に頑張ったこと / What we did well in FY2023 as a DevRel
pauli
5
490
技術広報経験0のEMがエンジニアブランディングをはじめてみた
coconala_engineer
1
140
Terraform v1.7のTest mocking機能の紹介 / Introducing the Test mocking feature of Terraform v1.7
yayoi_dd
1
100
Featured
See All Featured
Teambox: Starting and Learning
jrom
126
8.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
350
18k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
The Invisible Customer
myddelton
114
12k
Web development in the modern age
philhawksworth
201
10k
Designing with Data
zakiwarfel
94
4.8k
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
Thoughts on Productivity
jonyablonski
57
3.8k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
111
35k
The World Runs on Bad Software
bkeepers
PRO
60
6.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
644
57k
Web Components: a chance to create the future
zenorocha
304
41k
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 はいいぞ