9.17. Tang をコンテナーとしてデプロイする
tang コンテナーイメージは、Red Hat OpenShift Container Platform (OCP) クラスターまたは別の仮想マシンで実行される Clevis クライアントに、Tang サーバーの復号機能を提供します。
前提条件
-
podmanパッケージとその依存関係がシステムにインストールされている。 -
podman login registry.redhat.ioコマンドを使用してregistry.redhat.ioコンテナーカタログにログインしている。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。 - Clevis クライアントは、Tang サーバーを使用して、自動的にアンロックする LUKS で暗号化したボリュームを含むシステムにインストールされている。
手順
registry.redhat.ioレジストリーからtangコンテナーイメージをプルします。# podman pull registry.redhat.io/rhel10/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/rhel10/tangTang はデフォルトでポート 80 を使用しますが、これは Apache HTTP サーバーなどの他のサービスと競合する可能性があることに注意してください。
オプション: セキュリティーを強化する場合は、Tang 鍵を定期的にローテーションします。
tangd-rotate-keysスクリプトを使用できます。以下に例を示します。# podman run --rm -v tang-keys:/var/db/tang registry.redhat.io/rhel10/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 testTang サーバーが localhost URL で使用可能であり、かつポート 7500 を介して通信していれば、上記の例のコマンドにより、出力の最後に
testという文字列が表示されます。