9.3. 発信接続のセキュリティー保護
外部 AMQP コンテナー (メッセージブローカーなど) への接続を作成するようにルーターが設定されている場合、以下の方法を使用して接続をセキュリティー保護することができます。
9.3.1. 一方向 SSL/TLS 認証を使用した接続
一方向 SSL/TLS を使用して、外部 AMQP コンテナー (ブローカーなど) に接続できます。この方法では、ルーターは外部 AMQP コンテナーのサーバー証明書を検証し、そのアイデンティティーを検証します。
手順
-
/etc/qpid-dispatch/qdrouterd.conf
設定ファイルを開きます。 外部 AMQP コンテナーのアイデンティティーの検証に使用できる証明書を定義する
sslProfile
が含まれていない場合は、これを追加します。sslProfile { name: broker-tls caCertFile: /etc/qpid-dispatch-certs/ca.crt ... }
name
-
この
sslProfile
の参照に使用できる一意の名前。 caCertFile
- 外部 AMQP コンテナーのアイデンティティーの検証に使用される CA 証明書への絶対パス。
SSL/TLS を使用して、SSL ハンドシェイク中にブローカーによって受信されたサーバー証明書を検証するために、この接続で
connector
を設定します。この例では、
connector
をブローカーに設定します。ルーターはブローカーに接続すると、broker-tls
sslProfile
に定義された CA 証明書を使用して、ブローカーから受け取ったサーバー証明書を検証します。connector { host: 192.0.2.1 port: 5672 role: route-container sslProfile: broker-tls ... }
sslProfile
-
外部 AMQP コンテナーのアイデンティティーの検証に使用する証明書を定義する
sslProfile
の名前。
9.3.2. 相互 SSL/TLS 認証を使用した接続
相互 SSL/TLS 認証を使用して、外部 AMQP コンテナー (ブローカーなど) に接続できます。この方法では、クライアントとして動作するルーターは、ルーターの ID を検証できるように外部の AMQP コンテナーに証明書を提供します。
前提条件
- ルーターには X.509 認証局 (CA) が存在している必要があります。
- セキュリティー証明書はルーター用に生成され、CA によって署名される必要があります。
手順
-
/etc/qpid-dispatch/qdrouterd.conf
設定ファイルを開きます。 ルーターに、外部の AMQP コンテナーに接続するための秘密鍵と証明書を定義する
sslProfile
が含まれていない場合は、これを追加します。この
sslProfile
には、ルーターがピアとの認証に使用する秘密鍵と証明書の場所が含まれます。sslProfile { name: broker-tls certFile: /etc/pki/tls/certs/tls.crt caCertFile: /etc/pki/tls/certs/ca.crt privateKeyFile: /etc/pki/tls/private/tls.key password: file:/etc/pki/tls/private/password.txt ... }
name
-
この
sslProfile
の参照に使用できる一意の名前。 certFile
- このルーターのパブリック証明書を含むファイルへの絶対パス。
caCertFile
- ルーターが受信クライアントの認証に使用する CA 証明書への絶対パス。
privateKeyFile
このルーターのパブリック証明書に対する秘密鍵が含まれるファイルへの絶対パス。
注記qdrouterd
または root ユーザーが秘密鍵にアクセスできることを確認します。以下は例になります。chmod 0600 /etc/pki/tls/private/tls.key chown qdrouterd /etc/pki/tls/private/tls.key
パスワード
証明書キーのロックを解除するパスワード。証明書キーにパスワードがない場合は、指定する必要はありません。異なる接頭辞を使用することで、セキュリティー要件に応じてパスワードを複数回指定できます。
パスワードを含むファイルへの絶対パスを指定します。これは、パスワードを含むファイルにパーミッションを設定することができるため、最も安全なオプションです。以下は例になります。
password: file:/etc/qpid-dispatch-certs/inter-router/password.txt
パスワードを保存する環境変数を指定します。他のプロセスの環境は特定のプラットフォームで表示されるため、このオプションの使用には注意が必要です。以下は例になります。
password: env:CERT_PASSWORD
パスワードをクリアテキストで指定します。このオプションは安全ではないため、セキュリティーが懸念されていない場合にのみ使用してください。以下は例になります。
password: pass:mycertpassword
作成した
sslProfile
を使用するように、このコネクションのconnector
を設定します。connector { host: 192.0.2.1 port: 5672 role: route-container sslProfile: broker-tls saslMechanisms: EXTERNAL ... }
sslProfile
-
SSL/TLS プライベートキーおよびルーター間ネットワークの証明書を定義する
sslProfile
の名前。
9.3.3. ユーザー名とパスワード認証を使用した接続
SASL PLAIN メカニズムを使用すると、ユーザー名とパスワードを必要とする外部 AMQP コンテナーに接続できます。このメソッドは独自に使用することも、SSL/TLS 暗号化と組み合わせることもできます。
前提条件
cyrus-sasl-plain
プラグインがインストールされている。Cyrus SASL は、プラグインを使用して特定の SASL メカニズムをサポートします。特定の SASL メカニズムを使用する前に、関連するプラグインをインストールする必要があります。
Red Hat Enterprise Linux の Cyrus SASL プラグインのリストを表示するには、
yum search cyrus-sasl
コマンドを使用します。Cyrus SASL プラグインをインストールするには、yum install <plugin>
コマンドを使用します。
手順
-
/etc/qpid-dispatch/qdrouterd.conf
設定ファイルを開きます。 このコネクションが、外部 AMQP コンテナーに対してユーザー名とパスワードのクレデンシャルを提供するように
connector
を設定します。connector { host: 192.0.2.1 port: 5672 role: route-container saslMechanisms: PLAIN saslUsername: user saslPassword: file:/path/to/file/password.txt }
saslPassword
ピアに接続するためのパスワード。異なる接頭辞を使用することで、セキュリティー要件に応じてパスワードを複数回指定できます。
パスワードを含むファイルへの絶対パスを指定します。これは、パスワードを含むファイルにパーミッションを設定することができるため、最も安全なオプションです。以下は例になります。
password: file:/path/to/file/password.txt
パスワードを保存する環境変数を指定します。他のプロセスの環境は特定のプラットフォームで表示されるため、このオプションの使用には注意が必要です。以下は例になります。
password: env:PASSWORD
パスワードをクリアテキストで指定します。このオプションは安全ではないため、セキュリティーが懸念されていない場合にのみ使用してください。以下は例になります。
password: pass:mypassword