Db2 AI エディション(Db2 AI Advanced, Db2 AI Standard)にはフル機能のDb2 Genius Hubがバンドルされています。
Db2 Genius Hubのセキュリティーを強化するために、この記事では、シークレット管理ツールHashiCorp VaultツールとGenius Hubとの統合について概説しています。
これ以降は下記IBM Blogの抄訳となります。
"Securing IBM Db2 Genius Hub Credentials with HashiCorp Vault"
https://community.ibm.com/community/user/blogs/arshnoor-kaur/2026/05/14/securing-ibm-db2-genius-hub-credentials-with-hashi
データベース運用におけるエンタープライズレベルのシークレット管理
データ主導の現代において、機密情報の保護は極めて重要です。
データベースの認証情報、APIキー、暗号化キーは、エンタープライズセキュリティにおける「至宝」とも言える重要な資産であり、その管理体制の良し悪しがセキュリティの堅牢性を左右します。
IBM Db2 Genius Hubは、HashiCorp Vaultとのシームレスな連携を実現しました。
これにより、自律型データベース運用に、エンタープライズレベルのシークレット管理と暗号化キーの分離機能がもたらされます。
課題:大規模環境におけるシークレットとキーの管理
データベースのシークレットを管理する従来の手法には、多くの場合、以下のような問題があります。
設定ファイルへの認証情報のハードコーディングがセキュリティ上の脆弱性を招く
暗号化データと共に暗号化キーを保存することは、セキュリティのベストプラクティスに反する
手動でのキーローテーションはミスが起きやすく、ダウンタイムを必要とする
監査証跡(ログ)が不足しているため、コンプライアンス対応が困難になる
データ管理とキー管理の職務分離が行われていない
典型的なエンタープライズ環境への導入例を考えてみましょう。

これにより、いくつかの運用上の課題が生じます。
解決策:HashiCorp Vaultとの統合
HashiCorp Vaultが提供するもの
VaultをGenius Hubと統合することで、極めて重要な機能、すなわち「暗号化キーの外部保管」が実現します。
具体的には以下の通りです。
・Genius Hubは、暗号化されたデータベースの認証情報を保管します。
・Vaultは、それらを復号するために必要な暗号化キーを保管します。
・これら2つの要素は物理的に分離されています。
実際の運用:
DBA(データベース管理者)はGenius Hubで認証情報を管理しますが、暗号化キーにはアクセスできません。
セキュリティチームはVaultで暗号化キーを管理しますが、暗号化された認証情報にはアクセスできません。
単一の個人やシステムが、これら両方の要素を保持することはありません。
これこそが「職務の分離(seperation of duties)」および「多層防御(defence in depth)」であり、VaultがGenius Hubにもたらすセキュリティの基本原則です。
重要な点:データベースの認証情報(ユーザー名やパスワード)自体はVaultには保管されません。
それらは暗号化された状態でGenius Hubのデータベース内に留まります。
Vaultに保管されるのは暗号化キーのみです。
Vaultと統合すると何が違う?
Vaultとの統合がない場合(デフォルト)
ユーザーがパスワードを入力 → Genius Hubが内部キーで暗号化 → データベースに保存
ユーザーがパスワードを必要とする → Genius Hubが内部キーで復号 → ユーザーに返す
Vaultとの統合がある場合
ユーザーがパスワードを入力 → Genius HubがVaultにキーを要求 → パスワードを暗号化 → データベースに保存
ユーザーがパスワードを必要とする → Genius HubがVaultにキーを要求 → パスワードを復号 → ユーザーに返す
決定的な違い:Genius Hubは暗号化キーを永続的に保管しません。
必要に応じてVaultにキーを要求し、暗号化や復号に使用した後、メモリから破棄します。
暗号化の対象範囲
接続プロファイルで「パスワード暗号化キーの保管(Use password encryption key store)」を有効にすると、すべての種類の認証情報がVaultのキーで暗号化されます。

