第2章 Fuse Console のセキュア化
以下のセキュリティー機能の一部またはすべてを実装して、スタンドアロンデプロイメントの Fuse コンテナーをセキュアにすることができます。
2.1. 必要なプロトコルとして HTTPS を設定
hawtio.http.strictTransportSecurity
プロパティーを使用すると、Web ブラウザーでセキュア HTTPS プロトコルを使用して Fuse Console にアクセスするよう要求できます。このプロパティーでは、HTTP を使用して Fuse Console へのアクセスを試みる Web ブラウザーは、要求を自動的に変換して HTTPS を使用する必要があることが指定されます。
プロパティーの構文の説明は、HTTP Strict Transport Security (HSTS) 応答ヘッダーの説明ページを参照してください。
hawtio.http.strictTransportSecurity
プロパティーを以下の例のように設定します。
Karaf スタンドアロンの場合
以下の例のように、このプロパティーを
$KARAF_HOME/etc/system.properties
ファイルに設定します。hawtio.http.strictTransportSecurity = max-age=31536000; includeSubDomains; preload
JBoss EAP スタンドアロンの場合
以下の例のように、
$EAP_HOME/standalone/configuration/standalone*.xml
ファイルの system-properties セクションでこのプロパティーを設定します。<property name="hawtio.http.strictTransportSecurity" value="max-age=31536000; includeSubDomains; preload"/>
Spring Boot スタンドアロンの場合
このプロパティーを以下の例のように設定します。
public static void main(String[] args) { System.setProperty("hawtio.http.strictTransportSecurity", "max-age=31536000; includeSubDomains; preload"); SpringApplication.run(YourSpringBootApplication.class, args); }
2.2. 公開鍵を使用して応答をセキュアにする
特定の暗号の公開鍵を Fuse Console に関連付けし、偽造された証明書を使用した「中間者攻撃」のリスクを軽減するよう Web ブラウザーに要求すると、hawtio.http.publicKeyPins
プロパティーを使用して HTTPS プロトコルをセキュアにすることができます。
プロパティーの構文や、Base64 でエンコードされた公開鍵の抽出方法の説明は、HTTP Public Key Pinning 応答ヘッダーの説明ページを参照してください。
hawtio.http.publicKeyPins
プロパティーを以下の例のように設定します。
Karaf スタンドアロンの場合
以下の例のように、このプロパティーを
$KARAF_HOME/etc/system.properties
ファイルに設定します。hawtio.http.publicKeyPins = pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains
JBoss EAP スタンドアロンの場合
以下の例のように、
$EAP_HOME/standalone/configuration/standalone*.xml
ファイルの system-properties セクションでこのプロパティーを設定します。<property name="hawtio.http.publicKeyPins" value="pin-sha256=cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains"/>
Spring Boot スタンドアロンの場合
このプロパティーを以下の例のように設定します。
public static void main(String[] args) { System.setProperty("hawtio.http.publicKeyPins", "pin-sha256=cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains"); SpringApplication.run(YourSpringBootApplication.class, args); }
2.3. SSL/TLS セキュリティーの有効化 (Karaf のみ)
SSL/TLS セキュリティーは、Fuse Console ではデフォルトで有効になっていません。Fuse Console で SSL/TLS セキュリティーを有効にして、ユーザー名およびパスワードのクレデンシャルをスヌーピングから保護することが推奨されます。SSL/TLS セキュリティーを有効にする方法の詳細は、『Apache Karaf Security Guide』の「Enabling SSL/TLS for Undertow in an Apache Karaf container」を参照してください。
2.4. Red Hat Single Sign On (Karaf)
Red Hat Single Sign-On で Fuse Console をセキュアにする方法については、『Red Hat Single Sign-on Securing Applications and Services Guide』の「Securing the Hawtio Administration Console」セクションを参照してください。
2.5. ユーザーアクセスの制御 (Karaf のみ)
本リリースでは、Fuse Console のロールベースアクセス制御は Fuse on Karaf スタンドアロンのみで有効になっています。
表2.1「Karaf スタンドアロンでのロールベースアクセス」 に記載されているとおり、認証されたユーザーが実行できる操作はそのユーザーに割り当てられたロールによって異なります。
実行する必要のある Fuse Console 操作を実行するため、ユーザーに必要なユーザーロールの権限があることを確認してください。
ユーザーロールを設定するには、以下を行います。
-
エディターで Red Hat Fuse
etc/users.properties
ファイルを開きます。 ユーザー名、パスワード、およびロールのエントリーを追加します。
たとえば、
etc/users.properties
ファイルの以下のエントリーは管理ユーザーを定義し、管理ロールを割り当てます。admin = secretpass,admin
- ファイルを保存します。
操作 | admin | manager (マネージャー) | viewer |
---|---|---|---|
ログイン/ログアウト | 可能 | 可能 | 可能 |
ヘルプトピックの表示 | 可能 | 可能 | 可能 |
ユーザー設定の指定 | 可能 | 可能 | 可能 |
接続 | |||
リモートインテグレーションの検出および接続 | 可能 | 可能 | 可能 |
ローカルインテグレーションの検出および接続 | 可能 | 可能 | 可能 |
Camel | |||
実行中の Camel アプリケーションをすべて表示 | 可能 | 可能 | 可能 |
Camel コンテキストの開始、一時停止、再開、および削除 | 可能 | 可能 | |
メッセージの送信 | 可能 | 可能 | |
エンドポイントの追加 | 可能 | 可能 | |
ルート、ルート図、およびランタイム統計の表示 | 可能 | 可能 | 可能 |
ルートの起動と停止 | 可能 | 可能 | |
ルートの削除 | 可能 | 可能 | |
JMX | |||
属性値の変更 | 可能 | 可能 | |
タイムベースチャートで属性を選択および表示 | 可能 | 可能 | 可能 |
操作の表示 | 可能 | 可能 | 可能 |
OSGI | |||
バンドル、機能、パッケージ、サービス、サーバー、フレームワーク、および設定を表示 | 可能 | 可能 | 可能 |
バンドルの追加および削除 | 可能 | 可能 | |
設定の追加 | 可能 | 可能 | |
機能のインストールおよびアンインストール | 可能 | ||
Runtime | |||
システムプロパティー、メトリクス、およびスレッドの表示 | 可能 | 可能 | 可能 |
Logs | |||
ログの表示 | 可能 | 可能 | 可能 |
ロールベースアクセス制御の詳細は、『Deploying into Apache Karaf』を参照してください。