setup
OpenBao のセットアップと構成
DuoKey PKCS#11 ライブラリで OpenBao の自動アンシールを構成するステップバイステップガイド
適用対象:
OpenBaoPKCS#11 Auto-UnsealDuoKey CockpitSoftware Vault / Primus HSM
前提条件
前提条件
- OpenBao がインストールされ、構成の準備ができていること
- KMS アプリケーションが作成された DuoKey Cockpit アカウント
- DuoKey PKCS#11 ライブラリ(libdke_pkcs11.so)がコンパイルされインストールされていること
- Cockpit Vault で AES または RSA キーが事前に作成されていること
- OpenBao サーバーから DuoKey Cockpit API(HTTPS/443)へのネットワーク接続
重要
自動アンシールに使用する暗号化キーは、OpenBao を構成する前に作成する必要があります。OpenBao ドキュメント に記載されているとおり、キーは初期化の前に存在している必要があります。
セットアップ手順
DuoKey Cockpit で KMS アプリを作成する
目的の Vault バックエンド(Software Vault または Primus HSM)で DuoKey Cockpit に KMS アプリケーションを作成する
暗号化キーを作成する
OpenBao がシーリング/アンシールに使用する AES または RSA キーを Cockpit Vault に作成する
PKCS#11 ライブラリをインストールする
コンパイル済みの
libdke_pkcs11.so を既知のパス(例: /usr/local/lib/pkcs11/)にコピーする環境変数を構成する
Cockpit アクセス用に PKCS#11 ライブラリの環境変数を設定する
OpenBao の Seal スタンザを構成する
OpenBao 構成ファイルに PKCS#11 seal 構成を追加する
OpenBao を初期化または再起動する
OpenBao を初期化(初回)するか、自動アンシールを使用するために再起動する
環境変数
OpenBao を起動する前に、PKCS#11 ライブラリに必要な環境変数を設定します。これらは OpenBao サービスによって読み込まれる構成ファイルに配置できます。
/etc/dke/pkcs11.toml
[http_config]
server_url = "https://<cockpit-host>/api/apps/<app_id>/tde/pkcs11/<access_guid>"
access_token = "<access_guid>"
timeout_secs = 30
verify_tls = true
[pkcs11]
slot_id = 0
logging_level = "info"
logging_folder = "/var/log/dke-pkcs11"
export DKE_PKCS11_CONF=/etc/dke/pkcs11.toml
ヒント
systemd ベースのデプロイメントの場合、これらの変数を OpenBao サービスの環境ファイル(例:
/etc/openbao.d/openbao.env)に追加できます。OpenBao Seal 構成
OpenBao 構成ファイル(例: /etc/openbao.d/openbao.hcl)に seal "pkcs11" スタンザを追加します。
AES キー構成
seal "pkcs11" {
lib = "/usr/local/lib/pkcs11/libdke_pkcs11.so"
slot = "0"
pin = "1234"
key_label = "bao-root-key-aes-256"
mechanism = "0x00001087"
}
| パラメーター | 説明 |
|---|---|
| lib | DuoKey PKCS#11 共有ライブラリへのパス |
| slot | スロット ID — "0" に設定する |
| pin | 任意の値を指定可能(現在ライブラリでは検証されない) |
| key_label | DuoKey Cockpit で作成した AES キーのラベル |
| mechanism | 0x00001087 = CKM_AES_GCM |
RSA キー構成
seal "pkcs11" {
lib = "/usr/local/lib/pkcs11/libdke_pkcs11.so"
slot = "0"
pin = "1234"
key_label = "bao-root-key-rsa-4096"
mechanism = "0x00000009"
rsa_oaep_hash = "sha256"
}
| パラメーター | 説明 |
|---|---|
| lib | DuoKey PKCS#11 共有ライブラリへのパス |
| slot | スロット ID — "0" に設定する |
| pin | 任意の値を指定可能(現在ライブラリでは検証されない) |
| key_label | DuoKey Cockpit で作成した RSA キーのラベル |
| mechanism | 0x00000009 = CKM_RSA_PKCS_OAEP |
| rsa_oaep_hash | RSA-OAEP のハッシュアルゴリズム — "sha256" を使用する |
注記
slot 値はスロット ID であり、"0" に設定できます。pin は現在ライブラリで検証されないため、任意の値を指定できます。バックエンドの互換性
| バックエンド | AES (CKM_AES_GCM) | RSA (CKM_RSA_PKCS_OAEP) |
|---|---|---|
| Software Vault | テスト成功 | テスト成功 |
| Primus HSM | サポート対象外 — Primus は入力された IV を受け入れず独自の IV を生成するため、AES-GCM seal の要件と互換性がない | テスト成功 |
注意
Primus HSM をバックエンドとして使用する場合、自動アンシールには RSA キーのみを使用できます。Primus はライブラリが提供する IV を受け入れず独自の IV を生成するため、AES ベースのシーリングは機能しません。
検証
OpenBao を構成した後、自動アンシールが機能していることを検証します。
# Start or restart OpenBao
sudo systemctl restart openbao
# Check the seal status
bao status
自動アンシールが正しく構成されていれば、Vault は起動後に自動的にアンシール済みとして報告されます。
# Expected output (key fields)
# Seal Type: pkcs11
# Initialized: true
# Sealed: false
トラブルシューティング
ヒント
初期セットアップ中は、問題の診断に役立つようデバッグログ(
DKE_PKCS11_LOGGING_LEVEL=debug)を有効にしてください。本番環境での使用時には Info(0)以上に戻すことを忘れないでください。