実装ガイド
前提条件
IBM Db2 Genius Hub バージョン 1.1.2.0 以降
HashiCorp Vault サーバー (セルフホストまたは HCP Vault)
Genius Hub と Vault の間のネットワーク接続
Genius Hub のコンソール管理者アクセス
ステップ 1: HashiCorp Vaultを構成する
AppRole 認証を設定し、Genius Hub のポリシーを作成します。
# Enable AppRole authentication
vault auth enable approle
# Create a policy for Genius Hub
# Note: <<EOF is heredoc syntax - it allows multi-line input until the closing EOF
vault policy write genius-hub-policy - <<EOF
path "secret/data/genius-hub/*" {
capabilities = ["read", "list"]
}
EOF
# Create an AppRole
vault write auth/approle/role/genius-hub \
token_policies="genius-hub-policy" \
token_ttl=1h \
token_max_ttl=4h
# Get Role ID (save this)
vault read auth/approle/role/genius-hub/role-id
# Generate Secret ID (save this)
vault write -f auth/approle/role/genius-hub/secret-id
重要:この段階でRole IDとSecret IDは安全に保管してください。
これらは後で実施するGenius Hubの設定に必要です。
ステップ 2: Vault に暗号化キーを保存する
Vault で暗号化キーを作成します。
キー名は Encryption_Key にする必要があります(大文字と小文字が区別されます)。
# Generate a strong 256-bit encryption key
openssl rand -hex 32
# Store in Vault
vault kv put secret/genius-hub/db-credentials \
Encryption_Key="your-256-bit-encryption-key"
ステップ 3: IBM Db2 Genius Hub の設定
シークレットプロファイルを作成できるのは、コンソール管理者のみです。

2. 「新しいシークレットを作成(Create New Secret)」をクリックします。

3. 必須項目を入力します:
(i) シークレット名(Secret name):内容がわかる名前(例:Production Vault)

(ii) シークレットの記述(Secret description):オプションです

(iii) シークレット・プロバイダー(Secret Provider):HashiCorp Vaultを選択

