$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
シークレット管理だけじゃない!HashiCorp Vault でデータ暗号化をしよう / B...
Search
ののし
September 02, 2025
Technology
3
340
シークレット管理だけじゃない!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 ののし
2025 年版 HashiCorp Vault 入門 / Introduction to HashiCorp Vault - 2025 Edition
nnstt1
1
68
Azure Developer CLI と Azure Deployment Environment / Azure Developer CLI and Azure Deployment Environment
nnstt1
1
510
Terraform にコントリビュートしていたら Azure のコストをやらかした話 / How I Messed Up Azure Costs While Contributing to Terraform
nnstt1
1
770
進化するクラウド管理 -Azure と Terraform の最新トレンド- / Evolving Cloud Management - Latest Trends in Azure and Terraform
nnstt1
0
62
今から、 今だからこそ始める Terraform で Azure 管理 / Managing Azure with Terraform: The Perfect Time to Start
nnstt1
0
440
HCP Vault Secrets でシークレット管理を始めよう / Getting Started with Secret Management Using HCP Vault Secrets
nnstt1
0
230
HashiCorp Ambassador が予想!Red Hat × HashiCorp の未来 / The Future of Red Hat and HashiCorp
nnstt1
1
220
Terraform を使った Front Door の小ネタ / Terraform for Front Door
nnstt1
0
200
つまずきから学ぶ Backstage の Golden Path 構築
nnstt1
2
1.5k
Other Decks in Technology
See All in Technology
「Managed Instances」と「durable functions」で広がるAWS Lambdaのユースケース
lamaglama39
0
160
Ryzen NPUにおけるAI Engineプログラミング
anjn
0
240
私のRails開発環境
yahonda
0
190
「え?!それ今ではHTMLだけでできるの!?」驚きの進化を遂げたモダンHTML
riyaamemiya
10
4.6k
オープンデータの内製化から分かったGISデータを巡る行政の課題
naokim84
2
1.4k
事業部のプロジェクト進行と開発チームの改善の “時間軸" のすり合わせ
konifar
9
3.2k
32のキーワードで学ぶ はじめての耐量子暗号(PQC) / Getting Started with Post-Quantum Cryptography in 32 keywords
quiver
0
290
Design System Documentation Tooling 2025
takanorip
2
980
エンジニアリングマネージャー はじめての目標設定と評価
halkt
0
210
Claude Code Getting Started Guide(en)
oikon48
0
170
useEffectってなんで非推奨みたいなこと言われてるの?
maguroalternative
10
6.4k
Modern Data Stack大好きマンが語るSnowflakeの魅力
sagara
0
300
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
66k
Typedesign – Prime Four
hannesfritz
42
2.9k
Statistics for Hackers
jakevdp
799
230k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
GitHub's CSS Performance
jonrohan
1032
470k
Fireside Chat
paigeccino
41
3.7k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Transcript
None
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:tigfEcdRpw9WO01eS0p… 変換後:9474-2096-7736-0783 変換後:4111-####-####-#### 変換後:TKN8x9mP2qR7nV3kL5j FPE 大容量データを暗号化するには 「エンベロープ暗号化」を使う Vault Enterprise 限定
Thanks!! contact me at @nnstt1