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
3
270
シークレット管理だけじゃない!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
470
Terraform にコントリビュートしていたら Azure のコストをやらかした話 / How I Messed Up Azure Costs While Contributing to Terraform
nnstt1
1
720
進化するクラウド管理 -Azure と Terraform の最新トレンド- / Evolving Cloud Management - Latest Trends in Azure and Terraform
nnstt1
0
46
今から、 今だからこそ始める 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
200
HashiCorp Ambassador が予想!Red Hat × HashiCorp の未来 / The Future of Red Hat and HashiCorp
nnstt1
1
210
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
Findy Team+のSOC2取得までの道のり
rvirus0817
0
230
今改めてServiceクラスについて考える 〜あるRails開発者の10年〜
joker1007
20
8.9k
組織観点からIAM Identity CenterとIAMの設計を考える
nrinetcom
PRO
1
130
サプライチェーン攻撃に学ぶModuleの仕組みと セキュリティ対策
kuro_kurorrr
3
790
Modern_Data_Stack最新動向クイズ_買収_AI_激動の2025年_.pdf
sagara
0
120
DEFCON CHV CTF 2025 Write-up
bata_24
0
190
What is BigQuery?
aizack_harks
0
120
Windows で省エネ
murachiakira
0
130
Oracle Cloud Infrastructure:2025年9月度サービス・アップデート
oracle4engineer
PRO
0
310
5年間のFintech × Rails実践に学ぶ - 基本に忠実な運用で築く高信頼性システム / 5 Years Fintech Rails Retrospective
ohbarye
9
3.3k
AI Agentと MCP Serverで実現する iOSアプリの 自動テスト作成の効率化
spiderplus_cb
0
270
そのグラフに「魂」は宿っているか? ~生成AI全盛期におけるデータ可視化手法とライブラリ比較~
negi111111
2
830
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Making Projects Easy
brettharned
118
6.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
4 Signs Your Business is Dying
shpigford
185
22k
Large-scale JavaScript Application Architecture
addyosmani
513
110k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
How to Ace a Technical Interview
jacobian
280
23k
Designing for humans not robots
tammielis
254
25k
Optimizing for Happiness
mojombo
379
70k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
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