(iv) シークレット・パス(Secret path): APIパスを含む完全なVault URL(例: https://vault.example.com:8200/v1/secret/data/genius-hub/db-credentials)

(v) シークレット ID(Secret ID。下記画面ではSecretの箇所に入力): ステップ1のAppRole Secret ID

(vi) Role ID: ステップ1のAppRole Role ID

4. 「作成(Create)」をクリックして保存します。

ステップ 4: データベース接続にシークレットを使用する
データベース接続を作成または編集する際:
1.[Connections](接続)> [Add database connection](データベース接続の追加)(または既存の接続を編集(edit existing))に移動します。

2.接続情報(ホスト名、ポート、データベース名)を入力します。
3.「パスワード暗号化キーストアを使用する(Use password encryption key store)」を有効にします。

4.ドロップダウンからシークレット・プロファイル(例:Production Vault)を選択してください。

5.監視(monitoring)、ジョブ(job)、および個人アクセス(personal access)のための認証情報を入力してください。

6.「保存(Save)」をクリックします。

この接続に使用されるすべての認証情報は、HashiCorp Vaultに保存されているキーを使用して暗号化されます。
ビデオ
実際の動作をご覧になりたい場合は、HashiCorp Vaultの設定、Genius Hubでのシークレットプロファイルの作成、データベース接続への暗号化キーの保存の適用手順を示すビデオをご覧ください。
https://youtu.be/YcSHK-Pk5v0
セキュリティ上の利点
1. 職務の分離

2. 簡素化されたキーローテーション
従来の手順:
新しいキーの生成 → 旧キーで全認証情報を復号 → 新しいキーで再暗号化 → データベースの更新 → ダウンタイムの調整 → 接続テスト
Vaultを統合した場合:
Vaultでキーを更新:vault kv put secret/genius-hub/db-credentials Encryption_Key="new-key"
新しい暗号化キーを反映させるため、Genius Hubの接続設定ページにアクセスし、設定を再保存する必要があります(これを行わないと、データベース認証に失敗します。
以降のすべての操作において、Genius Hubは自動的に新しいキーを使用します。
3. 包括的な監査証跡
Vaultは、コンプライアンス対応のための詳細な監査ログ機能を提供します:
{
"time": "2026-05-01T14:30:00Z",
"type": "response",
"auth": {
"display_name": "approle",
"policies": ["genius-hub-policy"],
"metadata": {"role_name": "genius-hub"}
},
"request": {
"operation": "read",
"path": "secret/data/genius-hub/db-credentials"
}
}
4. 災害復旧
暗号化キーは、Genius Hubのバックアップとは別に、Vaultインフラストラクチャの一部としてバックアップされます。
バックアップからGenius Hubを復元 → 暗号化された認証情報が含まれる(キーは含まれない)
Genius HubがVaultに接続 → 暗号化キーを取得
すべての接続が即座に機能 → 手動でのキー復旧や認証情報の再入力は不要
万が一Genius Hubが侵害された場合でも、Vaultへのアクセス権がなければ、暗号化された認証情報は無意味なものとなります。
さらに、Vault内の暗号化キーを即座にローテーション(更新)することで、漏洩の可能性がある暗号化データを無効化できます。
さわってみよう Db2 AIエディション・シリーズのご紹介
#1から#5まではAIアシスタント機能についてご紹介しています。
#6と#7はモニタリング機能についてご紹介しています。
#8は耐量子暗号化機能についてご紹介しています。
#9は耐量子暗号化機能を含むv12.1.5の新機能についてご紹介しています。
#10と#11はv12.1.5以降で利用できるようになったSQLによる生成AI機能についてご紹介しています。
#12と#13はDb2 Genius Hub 1.1.3以降で利用できるようになったDb2 Genius Hub MCP ServerとIBM Bobからそれを利用する方法について概説しています。
#14ではLinux, Windowsに加え、MacOSにも対応したDb2 Genius Hub v1.1.3の様々な新機能をハイライトしています。
#1では、Db2入門者、初心者には作成が難しいと思われる複雑なSQLをAIアシスタントを使って作成しています。加えて、Db2 Genius Hub概要、無料評価版のダウンロードサイトやマニュアルURLもご紹介しています。#1からお読みいただくことをお勧めいたします。
さわってみよう Db2 AI エディション #1 〜エージェント型AIアシスタント編 Part#1〜
https://qiita.com/ibm_tk/items/e763bbea3fcf5e8a27a9
#2では、AIアシスタントでデータベースの稼働状況のサマリーを表示しています。
さわってみよう Db2 AI エディション #2 〜エージェント型AIアシスタント編 Part#2〜
https://qiita.com/ibm_tk/items/e11986879f6eca23c249
#3では、AIアシスタントでデータベースの応答時間の履歴を表示しています。
さわってみよう Db2 AI エディション #3 〜エージェント型AIアシスタント編 Part#3〜
https://qiita.com/ibm_tk/items/24647bc2db6a3a266d7c
#4では、AIアシスタントでデータベースのバックアップ履歴とプロセッサー利用状況の履歴を表示しています。
さわってみよう Db2 AI エディション #4 〜エージェント型AIアシスタント編 Part#4〜
https://qiita.com/ibm_tk/items/8d11c4e9fd39740d923d
#5では、AIアシスタントでクエリのスループットを表示しています。
さわってみよう Db2 AI エディション #5 〜エージェント型AIアシスタント編 Part#5〜
https://qiita.com/ibm_tk/items/e2583b00f624e351ce02
#6となる"さわってみよう Db2 AIエディション#6 〜モニタリング編 Part#1〜"ではモニタリング機能をご紹介しています。
https://qiita.com/ibm_tk/items/cdedc3a878998199cfee
#7となる"さわってみよう Db2 AIエディション#7 〜モニタリング編 Part#2〜"では監視(モニター)レポート作成機能をご紹介しています。
https://qiita.com/ibm_tk/items/81608900a0e2c89c18fc
#8となる"さわってみよう Db2 AIエディション#8 〜耐量子暗号化機能編 Part#1〜"では耐量子暗号化機能と登場した背景などについて記述しています。
https://qiita.com/ibm_tk/items/57a115c0d284697dd147
#9となる"さわってみよう Db2 AIエディション#9 〜v12.1.5新機能編 Part#1〜"ではv12.1.5の新機能のハイライトをご紹介しています。
https://qiita.com/ibm_tk/items/daabdf8215b430e804d8
#10となる"さわってみよう Db2 AIエディション#10 〜SQLで生成AI編 Part#1〜"ではv12.1.5以降で利用できるようになったSQLから使える生成AI機能(TEXT_GENERATION関数など)をご紹介しています。
https://qiita.com/ibm_tk/items/54a169cffcfbb9be0fed
#11となる"さわってみよう Db2 AIエディション#11 〜SQLで生成AI編 Part#2〜"ではv12.1.5以降で利用できるようになったSQLから使える生成AI機能(TO_EMBEDDING関数, セマンティック検索など)をご紹介しています。
https://qiita.com/ibm_tk/items/3085c90674561b9d80e7
#12となる"さわってみよう Db2 AIエディション#12 〜Db2 Genius Hub MCP Server編 Part#1〜"ではDb2 Genius Hub v1.1.3以降で利用できるようになったDb2 Genius Hub MCP Serverの概説とIBM Bobからそれにアクセスする方法などをご紹介しています。
https://qiita.com/ibm_tk/items/639e85ed43f1bfad8f07
#13となる"さわってみよう Db2 AIエディション#13 〜Db2 Genius Hub MCP Server編 Part#2〜"ではIBM Bobから簡単な自然言語で指定したデータベースのキャパシティ・プランニング・レポートを作成する方法などをご紹介しています
https://qiita.com/ibm_tk/items/37456fe2e352f7d04812
#14となる"さわってみよう Db2 AI エディション #14 〜Db2 Genius Hub v1.1.3新機能編 Part#1〜"ではLinux, Windowsに加え、MacOSにも対応したDb2 Genius Hub v1.1.3の様々な新機能をハイライトしています。
https://qiita.com/ibm_tk/items/d52d9e775c317e6ffaf3


