第26章 クラスタートラフィックのセキュリティー
26.1. ノードの認証および承認 (リモートクライアントサーバーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーは SASL プロトコル経由でノードレベルで有効にすることができます。これにより、セキュリティーレルムに対するノードの認証が可能になります。この場合、ノードがクラスターに参加またはマージする際に相互に認証する必要があります。セキュリティーレルムについての詳細は、「セキュリティーレルム」 を参照してください。
以下の例は、<sasl /> 要素について説明しています。これは SASL プロトコルを利用します。現在、
DIGEST-MD5 および GSSAPI の両方のメカニズムがサポートされています。
例26.1 SASL 認証の設定
この例では、ノードは
DIGEST-MD5 メカニズムを使用して ClusterRealm に対して認証しています。参加するノードには cluster ロールがなければなりません。
cluster-role 属性は、クラスターで JOIN または MERGE を実行するために、セキュリティーレルムですべてのノードが属する必要のあるロールを決定します。これが指定されない場合は、cluster-role 属性は、デフォルトでクラスター化された <cache-container> の名前になります。各ノードは、client-name プロパティーを使用して各自を識別します。何も指定されていない場合は、サーバーが実行されているホスト名が使用されます。
この名前は、コマンドラインで上書きできる
jboss.node.name システムプロパティーを指定して上書きすることもできます。以下が例になります。
standalone.sh -Djboss.node.name=node001
$ standalone.sh -Djboss.node.name=node001
注記
JGroups AUTH プロトコルはセキュリティーレルムに統合されておらず、その使用については Red Hat JBoss Data Grid で推奨されていません。
26.1.1. クラスターセキュリティーのノード認証の設定 (DIGEST-MD5) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、クラスターノードの専用レルムで、プロパティーベースのセキュリティーレルムを使って
DIGEST-MD5 を使用する方法を示しています。
例26.2 DIGEST-MD5 メカニズムの使用
この例では、各種ノードのホスト名が
node001、node002、node003 であると想定した場合にcluster-users.properties には以下が含まれます。
node001=/<node001passwordhash>/node002=/<node002passwordhash>/node003=/<node003passwordhash>/
cluster-roles.properties には以下が含まれます。
- node001=clustered
- node002=clustered
- node003=clustered
これらの値を生成するには、以下の
add-users.sh スクリプトを使用できます。
add-user.sh -up cluster-users.properties -gp cluster-roles.properties -r ClusterRealm -u node001 -g clustered -p <password>
$ add-user.sh -up cluster-users.properties -gp cluster-roles.properties -r ClusterRealm -u node001 -g clustered -p <password>
ノードの
MD5 パスワードハッシュも <sasl/> 要素の "client_password" プロパティーに置かれる必要があります。
<property name="client_password>...</property>
<property name="client_password>...</property>
注記
セキュリティーのレベルを上げるには、このパスワードを Vault を使って保管することをお勧めします。vault 式についての詳細は、『Red Hat Enterprise Application Platform Security Guide』 を参照してください。
ノードのセキュリティーが説明されている通りにセットアップされていると、クラスターコーディネーターは、ノードがクラスタービューの一部になる前に、それぞれの
JOIN および MERGE を実行するノードのクレデンシャルをレルムに対して検証します。
26.1.2. クラスターセキュリティーのノード認証の設定 (GSSAPI/Kerberos) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
GSSAPI メカニズムを使用する場合、client_name は、セキュリティードメインサブシステム内で定義される Kerberos で有効にされるログインモジュールの名前として使用されます。この実行方法についての詳細は、「Hot Rod 認証の設定 (GSSAPI/Kerberos)」 を参照してください。
例26.3 Kerberos ログインモードの使用
以下のプロパティーは、参照できるように <sasl/> 要素に設定する必要があります。
<sasl <!-- Additional configuration information here --> >
<property name="login_module_name">
<!-- Additional configuration information here -->
</property>
</sasl>
<sasl <!-- Additional configuration information here --> >
<property name="login_module_name">
<!-- Additional configuration information here -->
</property>
</sasl>
結果として、ノードが Kerberos Domain Controller に対して検証されるため、セキュリティーレルムの
authentication セクションは無視されます。authorization 設定は、ノードのプリンシパルが必要なクラスターロールに属するため、依然として必要になります。
いずれの場合も、管理を単純にするために、LDAP などの共有承認データベースをノードのメンバーシップを検証するために使用することをお勧めします。
デフォルトで、参加するノードのプリンシパルは以下の形式でなければなりません。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
jgroups/$NODE_NAME/$CACHE_CONTAINER_NAME@REALM
jgroups/$NODE_NAME/$CACHE_CONTAINER_NAME@REALM