10.15. コンテナーとしての Tang のデプロイ
tang
コンテナーイメージは、OpenShift Container Platform (OCP) クラスターまたは別の仮想マシンで実行する Clevis クライアントの Tang-server 復号化機能を提供します。
前提条件
-
podman
パッケージとその依存関係がシステムにインストールされている。 -
podman login registry.redhat.io
コマンドを使用してregistry.redhat.io
コンテナーカタログにログインしている。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。 - Clevis クライアントは、Tang サーバーを使用して、自動的にアンロックする LUKS で暗号化したボリュームを含むシステムにインストールされている。
手順
registry.redhat.io
レジストリーからtang
コンテナーイメージをプルします。# podman pull registry.redhat.io/rhel8/tang
コンテナーを実行し、そのポートを指定して Tang 鍵へのパスを指定します。上記の例では、
tang
コンテナーを実行し、ポート 7500 を指定し、/var/db/tang
ディレクトリーの Tang 鍵へのパスを示します。# podman run -d -p 7500:7500 -v tang-keys:/var/db/tang --name tang registry.redhat.io/rhel8/tang
Tang はデフォルトでポート 80 を使用しますが、Apache HTTP サーバーなどの他のサービスと共存する可能性があることに注意してください。
(必要に応じて) セキュリティーを強化する場合は、Tang 鍵を定期的にローテーションします。
tangd-rotate-keys
スクリプトを使用できます。以下に例を示します。# podman run --rm -v tang-keys:/var/db/tang registry.redhat.io/rhel8/tang tangd-rotate-keys -v -d /var/db/tang Rotated key 'rZAMKAseaXBe0rcKXL1hCCIq-DY.jwk' -> .'rZAMKAseaXBe0rcKXL1hCCIq-DY.jwk' Rotated key 'x1AIpc6WmnCU-CabD8_4q18vDuw.jwk' -> .'x1AIpc6WmnCU-CabD8_4q18vDuw.jwk' Created new key GrMMX_WfdqomIU_4RyjpcdlXb0E.jwk Created new key _dTTfn17sZZqVAp80u3ygFDHtjk.jwk Keys rotated successfully.
検証
Tang サーバーが存在しているために自動アンロック用に LUKS で暗号化したボリュームが含まれているシステムで、Clevis クライアントが Tang を使用してプレーンテキストのメッセージを暗号化および復号化できることを確認します。
# echo test | clevis encrypt tang '{"url":"http://localhost:7500"}' | clevis decrypt The advertisement contains the following signing keys: x1AIpc6WmnCU-CabD8_4q18vDuw Do you wish to trust these keys? [ynYN] y test
上記のコマンド例は、localhost URL で Tang サーバーが利用できる場合にその出力の最後に
テスト
文字列を示し、ポート 7500 経由で通信します。
関連情報
-
システム上の
podman(1)
、clevis(1)
、およびtang(8)
man ページ