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
シークレット管理だけじゃない!HashiCorp Vault でデータ暗号化をしよう / B...
Search
ののし
September 02, 2025
Technology
1
110
シークレット管理だけじゃない!HashiCorp Vault でデータ暗号化をしよう / Beyond Secret Management! Let's Encrypt Data with HashiCorp Vault
HashiCorp Vault ユーザ会 第1回
https://vaultuserjp1.splashthat.com/
ののし
September 02, 2025
Tweet
Share
More Decks by ののし
See All by ののし
Azure Developer CLI と Azure Deployment Environment / Azure Developer CLI and Azure Deployment Environment
nnstt1
1
450
Terraform にコントリビュートしていたら Azure のコストをやらかした話 / How I Messed Up Azure Costs While Contributing to Terraform
nnstt1
1
710
進化するクラウド管理 -Azure と Terraform の最新トレンド- / Evolving Cloud Management - Latest Trends in Azure and Terraform
nnstt1
0
42
今から、 今だからこそ始める Terraform で Azure 管理 / Managing Azure with Terraform: The Perfect Time to Start
nnstt1
0
410
HCP Vault Secrets でシークレット管理を始めよう / Getting Started with Secret Management Using HCP Vault Secrets
nnstt1
0
180
HashiCorp Ambassador が予想!Red Hat × HashiCorp の未来 / The Future of Red Hat and HashiCorp
nnstt1
1
200
Terraform を使った Front Door の小ネタ / Terraform for Front Door
nnstt1
0
180
つまずきから学ぶ Backstage の Golden Path 構築
nnstt1
2
1.4k
Azure ユーザに捧げる Terraform Cloud 101 / Terraform Cloud 101 for Azure Users
nnstt1
0
560
Other Decks in Technology
See All in Technology
モバイルアプリ研修
recruitengineers
PRO
4
1.4k
「AI2027」を紐解く ― AGI・ASI・シンギュラリティ
masayamoriofficial
0
130
AIエージェント就活入門 - MCPが履歴書になる未来
eltociear
0
660
小さなチーム 大きな仕事 - 個人開発でAIをフル活用する
himaratsu
0
140
進捗
ydah
1
200
衝突して強くなる! BLUE GIANTと アジャイルチームの共通点とは ― いきいきと活気に満ちたグルーヴあるチームを作るコツ ― / BLUE GIANT and Agile Teams
naitosatoshi
0
210
事業価値と Engineering
recruitengineers
PRO
6
4.5k
KiroでGameDay開催してみよう(準備編)
yuuuuuuu168
1
150
Browser
recruitengineers
PRO
5
1.7k
実運用で考える PGO
kworkdev
PRO
0
110
Lessons from CVE-2025-22869: Memory Debugging and OSS Vulnerability Reporting
vvatanabe
2
100
プロダクトの成長に合わせたアーキテクチャの段階的進化と成長痛、そして、ユニットエコノミクスの最適化
kakehashi
PRO
1
100
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Embracing the Ebb and Flow
colly
87
4.8k
Visualization
eitanlees
147
16k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
GraphQLとの向き合い方2022年版
quramy
49
14k
Practical Orchestrator
shlominoach
190
11k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Documentation Writing (for coders)
carmenintech
73
5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
HashiCorp Vault ユーザ会(第1回) 2025-09-01 Taichi Nonoshita (@nnstt1) シークレット管理だけじゃない! HashiCorp Vault
でデータ暗号化をしよう
Hello!! 株式会社エーピーコミュニケーションズ 四国在住3児の父 HashiCorp Ambassador 2024-2025 Microsoft Top Partner Engineer
Award 2024-2025 <Azure> 埜下太一 / ののし (@nnstt1)
会社紹介
会社紹介
私と HashiCorp Vault
Kubernetes のシークレットを管理したい 色々試したけどしっくりこない…
そんなところに Vault Secrets Operator が登場!
VSO ええやん! でも HashiCorp Vault めっちゃムズい…
初めて学んだ HashiCorp Vault の記事 https://zenn.dev/nameless_gyoza/articles/hashicorp-vault-hands-on
HashiCorp Vault の勉強&アウトプット HashiCorp Ambassador に選出される🎉
本編
HashiCorp Vault の主な機能 シークレット管理 データ保護 今日のテーマはこちら HashiCorp Vault で機密情報を一元管理 Encryption
as a Service 静的シークレット: パスワード、API キー、トークン、etc… 動的シークレット: DB 認証情報、AWS IAM、Microsoft Entra、etc…
HashiCorp Vault のデータ保護 Encryption as a Service を提供してデータ保護機能を HashiCorp Vault
に集約 Vault で平文を暗号化 暗号文を格納 Vault で暗号文を復号
HashiCorp Vault のデータ保護によってデータがどのように変わるでしょう? HashiCorp Vault のデータ保護 Masking Tokenization Transit Secret
Engine Transform Secret Engine 元データ: 4111-1111-1111-1111 暗号化後:??? 変換後:??? 変換後:??? 変換後:??? FPE
Transit Secret Engine
Transit Secret Engine • HashiCorp Vault の標準的なデータ暗号化機能 • 平文を HashiCorp
Vault に投げると暗号文が返ってくる • 暗号文は HashiCorp Vault に保存されない • キーローテーションやエンベロープ暗号化にも対応
Transit Secret Engine • シークレットエンジンの有効化 $ vault secrets enable transit
Success! Enabled the transit secrets engine at: transit/ $ vault write -f transit/keys/my-key • 暗号鍵の生成
暗号化 • 平文を Base64 エンコードして HashiCorp Vault に暗号化をリクエスト • HashiCorp
Vault では暗号化に使った鍵バージョンが暗号文に記録されて、 復号時に利用される $ vault write transit/encrypt/my-key \ plaintext=$(echo "4111-1111-1111-1111" | base64) Key Value --- ----- ciphertext vault:v1:tigfEcdRpw9WO01eS0p… key_version 1
復号 • HashiCorp Vault で暗号化されたデータの例 $ vault write transit/decrypt/my-key \
ciphertext="vault:v1:tigfEcdRpw9WO01eS0p…" Key Value --- ----- plaintext NDExMS0xMTExLTExMTEtMTExMQo= • 復号されたデータは Base64 エンコードされている $ echo "NDExMS0xMTExLTExMTEtMTExMQo=" | base64 -d 4111-1111-1111-1111
キーローテーション • キーローテーションにより鍵が漏洩した場合でも影響範囲を限定できる • コンプライアンスなどでローテーション頻度を定められていることも • 自動ローテーション機能はあるが「毎月末ローテーション」のような設定はできない
キーローテーション Q. キーローテーションしても古いバージョンの暗号済みデータは復号できる?
キーローテーション Q. キーローテーションしても古いバージョンの暗号済みデータは復号できる? A. Transit Secret Engine の設定次第
Transit Secret Engine の設定 • min_encryption_version:暗号化に使用する鍵の最小バージョン • min_decryption_version:復号に使用する鍵の最小バージョン • latest_version:鍵の最新バージョン
Transit Secret Engine の設定 • min_decryption_version で指定したバージョンより新しい鍵で復号可能
Rewrap • 古いバージョンの鍵で暗号化されたデータを新しいバージョンの鍵で再暗号化 • 平文に戻さずに暗号文から暗号文に変換 • 元の平文データは露出しない安全な処理 • 先に min_decryption_version
を更新すると古い暗号文は Rewrap できなくなる
エンベロープ暗号化 • 「封筒(エンベロープ)」のように暗号鍵自体を暗号化する方式 • データ暗号鍵を HashiCorp Vault のルート鍵を使って暗号化 • 暗号文と暗号化されたデータ暗号鍵を保管
• 大容量データの暗号化 • ネットワーフの負荷軽減 • HashiCorp Vault の負荷軽減 メリット • クライアントの実装が複雑になる • データとキーの対応関係の管理が必要 デメリット
エンベロープ暗号化の流れ 1. HashiCorp Vault で生成した「データキー」を使ってクライアントで暗号化 2. 「データキー」は即破棄 3. 「暗号文」と「暗号化されたデータキー」を一緒に格納
エンベロープ暗号化の復号 1. 「暗号化されたデータキー」を HashiCorp Vault で「データキー」に復号 2. 「暗号文」を「データキー」で復号 3. 「データキー」は即破棄
Transit Secret Engine の課題 • Transit Secret Engine では暗号文の形式が変わってしまう ◦
既存の DB スキーマに格納できない ◦ アプリケーションの Validation 修正が必要 • この課題を解決するのが Transform Secret Engine Transit 4111-1111-1111-1111 4111-1111-1111-1111 “vault:v1:abc…” vault:v1:abc…
Transform Secret Engine
• Vault Enterprise の Advanced Data Protection モジュール限定 • FPE
(Format Preserving Encryption) / Masking / Tokenization の機能がある • FPE によってデータ型・長さ・文字種をそのまま維持した暗号化が可能 Transform (FPE) Transform Secret Engine 4111-1111-1111-1111 4111-1111-1111-1111 9474-2096-7736-0783 9474-2096-7736-0783
Transform Secret Engine Tokenization • 不可逆変換 • テスト環境への本番データ投入、 画面・ログへの表示、分析・統計 •
データをランダムに生成された トークンに置き換え • クレジットカード セキュリティ基 準 (PCI CSS) などに準拠 4111-1111-1111-1111 4111-####-####-#### 4111-1111-1111-1111 TKN8x9mP2qR7nV3kL5j Masking
Transit / Transform の使い分け https://developer.hashicorp.com/vault/docs/concepts/transform 復元する 必要がある? 形式を保持する 必要がある? 不可逆・
有効期限・ メタデータが 必要?
Vault Enterprise の機能を試したい • 個人で Enterprise 機能を試すなら がオススメ • Advanced
Data Protection モジュールの Transform Secret Engineも使える • Pay-as-You-Go (PAYG) でのクレカ払い可能 ◦ 請求は IBM の仕組みに移管される予定 • 最小 Tier で $0.616/hr ◦ 1日あたり約 2,200 円、立てっぱなしに注意 ◦ 2025月3月に価格改定、以前は $0.045/hr だった(約14倍に!!)
HashiCorp Ambassador • HashiCorp 製品の知識を共有してコミュニティに貢献しているメンバー • Ambassador 特典で HCP (HashiCorp
Cloud Platform) の $500 クレジットを 貰える • 「検証 → 知見をアウトプット → Ambassador 選出 → 特典でさらに検証」 というループを回せる ※来年以降もあるかは保証しません
まとめ
HashiCorp Vault を使って Encryption as a Service を提供できる HashiCorp Vault
のデータ保護 Masking Tokenization Transit Secret Engine Transform Secret Engine 元データ: 4111-1111-1111-1111 暗号化後 :vault:v1:tigfEcdRpw9WO01eS0 p… 変換後:9474-2096-7736-0783 変換後:4111-####-####-#### 変換後:TKN8x9mP2qR7nV3kL5j FPE 大容量データを暗号化するには 「エンベロープ暗号化」を使う Vault Enterprise 限定
Thanks!! contact me at @nnstt1