Upgrade to Pro — share decks privately, control downloads, hide ads and more …

シークレット管理だけじゃない!HashiCorp Vault でデータ暗号化をしよう / B...

Avatar for ののし ののし
September 02, 2025

シークレット管理だけじゃない!HashiCorp Vault でデータ暗号化をしよう / Beyond Secret Management! Let's Encrypt Data with HashiCorp Vault

HashiCorp Vault ユーザ会 第1回
https://vaultuserjp1.splashthat.com/

Avatar for ののし

ののし

September 02, 2025
Tweet

More Decks by ののし

Other Decks in Technology

Transcript

  1. HashiCorp Vault の主な機能 シークレット管理 データ保護 今日のテーマはこちら HashiCorp Vault で機密情報を一元管理 Encryption

    as a Service 静的シークレット: パスワード、API キー、トークン、etc… 動的シークレット: DB 認証情報、AWS IAM、Microsoft Entra、etc…
  2. HashiCorp Vault のデータ保護 Encryption as a Service を提供してデータ保護機能を HashiCorp Vault

    に集約 Vault で平文を暗号化 暗号文を格納 Vault で暗号文を復号
  3. HashiCorp Vault のデータ保護によってデータがどのように変わるでしょう? HashiCorp Vault のデータ保護 Masking Tokenization Transit Secret

    Engine Transform Secret Engine 元データ: 4111-1111-1111-1111
 暗号化後:???
 変換後:???
 変換後:???
 変換後:???
 FPE
  4. Transit Secret Engine • HashiCorp Vault の標準的なデータ暗号化機能 • 平文を HashiCorp

    Vault に投げると暗号文が返ってくる • 暗号文は HashiCorp Vault に保存されない • キーローテーションやエンベロープ暗号化にも対応
  5. Transit Secret Engine • シークレットエンジンの有効化 $ vault secrets enable transit

    Success! Enabled the transit secrets engine at: transit/ $ vault write -f transit/keys/my-key • 暗号鍵の生成
  6. 暗号化 • 平文を 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
  7. 復号 • 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
  8. エンベロープ暗号化 • 「封筒(エンベロープ)」のように暗号鍵自体を暗号化する方式 • データ暗号鍵を HashiCorp Vault のルート鍵を使って暗号化 • 暗号文と暗号化されたデータ暗号鍵を保管

    • 大容量データの暗号化 • ネットワーフの負荷軽減 • HashiCorp Vault の負荷軽減 メリット • クライアントの実装が複雑になる • データとキーの対応関係の管理が必要 デメリット
  9. 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…

  10. • 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

  11. Transform Secret Engine Tokenization • 不可逆変換 • テスト環境への本番データ投入、 画面・ログへの表示、分析・統計 •

    データをランダムに生成された トークンに置き換え • クレジットカード セキュリティ基 準 (PCI CSS) などに準拠 4111-1111-1111-1111
 4111-####-####-####
 4111-1111-1111-1111
 TKN8x9mP2qR7nV3kL5j
 Masking
  12. 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倍に!!)
  13. HashiCorp Ambassador • HashiCorp 製品の知識を共有してコミュニティに貢献しているメンバー • Ambassador 特典で HCP (HashiCorp

    Cloud Platform) の $500 クレジットを 貰える • 「検証 → 知見をアウトプット → Ambassador 選出 → 特典でさらに検証」 というループを回せる ※来年以降もあるかは保証しません
  14. 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 限定