10.4.2. vhost ポリシーの作成
vhost ポリシーは、リモートホストからルーターに接続するユーザーの接続制限およびリソース制限を定義します。リモートホストごとに 1 つの vhost ポリシーを作成する必要があります。
前提条件
ルーターに対して vhost ポリシーを有効にする必要があります。詳細は、「vhost ポリシーの有効化」 を参照してください。
手順
vhost
セクションを追加し、メッセージングエンドポイントの接続およびメッセージのサイズ制限を定義します。接続制限は、vhost に接続されているすべてのユーザーに適用されます。これらの制限により、vhost を同時に接続できるユーザーの数を制御します。
vhost { hostname: example.com maxConnections: 10000 maxMessageSize: 500000 maxConnectionsPerUser: 100 maxConnectionsPerHost: 100 allowUnknownUser: true ... }
hostname
vhost (メッセージングエンドポイント) のリテラルホスト名または vhost ホスト名に一致するパターンのリテラルホスト名。この vhost ポリシーは、指定したホスト名に転送されるクライアント接続に適用されます。この名前は一意でなければなりません。ホスト名ごとに 1 つの vhost ポリシーのみを指定できます。
enableVhostNamePatterns
がtrue
に設定されている場合、ワイルドカードを使用してホスト名の範囲に一致するパターンを指定できます。詳細は、「vhost ポリシーホスト名パターン一致ルール」 を参照してください。maxConnections
- この vhost で許可されている同時クライアント接続のグローバル最大数デフォルトは 65535 です。
maxMessageSize
-
この vhost へのコネクションに対して許可される AMQP メッセージ転送の最大サイズ (バイト単位)。この制限は、ポリシーの
maxMessageSize
値を上書きし、vhost ユーザーグループの設定で上書きされる可能性があります。値が0
の場合は、この制限が無効になります。 maxConnectionsPerUser
- すべてのユーザーが許容される同時クライアント接続の最大数。デフォルトは 65535 です。
maxConnectionsPerHost
- すべてのリモートホスト (クライアントが接続しているホスト) に対して許可される同時クライアント接続の最大数。デフォルトは 65535 です。
allowUnknownUser
-
不明なユーザー (定義されたユーザーグループのメンバーであるユーザー) が vhost への接続を許可するかどうか。不明なユーザーは、
$default
ユーザーグループに割り当てられ、$default
設定を受け取ります。デフォルトはfalse
で、不明なユーザーには許可されないことを意味します。
vhost
セクションで、追加した接続設定の下に、group
エンティティーを追加して、リソース制限を定義します。ユーザーグループでリソース制限を定義します。ユーザーグループは、グループのメンバーがアクセス可能なメッセージングリソースを指定します。
以下の例は、admin、developer、および $default の 3 つのユーザーグループを示しています。
vhost { ... groups: { admin: { users: admin1, admin2 remoteHosts: 127.0.0.1, ::1 sources: * targets: * } developers: { users: dev1, dev2, dev3 remoteHosts: * sources: myqueue1, myqueue2 targets: myqueue1, myqueue2 } $default: { remoteHosts: * allowDynamicSource: true, allowAdminStatusUpdate: true, sources: myqueue1, myqueue2 targets: myqueue1, myqueue2 } } }
users
- このユーザーグループに認証されたユーザーの一覧。複数のユーザーを分離する場合はコンマで区切ります。ユーザーは 1 つの vhost ユーザーグループにしか属することができません。
remoteHosts
-
ユーザーが接続できるリモートホストの一覧。ホストには、ホスト名、IP アドレス、または IP アドレス範囲を指定できます。複数のホストを分離する場合はコンマで区切ります。すべてのリモートホストからアクセスを許可するには、ワイルドカード
*
を指定します。すべてのリモートホストからアクセスを拒否するには、この属性を空白のままにします。 maxConnectionsPerUser
-
このユーザーグループでユーザーが作成できる接続の最大数。この値が指定されている場合には、vhost
maxConnectionsPerUser
の値が上書きされます。 maxConnectionsPerHost
-
許可されたリモートホストからこのユーザーグループのユーザーによって作成できる同時接続の最大数。この値が指定されている場合には、vhost
maxConnectionsPerUser
の値が上書きされます。 maxMessageSize
-
このグループのユーザーが作成したコネクションに許可される AMQP メッセージ転送の最大サイズ (バイト単位)。この制限により、ポリシーと vhost
maxMessageSize
の値が上書きされます。値が0
の場合は、この制限が無効になります。 allowDynamicSource
-
true
の場合、このグループのユーザーからの接続は受信側を動的ソースに割り当てることができます。これにより、リスナーが一時的なアドレスまたは一時キューに作成できるようになります。false
の場合、動的ソースの使用は許可されません。 allowAdminStatusUpdate
-
true
の場合、このグループのユーザーからの接続は、接続のadminStatus
を変更することが許可されます。これにより、送信者またはレシーバー接続の終了が許可されます。false
の場合、このグループのユーザーは、接続を終了できなくなります。ルーター間接続はどのユーザーでも終了できません。ポリシーが設定されていない場合でも、デフォルトはtrue
になります。 allowWaypointLinks
-
true
の場合、このグループ内のユーザーからの接続は、ポイントポイント機能を使ってリンクを割り当てることができます。これにより、エンドポイントが自動リンクを設定する必要なく、ポイント (ブローカー) として機能できるようになります。false
の場合は、ポイント機能の使用が許可されません。 allowDynamicLinkRoutes
-
true
の場合、このグループのユーザーからの接続は、接続スコープのリンクルートの宛先を動的に作成できます。これにより、エンドポイントはリンクルートの設定を必要とせずに、リンクルートの宛先 (ブローカー) として機能できます。false
の場合、動的リンクルートの宛先の作成は許可されません。 allowFallbackLinks
-
true
の場合、このグループのユーザーからの接続は、フォールバックリンク機能を使用してリンクを割り当てることができます。これにより、エンドポイントはフォールバックが有効にされているアドレスのフォールバック宛先 (およびソース) として動作します。false
の場合は、フォールバックリンク機能の使用は許可されません。 sources
|sourcePattern
このグループのユーザーがメッセージを受信する AMQP ソースアドレスのリスト。
sources
を使用して、1 つ以上のリテラルアドレスを指定します。複数のアドレスを指定するには、コンマ区切りリストを使用します。このグループのユーザーが任意のアドレスからメッセージを受信しないようにするには、この属性を空白のままにしておきます。特定のユーザー固有のアドレスへのアクセスを許可するには、${user}
トークンを指定します。詳細は、「vhost ポリシーのソースおよびターゲットアドレスを指定する方法」 を参照してください。または、
sourcePattern
を使用して、パターンに対応する 1 つ以上のアドレスと一致させることもできます。パターンは、.
または/
のいずれかで区切られた単語シーケンスです。ワイルドカード文字を使用して単語を表すことができます。*
文字は 1 つの単語にマッチし、#
文字はゼロ以上の単語のシーケンスと一致します。複数のアドレス範囲を指定するには、アドレスパターンのコンマ区切りリストを使用します。詳細は、「アドレスパターンの一致」 を参照してください。特定のユーザーに固有の範囲へのアクセスを許可するには、
${user}
トークンを指定します。詳細は、「vhost ポリシーのソースおよびターゲットアドレスを指定する方法」 を参照してください。targets
|targetPattern
- このグループのユーザーがメッセージを送信できる AMQP ターゲットアドレスのリスト。複数の AMQP アドレスを指定し、ユーザー名の置換とアドレスパターンをソースアドレスと同じように使用できます。
必要な場合は、vhost ユーザーグループに高度なユーザーグループ設定を追加します。
高度なユーザーグループ設定では、AMQP コネクションのオープン、セッション開始、および接続のリンクアタッチフェーズに基づいて、リソース制限を定義できます。詳細は、man ページの
qdrouterd.conf
で vhost を参照してください。