メインコンテンツまでスキップ

setup

適用対象:
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"
}
パラメーター説明
libDuoKey PKCS#11 共有ライブラリへのパス
slotスロット ID — "0" に設定する
pin任意の値を指定可能(現在ライブラリでは検証されない)
key_labelDuoKey Cockpit で作成した AES キーのラベル
mechanism0x00001087 = 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"
}
パラメーター説明
libDuoKey PKCS#11 共有ライブラリへのパス
slotスロット ID — "0" に設定する
pin任意の値を指定可能(現在ライブラリでは検証されない)
key_labelDuoKey Cockpit で作成した RSA キーのラベル
mechanism0x00000009 = CKM_RSA_PKCS_OAEP
rsa_oaep_hashRSA-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)以上に戻すことを忘れないでください。