10.4. トランスポートスタックの保護
TLS を使用した暗号化は、TCP ベースのトランスポートスタックでデフォルトで有効になっており、これがデフォルトの設定でもあります。TCP ベースのトランスポートスタックを使用している限り、追加の CLI オプションやキャッシュ XML の変更は必要ありません。
UDP
または TCP_NIO2
に基づくトランスポートスタックを使用している場合は、次の手順に従ってトランスポートスタックの暗号化を設定します。
-
オプション
cache-embedded-mtls-enabled
をfalse
に設定します。 - JGroups Encryption ドキュメント および クラスタートランスポートの暗号化 ドキュメントに従ってください。
TLS を有効にすると、Red Hat build of Keycloak は接続を保護するために自己署名 RSA 2048 ビット証明書を自動生成し、TLS 1.3 を使用して通信を保護します。キーと証明書はデータベースに保存されるため、すべてのノードで使用できます。デフォルトでは、証明書の有効期間は 60 日間で、30 日ごとに実行中にローテーションされます。これを変更するには、オプション cache-embedded-mtls-rotation-interval-days
を使用します。
10.4.1. サービスメッシュ内で実行 リンクのコピーリンクがクリップボードにコピーされました!
Istio のようなサービスメッシュを使用する場合、相互認証が機能するためには、Red Hat build of Keycloak の Pod 間における直接の mTLS 通信を許可する必要がある場合があります。そうしないと、間違った証明書が提示されたことを示す JGRP000006: failed accepting connection from peer SSLSocket
のようなエラーメッセージが表示される場合があり、クラスターは正しく形成されません。
次に、Red Hat build of Keycloak の Pod 間における直接の mTLS 通信を許可するか、サービスメッシュトランスポートセキュリティーに依存することで通信を暗号化してピアを認証するかを選択できます。
Istio を使用するときに Red Hat build of Keycloak に直接の mTLS 通信を許可するには、以下を実行します。
次の設定を適用して直接通信を許可します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
mTLS 通信を無効にし、サービスメッシュを使用してトラフィックを暗号化する場合は以下を実行します。
-
オプション
cache-embedded-mtls-enabled
をfalse
に設定します。 - データ転送ポート (デフォルト: 7800) に対して他の Red Hat build of Keycloak Pod からのトラフィックのみを許可するようにサービスメッシュを設定します。
10.4.2. 独自の鍵と証明書の指定 リンクのコピーリンクがクリップボードにコピーされました!
標準セットアップでは推奨されませんが、特定のセットアップで不可欠な場合は、トランスポートスタックの証明書を使用してキーストアを手動で設定できます。cache-embedded-mtls-key-store-file
は、キーストアへのパスを設定し、cache-embedded-mtls-key-store-password
は、復号化するためのパスワードを設定します。トラストストアに、接続を受け入れるための有効な証明書を格納します。トラストストアは、cache-embedded-mtls-trust-store-file
(トラストストアへのパス) と cache-embedded-mtls-trust-store-password
(それを復号するためのパスワード) を使用して設定できます。不正アクセスを制限するには、常に各 Red Hat build of Keycloak に自己署名証明書を使用します。