6.3. Keylime verifier をコンテナーとしてデプロイする
Keylime verifier は、システム整合性の初期チェックと定期チェックを実行し、エージェントを使用した暗号化鍵のセキュアなブートストラップをサポートします。Keylime verifier は、ホスト上にバイナリーやパッケージがなくても、RPM 方式ではなくコンテナーとして設定できます。コンテナーとしてデプロイすることにより、Keylime コンポーネントの分離性、モジュール性、再現性が向上します。
コンテナーを起動すると、Keylime verifier がデフォルトの設定ファイルとともにデプロイされます。次の 1 つ以上の方法を使用して設定をカスタマイズできます。
- 設定ファイルを含むホストのディレクトリーをコンテナーにマウントします。
- コンテナーで環境変数を直接変更します。環境変数を変更すると、設定ファイルの値がオーバーライドされます。
前提条件
-
podmanパッケージとその依存関係がシステムにインストールされている。 オプション: Keylime が verifier からのデータを保存するデータベースにアクセスできます。次のデータベース管理システムのいずれかを使用できます。
- SQLite (デフォルト)
- PostgreSQL
- MySQL
- MariaDB
- 認証局からの有効な鍵と証明書がある。
手順
オプション: 設定ファイルにアクセスするには、
keylime-verifierパッケージをインストールします。このパッケージがなくてもコンテナーを設定することはできますが、パッケージに付属する設定ファイルを変更する方が簡単な場合があります。dnf install keylime-verifier
# dnf install keylime-verifierCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/keylime/verifier.conf.d/ディレクトリーに新しい.confファイル (例:/etc/keylime/verifier.conf.d/00-verifier-ip.conf) を作成し、次の内容を記述して、verifier をすべての使用可能な IP アドレスにバインドします。[verifier] ip = *
[verifier] ip = *Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
必要に応じて、
portオプションを使用して、verifier のポートをデフォルト値8881から変更することもできます。
-
必要に応じて、
オプション: エージェントのリスト用に verifier のデータベースを設定します。デフォルトの設定では、verifier の
/var/lib/keylime/cv_data.sqliteディレクトリーにある SQLite データベースを使用します。/etc/keylime/verifier.conf.d/ディレクトリーに次の内容の新しい.confファイル (/etc/keylime/verifier.conf.d/00-db-url.confなど) を作成することで、別のデータベースを定義できます。[verifier] database_url = <protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>
[verifier] database_url = <protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>は、データベースの URL (例:postgresql://verifier:UQ?nRNY9g7GZzN7@198.51.100.1/verifierdb) に置き換えます。使用する認証情報に、Keylime がデータベース構造を作成するための権限があることを確認してください。
verifier に証明書と鍵を追加します。Keylime にそれらを生成させることも、既存の鍵と証明書を使用することもできます。
-
デフォルトの
tls_dir =generateオプションを使用すると、Keylime は verifier、registrar、およびテナントの新しい証明書を/var/lib/keylime/cv_ca/ディレクトリーに生成します。 既存の鍵と証明書を設定にロードするには、verifier 設定でそれらの場所を定義します。Keylime プロセスの実行者である
keylimeユーザーが証明書にアクセスできる必要があります。/etc/keylime/verifier.conf.d/ディレクトリーに、次の内容の新しい.confファイル (/etc/keylime/verifier.conf.d/00-keys-and-certs.confなど) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記絶対パスを使用して、鍵と証明書の場所を定義します。また、相対パスは
tls_dirオプションで定義されたディレクトリーから解決されます。
-
デフォルトの
ファイアウォールでポートを開きます。
firewall-cmd --add-port 8881/tcp firewall-cmd --runtime-to-permanent
# firewall-cmd --add-port 8881/tcp # firewall-cmd --runtime-to-permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 別のポートを使用する場合は、
8881を.confファイルで定義されているポート番号に置き換えます。コンテナーを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
-pオプションは、ホスト上とコンテナー上のデフォルトポート8881を開きます。 -vオプションは、コンテナーへのディレクトリーのバインドマウントを作成します。-
Zオプションを指定すると、Podman がコンテンツにプライベート非共有ラベルを付けます。つまり、現在のコンテナーだけがプライベートボリュームを使用できます。
-
-
-dオプションは、コンテナーをデタッチしてバックグラウンドで実行します。 -
オプション
-e KEYLIME_VERIFIER_SERVER_KEY_PASSWORD=<passphrase1>は、サーバーの鍵のパスフレーズを定義します。 -
オプション
-e KEYLIME_VERIFIER_CLIENT_KEY_PASSWORD=<passphrase2>は、クライアントの鍵のパスフレーズを定義します。 -
オプション
-e KEYLIME_VERIFIER_<ENVIRONMENT_VARIABLE>=<value>を指定すると、環境変数で設定オプションをオーバーライドできます。複数のオプションを変更するには、環境変数ごとに-eオプションを個別に挿入します。環境変数とそのデフォルト値の完全なリストは、Keylime の環境変数 を参照してください。
-
検証
コンテナーが実行されていることを確認します。
podman ps -a
$ podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 80b6b9dbf57c registry.access.redhat.com/rhel9/keylime-verifier:latest keylime_verifier 14 seconds ago Up 14 seconds 0.0.0.0:8881->8881/tcp keylime-verifierCopy to Clipboard Copied! Toggle word wrap Toggle overflow