第26章 クラスタートラフィックのセキュリティー


26.1. ノードの認証および承認 (リモートクライアントサーバーモード)

セキュリティーは SASL プロトコル経由でノードレベルで有効にすることができます。これにより、セキュリティーレルムに対するノードの認証が可能になります。この場合、ノードがクラスターに参加またはマージする際に相互に認証する必要があります。セキュリティーレルムについての詳細は、「セキュリティーレルム」 を参照してください。
以下の例は、<sasl /> 要素について説明しています。これは SASL プロトコルを利用します。現在、DIGEST-MD5 および GSSAPI の両方のメカニズムがサポートされています。

例26.1 SASL 認証の設定

<management>
    <security-realms>
        <!-- Additional configuration information here -->
        <security-realm name="ClusterRealm">
            <authentication>
                <properties path="cluster-users.properties" relative-to="jboss.server.config.dir"/>
                </authentication>
                <authorization>
                    <properties path="cluster-roles.properties" relative-to="jboss.server.config.dir"/>
                </authorization>
            </security-realm>
        </security-realms>
        <!-- Additional configuration information here -->
    </security-realms>
</management>

<stack name="udp">
    <!-- Additional configuration information here -->
    <sasl mech="DIGEST-MD5" security-realm="ClusterRealm" cluster-role="cluster">
        <property name="client_name">node1</property>
        <property name="client_password">password</property>
    </sasl>
    <!-- Additional configuration information here -->
</stack>
Copy to Clipboard Toggle word wrap
この例では、ノードは DIGEST-MD5 メカニズムを使用して ClusterRealm に対して認証しています。参加するノードには cluster ロールがなければなりません。
cluster-role 属性は、クラスターで JOIN または MERGE を実行するために、セキュリティーレルムですべてのノードが属する必要のあるロールを決定します。これが指定されない場合は、cluster-role 属性は、デフォルトでクラスター化された <cache-container> の名前になります。各ノードは、client-name プロパティーを使用して各自を識別します。何も指定されていない場合は、サーバーが実行されているホスト名が使用されます。
この名前は、コマンドラインで上書きできる jboss.node.name システムプロパティーを指定して上書きすることもできます。以下が例になります。
$ standalone.sh -Djboss.node.name=node001
Copy to Clipboard Toggle word wrap

注記

JGroups AUTH プロトコルはセキュリティーレルムに統合されておらず、その使用については Red Hat JBoss Data Grid で推奨されていません。

26.1.1. クラスターセキュリティーのノード認証の設定 (DIGEST-MD5)

以下の例では、クラスターノードの専用レルムで、プロパティーベースのセキュリティーレルムを使って DIGEST-MD5 を使用する方法を示しています。

例26.2 DIGEST-MD5 メカニズムの使用

<management>
         <security-realms>
             <security-realm name="ClusterRealm">
                 <authentication>
                     <properties path="cluster-users.properties" relative-to="jboss.server.config.dir"/>
                 </authentication>
                 <authorization>
                     <properties path="cluster-roles.properties" relative-to="jboss.server.config.dir"/>
                 </authorization>
             </security-realm>
         </security-realms>
</management>
<subsystem xmlns="urn:infinispan:server:jgroups:8.0" default-stack="${jboss.default.jgroups.stack:udp}">
     <stack name="udp">
         <transport type="UDP" socket-binding="jgroups-udp"/>
         <protocol type="PING"/>
         <protocol type="MERGE2"/>
         <protocol type="FD_SOCK" socket-binding="jgroups-udp-fd"/>
         <protocol type="FD_ALL"/>
         <protocol type="pbcast.NAKACK"/>
         <protocol type="UNICAST2"/>
         <protocol type="pbcast.STABLE"/>
         <protocol type="pbcast.GMS"/>
         <protocol type="UFC"/>
         <protocol type="MFC"/>
         <protocol type="FRAG2"/>
         <protocol type="RSVP"/>
         <sasl security-realm="ClusterRealm" mech="DIGEST-MD5">
             <property name="client_password>...</property>
         </sasl>
     </stack>
</subsystem>
<subsystem xmlns="urn:infinispan:server:core:8.3" default-cache-container="clustered">
     <cache-container name="clustered" default-cache="default">
         <transport executor="infinispan-transport" lock-timeout="60000" stack="udp"/>
         <!-- various clustered cache definitions here -->
     </cache-container>
</subsystem>
Copy to Clipboard Toggle word wrap
この例では、各種ノードのホスト名が node001node002node003 であると想定した場合に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>
Copy to Clipboard Toggle word wrap
ノードの MD5 パスワードハッシュも <sasl/> 要素の "client_password" プロパティーに置かれる必要があります。
<property name="client_password>...</property>
Copy to Clipboard Toggle word wrap

注記

セキュリティーのレベルを上げるには、このパスワードを 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 ログインモードの使用

<security-domain name="krb-node0" cache-type="default">
    <authentication>
        <login-module code="Kerberos" flag="required">
            <module-option name="storeKey" value="true"/>
            <module-option name="useKeyTab" value="true"/>
            <module-option name="refreshKrb5Config" value="true"/>
            <module-option name="principal" value="jgroups/node0/clustered@INFINISPAN.ORG"/>
            <module-option name="keyTab" value="${jboss.server.config.dir}/keytabs/jgroups_node0_clustered.keytab"/>
            <module-option name="doNotPrompt" value="true"/>
        </login-module>
    </authentication>
</security-domain>
Copy to Clipboard Toggle word wrap
以下のプロパティーは、参照できるように <sasl/> 要素に設定する必要があります。
<sasl <!-- Additional configuration information here --> >
     <property name="login_module_name">
     		<!-- Additional configuration information here -->
     </property>
</sasl>
Copy to Clipboard Toggle word wrap
結果として、ノードが Kerberos Domain Controller に対して検証されるため、セキュリティーレルムの authentication セクションは無視されます。authorization 設定は、ノードのプリンシパルが必要なクラスターロールに属するため、依然として必要になります。
いずれの場合も、管理を単純にするために、LDAP などの共有承認データベースをノードのメンバーシップを検証するために使用することをお勧めします。
デフォルトで、参加するノードのプリンシパルは以下の形式でなければなりません。
jgroups/$NODE_NAME/$CACHE_CONTAINER_NAME@REALM
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る