Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
HashiCorp Vaultを活用した kubernetes環境での環境変数管理
Search
murasame29
May 17, 2024
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
HashiCorp Vaultを活用した kubernetes環境での環境変数管理
Matsuriba tech vol4の玄人枠でのLT資料。
静的secretに焦点を当ててお家でできる簡単なハンズオン付き
murasame29
May 17, 2024
Other Decks in Programming
See All in Programming
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
3
440
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.3k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
230
APNsからLive Activityを開始する話
yumnumm
0
170
phperだってパンチカードでコーディングしたい
o0h
PRO
0
350
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
2
490
ActionController meets Protocol Buffers
sorah
0
560
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
260
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
140
Jetpack Compose Mechanisms
skydoves
3
820
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
560
ラッコキーワード サービス紹介資料
rakko
1
5.4M
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.2k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
640
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
Docker and Python
trallard
47
4.2k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
500
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
30 Presentation Tips
portentint
PRO
1
430
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
The Curious Case for Waylosing
cassininazir
1
570
Transcript
HashiCorp Vaultを活用した kubernetes環境での環境変数管理 murasame29
自己紹介
ちょっと質問 Q. Kubernetes興味ある人 (予想: 100%)
ちょっと質問 Q. Kubernetes興味ある人 (予想: 100%) Q. kubernetes触ったことある人 (予想: 50%)
ちょっと質問 Q. Kubernetes興味ある人 (予想: 100%) Q. kubernetes触ったことある人 (予想: 50%) Q.
kubernetesよく使う人 (予想: 10%)
ちょっと質問 Q. Kubernetes興味ある人 (予想: 100%) Q. kubernetes触ったことある人 (予想: 50%) Q.
kubernetesよく使う人 (予想: 10%) Q. 環境変数の管理で困りごとがあると感じたことがある人 (予想:100%)
SecretAPIどんなのか知ってる? k-v形式でkeyに対して内容がbase64でエンコード された文字列が格納されています。
SecretAPIどんなのか知ってる? k-v形式でkeyに対して内容がbase64でエンコード された文字列が格納されています。 読みにくいっちゃ読みにくいけど。。。
SecretAPIどんなのか知ってる? k-v形式でkeyに対して内容がbase64でエンコード された文字列が格納されています。 読みにくいっちゃ読みにくいけど。。。 echo "eXVtYS1zYXRha2U=" | base64 -d ;
echo ってやったら見えちゃう!!
GitOpsで致命的すぎる事例… 本番環境のsecret gitに上げちゃった! 誰が何処にSecret保存してるんだ? 検証したいからSecretをSlackに上 げてくれない?
具体的な解決法… パブリッククラウドやSaaSを利用する。 GCPやAWS,AzureにはSecretManagerが存在する。
具体的な解決法… パブリッククラウドやSaaSを利用する。 GCPやAWS,AzureにはSecretManagerが存在する。 でも... マルチクラウドの場合は …? オンプレミスで管理したい時って …? SecretManagerがないクラウドベンダの場合って …?
具体的な解決法… パブリッククラウドやSaaSを利用する。 GCPやAWS,AzureにはSecretManagerが存在する。 でも... マルチクラウドの場合は …? オンプレミスで管理したい時って …? SecretManagerがないクラウドベンダの場合って …?
そんな悩みを持ってるあなたに紹介するエコシステム
具体的な解決法… パブリッククラウドやSaaSを利用する。 GCPやAWS,AzureにはSecretManagerが存在する。 でも... マルチクラウドの場合は …? オンプレミスで管理したい時って …? SecretManagerがないクラウドベンダの場合って …?
そんな悩みを持ってるあなたに紹介するエコシステム
Vaultとは? • HashiCorp社の提供するシークレット管理及びデータ暗号化用のセキュリティツール • パブリッククラウドからオンプレまで柔軟にデプロイが可能 • WebUI、CLI、APIでの操作ができる ◦ 今回はわかりやすいように vaultの操作はWebUIから行う
• シークレットや鍵が一元管理可能 • EaaS(Encryption as a Service)や PKI , IdPとしても振る舞うことができる • 様々なSSOプロバイダに対応してる こいつ一つでなんでもできる。。。 Kubernetesだけでなく、GitHub Actionsやその他対応ベンダのサービスのsecretも管理可能!
どうやって使うの? 1. Agent Sidecar Injectorを使ってPodに渡す 2. CSIドライバ経由でPodからマウントする 3. Secrets Operator等を使ってSecretリソースと同期させてSecretをマウントする。
a. External Secrets Operatorを使う b. Vault Secrets Operatorを使う
どうやって使うの? 1. Agent Sidecar Injectorを使ってPodに渡す 2. CSIドライバ経由でPodからマウントする 3. Secrets Operator等を使ってSecretリソースと同期させてSecretをマウントする。
a. External Secrets Operatorを使う b. Vault Secrets Operatorを使う 今回はこいつに焦点を当てて話そうかと思う
Vault Secrets Operatorとは? • kv-v1 , kv-v2 PKIのTLS証明書のサポート • 静的および動的シークレットのサポート
• HashiCorp製のCRD Vault Secrets Operatorは指定されたVaultと namespace内のSecretを同期するOperator。 Secretの管理はVault Secret Operatorによって行われ るが標準的なアクセスが可能である 特徴
実際の使用例 ※検証用なので細かい設定は省略します本番環境ではより細かい権限設定を行ってください 1. kubernetesによる認証メソッドを有効化する UI > Access -> Authentication Method
-> Enable New Method -> kubernetes
実際の使用例 ※検証用なので細かい設定は省略します本番環境ではより細かい権限設定を行ってください 1. kubernetesによる認証メソッドを有効化する UI > Access -> Authentication Method
-> Enable New Method -> kubernetes
実際の使用例 ※検証用なので細かい設定は省略します本番環境ではより細かい権限設定を行ってください 1. kubernetesによる認証メソッドを有効化する UI > Access -> Authentication Method
-> Enable New Method -> kubernetes -> configure ここで設定するhostは control-planeのAPIserver Address もしくは、 vault-0の環境変数に設定されている $KUBERNETES_PORT_443_TCP_ADDR を入力する
実際の使用例 2. 新しいkv-2のオブジェクトを作る UI> Secrets Engine -> Enable New Engine
-> kv
実際の使用例 2. 新しいkv-2のオブジェクトを作る UI> Secrets Engine -> Enable New Engine
-> kv
実際の使用例 2. 新しいkv-2のオブジェクトを作る UI> Secrets Engine -> Enable New Engine
-> kv -> Secrets -> Create Secrets
実際の使用例 3. ポリシーを作成する UI > ACL Policies -> Create ACL
Policy さっき作ったオブジェクトに対して読み取りのみできるポリシーを設定。。。
実際の使用例 3. ポリシーを作成する UI > ACL Policies -> Create ACL
Policy さっき作ったオブジェクトに対して読み取りのみできるポリシーを設定。。。
実際の使用例 4. ロールを作成する UI > Access -> Authentication Method ->
vault-secrets-operator-example -> Create New Role 適当なロールを作る…
実際の使用例 4. ロールを作成する UI > Access -> Authentication Method ->
vault-secrets-operator-example -> Create New Role 適当なロールを作る…
実際の使用例 4. kubernetes側でVaultのAuthとSecretのマウントを設定する a. vault secrets operator をdeployする(初回のみ) b. static-auth用のmanifestを適用する
c. mount設定用のmanifestを適用する いい感じにvalues.ymalを変更してね
実際の使用例 4. kubernetes側でVaultのAuthとSecretのマウントを設定する a. vault secrets operator をdeployする(初回のみ) b. static-auth用のmanifestを適用する
c. mount設定用のmanifestを適用する
実際の使用例 4. kubernetes側でVaultのAuthとSecretのマウントを設定する a. vault secrets operator をdeployする(初回のみ) b. static-auth用のmanifestを適用する
c. mount設定用のmanifestを適用する
確認... name: yuma-satake birth-day: 1067212800 role: don
確認... name: yuma-satake birth-day: 1067212800 role: don ミスったエポック秒だわ
secretsの更新 UI > Secrets Engine -> matsuriba-secrets -> config/satake ->
Create new version birth-dayを更新する…
secretsの更新 UI > Secrets Engine -> matsuriba-secrets -> config/satake ->
Create new version birth-dayを更新する…
確認... name: yuma-satake birth-day: 2003/10/27 role: don ちゃんと治ってそう
まとめ 静的なシークレットについて焦点を当てて話したが、 DBと連携し動的に鍵を保存することも可能であり、前述のとおり沢山機能 がある。 皆さんもVaultを触ってみてください!