セキュリティ設定の管理
高いセキュリティ水準を満たすために、RapidMinerプラットフォームのデプロイ時のセキュリティ設定を慎重に選択しました。多くの場合、これらのデフォルト値は、(企業の)デプロイ環境に対応できるよう、また使いやすさとセキュリティの両者のバランスがとれるよう調整する必要があります。
以下に、デプロイメントのセキュリティに関する一般的なタスクを実行する方法を示します。
前提条件
以下で述べられている管理業務を行うには、適切なロールが付与されたユーザーでログインする必要があります。デフォルトの設定では、このロールはplatform-adminレルムロールが対応しており、最初に設定されているadminユーザーに割り当てられています。
ログインした後、デプロイメントのランディングページからIdentity and Securityに向かい、管理インタフェースにアクセスします。以下の全ての説明は、ログインし、すでにこのページにアクセスしている状態を想定しています。
パスワードセキュリティの管理
この機能を使用すると、パスワードの複雑さの要件や、パスワードのハッシュ化の設定、パスワードの有効期限ポリシーについて設定できます。
デフォルトでは、標準的なパスワードポリシーを設定しており、基本レベルのパスワードセキュリティが確保されています。パスワードは6文字以上が必要で、ユーザー名と同じにすることはできず、また一般的なパスワードのブラックリストに載っているものは使用できません。
新しいポリシーを追加するには、Authenticationに移動し、Password Policyタブをクリックします。
Add Policyドロップダウンメニューから、設定したいポリシーを選択し、値を設定します。例えば、パスワードの有効期間を一ヶ月に設定したい場合は、Expire Passwordを30に設定して追加します。
またポリシーは複数追加でき、各ポリシーは、パスワードを設定するときに適用されます。
注意:パスワードポリシーは、RapidMiner Identity and Securityによって管理されているユーザーにのみ適用されます。フェデレーションIDまたはフェデレーションユーザーデータベースの場合は、それぞれのシステムでパスワードポリシーを設定する必要があります。
二段階認証の設定
(Google認証システムまたはFreeOTPを用いた)二段階認証をサポートしています。デフォルトでは、オプションですべてのユーザーに対して使用可能なセキュリティ対策です。ユーザーは、自身のアカウントページで設定できます。
また、二段階認証を必須に設定することも可能で、その場合は初回ログイン時に設定が必要となります。
二段階認証を必須にするには、Authenticationに移動し、Required Actionsタブをクリックします。
Configure OTPの行のDefault Actionにチェックを入れます。
この設定はすぐに有効になり、すべての新規ユーザーには二段階認証の設定が必要になります。
トランスポートセキュリティ(HTTPS)の設定
テンプレートに基づいて初めてデプロイメントを実行すると、暗号化されていないHTTP通信を使用してサービスが起動します。これは、最初にデプロイメントを行う際のハードルを下げるためですが、長期間の開発/テストおよび本番環境では、ネットワーク上の暗号化を設定することを強くお勧めします。
前提条件として、管理者は信頼できる認証局から安全な証明書を入手する必要がありますが、それはこのドキュメントの範囲外です。デプロイメントにアクセスできるパブリックURLに対して証明書を発行する必要があり、証明書ファイル(完全な証明書チェーンを含む)と秘密鍵を用意します。
自己署名証明書または社内証明書(すなわち、信頼できる認証局によって署名されていない証明書)の使用は、そのままではサポートされていません。使用する証明書が認証局によって信頼されていない場合、各コンポーネントで証明書を信頼できる証明書の保管場所に追加しない限り、プラットフォームの各コンポーネントはそれを使用できません。
自己署名証明書または社内証明書を使用してRapidMinerプラットフォームを保護する必要がある場合は、サポートチームにご連絡ください。
RapidMinerプラットフォームで使用する証明書をインストールするには、以下を行います。
- デプロイメントを実行しているホストマシン上で、.crtと.keyファイルをdocker-compose.ymlがある階層のsslフォルダにコピーします。存在しない場合は、新規にフォルダを作成します。ファイル名はそれぞれ、certificate.crtとprivate.keyとしてください。証明書ファイルに完全な証明書チェーンが含まれていることを確認してください。
- openssl dhparam -out ssl/dhparam.pem 2048を実行して、dhparamファイルを生成します。マシンによっては、この処理に数分かかる場合があります。
- 好みのテキストエディタで.envファイルを編集し、PUBLIC_URLとPUBLIC_SSO_URLのhttp://をhttps://に書き換えてください。
- docker-compose up -dを実行してデプロイメントを更新します。
この手順が完了すると、プレーンHTTPでデプロイメントにアクセスすることができなくなります。80番ポートで接続しようとすると、自動的に443番ポートにリダイレクトされ、HTTPSベースの通信が行われます。
メールの設定
RapidMinerプラットフォームに統合されているKeyCloakコンポーネントは、SMTPサーバーを使用してメールを送信するように設定することができます。これは、ユーザー管理に関連するユースケースで必要となります。いくつかの例を以下に紹介します。
- 認証メールの送信が必要な、セルフサインアップの許可
- パスワードのリセットメールの送信
メールの設定を行うには、Realm SettingsのEmailタブをクリックします。
KeyCloakがメール送信に使用するSMTPサーバーの詳細を追加します。
上記の例を有効にし、セルフサービスによるユーザー管理を容易にしたい場合は、Loginタブに移動し、必要な機能を有効にしてください。
監査ログの確認
ログインイベントと管理者イベントの二つのイベントをログに記録して表示できます。RapidMinerプラットフォームのデプロイメントでは、両方ともデータベースに保存され、Identity and Securityインタフェースで照会/フィルタリングできるように構成されています。
ログインイベントとは、ユーザーのログイン、認証、認可に関連するさまざまな種類のイベントと、それらに関連するエラーのことです。
管理者イベントとは、KeyCloakの設定で行われる変更のことです。
これらのイベントを照会したりフィルタリングするには、Eventsにアクセスし、確認したい情報に応じてLogin EventsまたはAdmin Eventsタブをクリックします。
どのイベントをどのくらいの期間保存するか(ログインイベントの場合のみ)を設定するには、Configタブに移動します。
どのログインイベントを保存するかをカスタマイズすることができます(ログインイベントのいくつかは余計なもので、データベースをすぐにいっぱいにしてしまう可能性があります)。これを行うには、Saved Typesボックスにアイテムを追加または削除します。
イベントの保存期間をカスタマイズできます。Expirationフィールドに必要な値を設定します。
詳細については、KeyCloak administration guideの関連セクションを確認してください。
アクティブなセッションの確認とトークンの取り消し
デプロイメント内のどのコンポーネントが誰によって使用されているのかを確認するのは賢明なことです。
他者からの侵害が疑われる場合(ユーザーの認証情報が盗まれた疑いがある場合など)、現在のログインやトークンを無効にすることが賢明かもしれません。
進行中のセッションを確認するには、Sessionsにアクセスします。Realm Sessionsタブには、アクティブなセッションを持つすべてのレルムクライアント(すなわちデプロイメントコンポーネント)が表示されます。クライアントをクリックすると、どのユーザーがアクティブなセッションを持っているか、そのソースのIPアドレスなどの詳細なリストが表示されます。
すべてのセッションを終了するには、SessionsでLogout allボタンをクリックします。
盗まれた可能性のあるトークンを無効にするには、SessionsのRevocationタブをクリックします。Set to nowボタンをクリックすると、現在の時刻以前に発行されたトークンをすべて無効にすることができます。