第3章 Fuse Console のセキュア化
Apache Karaf で Fuse Console をセキュアにするには、以下を行います。
AWS へのデプロイ時に Fuse Console のプロキシーサーブレットを無効化
スタンドアロン Fuse アプリケーションを Amazon Web Services (AWS) にデプロイする場合、
hawtio.disableProxy
システムプロパティーをtrue
に設定して、Fuse Console のプロキシーサーブレットを無効にする必要があります。注記Fuse Console のプロキシーサーブレットを無効にすると、Fuse Console の Connect タブが無効になり、Fuse Console から他の JVM に接続できなくなります。AWS に複数の Fuse アプリケーションをデプロイする場合は、アプリケーションごとに Fuse Console をデプロイする必要があります。
必要なプロトコルとして HTTPS を設定する
hawtio.http.strictTransportSecurity
プロパティーを使用すると、Web ブラウザーでセキュア HTTPS プロトコルを使用して Fuse Console にアクセスするよう要求できます。このプロパティーでは、HTTP を使用して Fuse Console へのアクセスを試みる Web ブラウザーは、要求を自動的に変換して HTTPS を使用する必要があることが指定されます。公開鍵を使用して応答をセキュアにする
特定の暗号の公開鍵を Fuse Console に関連付けし、偽造された証明書を使用した中間者攻撃のリスクを軽減するよう Web ブラウザーに要求すると、
hawtio.http.publicKeyPins
プロパティーを使用して HTTPS プロトコルをセキュアにすることができます。SSL/TLS セキュリティーを有効にする
SSL/TLS セキュリティーは、Fuse Console ではデフォルトで有効になっていません。Fuse Console で SSL/TLS セキュリティーを有効にして、ユーザー名およびパスワードのクレデンシャルをスヌーピングから保護することが推奨されます。
- Red Hat Single Sign On を実装する
ユーザーのアクセスを制御する
表4.1「Karaf スタンドアロンでのロールベースアクセス」に記載されているとおり、認証されたユーザーが実行できる操作はそのユーザーに割り当てられたロールによって異なります。
手順
HTTPS を必須のプロトコルとして設定するには、
$KARAF_HOME/etc/system.properties
ファイルのhawtio.http.strictTransportSecurity
プロパティーを以下の例のように設定します。hawtio.http.strictTransportSecurity = max-age=31536000; includeSubDomains; preload
公開鍵を使用して応答をセキュアにするには、
$KARAF_HOME/etc/system.properties
ファイルのhawtio.http.publicKeyPins
プロパティーを以下の例のように設定します。hawtio.http.publicKeyPins = pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains
(AWS のみにデプロイする場合) Fuse Console のプロキシーサーブレットを無効にするには、以下の例のように
$KARAF_HOME/etc/system.properties
ファイルでhawtio.disableProxy
プロパティーをtrue
に設定します。hawtio.disableProxy = true;
- SSL/TLS セキュリティーを有効にする方法の詳細は、Apache Karaf セキュリティーガイド の Enabling SSL/TLS for Undertow in an Apache Karaf container を参照してください。
- Red Hat Single Sign-On で Fuse Console をセキュアにする方法については、Red Hat Single Sign-on Securing Applications and Services Guide の Securing the Hawtio Administration Console セクションを参照してください。
以下の手順にしたがってユーザーロールを設定し、必要な Fuse Console 操作を実行できる権限をユーザーに付与します。
-
エディターで Red Hat Fuse
etc/users.properties
ファイルを開きます。 ユーザー名、パスワード、およびロールのエントリーを追加します。
たとえば、
etc/users.properties
ファイルの以下のエントリーは管理ユーザーを定義し、管理ロールを割り当てます。admin = secretpass,admin
- ファイルを保存します。
-
エディターで Red Hat Fuse
関連情報
-
hawtio.http.strictTransportSecurity
プロパティーの構文の説明は、HTTP Strict Transport Security (HSTS) 応答ヘッダーの説明ページを参照してください。 -
hawtio.http.publicKeyPins
プロパティーの構文や、Base64 でエンコードされた公開鍵の抽出方法の説明は、HTTP Public Key Pinning 応答ヘッダーの説明ページを参照してください。