第3章 Realtime Decision Server for OpenShift のデプロイメントについての考慮事項

3.1. キースストアの設定

Realtime Decision Server for OpenShift には 2 つのキーストアが必要です。

  • https トラフィックの暗号化用に秘密鍵と公開鍵を提供する SSL キーストア
  • クラスターのノード間のネットワークトラフィックの暗号化用に秘密鍵と公開鍵を提供する JGroups キーストア

これらのキーストアは、アプリケーションが単一ノードの OpenShift インスタンスで http のみを使用する場合でも、Realtime Decision Server for OpenShift によって使用されることが予想されます。自己署名型の証明書はセキュアな通信を提供せず、これは内部テスト目的での使用が意図されている点に注意してください。

警告

実稼働環境では、SSL で暗号化された接続 (HTTPS) について認定認証局 (CA) から購入する独自の SSL 証明書を使用することが推奨されます。

自己署名型または販売されている SSL 証明書を使用してキーストアを作成する方法についての詳細は、「Generate a SSL Encryption Key and Certificate」を参照してください。

3.2. シークレットの生成

OpenShift は、シークレット というオブジェクトを使用してパスワードやキーストアなどの機密情報を保持します。詳細は、OpenShift ドキュメントの「Secrets」の章を参照してください。

Realtime Decision Server for OpenShift には、前述の 2 つのキーストアを保持するシークレットが必要です。これは、プロジェクト内のアプリケーションに対する必要な権限を提供します。

Java および JGroup キーストアファイルを使用してプロジェクトのシークレットを作成します。

$ oc create secret generic <rds-secret-name> --from-file=<jgroups.jceks> --from-file=<keystore.jks>

シークレットの生成後に、これをサービスアカウントに関連付けることができます。

3.3. サービスアカウントの作成

サービスアカウントを使用するユーザーは、特定のシークレットおよびロールをプロジェクトの名前空間にあるアプリケーションに関連付けることができます。これにより、必要なすべての特権を使って実行するために必要な権限がアプリケーションに設定されます。

  1. Realtime Decision Server for OpenShift デプロイメントに使用されるサービスアカウントを作成します。

    $ oc create serviceaccount <service-account-name>
  2. 表示 (view) ロールをサービスアカウントに追加します。これにより、サービスアカウントを使い、OpenShift のアプリケーションの名前空間にあるすべてのリソースを表示することができます。これは、クラスターの管理に必要となります。

    $ oc policy add-role-to-user view system:serviceaccount:<project-name>:<service-account-name>
  3. プロジェクト用に作成されたシークレットをサービスアカウントに追加します。

    $ oc secret add sa/<service-account-name> secret/<secret-name>