IBM Cloud のインストール

Next-Gen WAF エージェントは、IBM Cloud アプリケーションランタイムとともにデプロイできます。インストールのプロセスは、どの言語ビルドパックとも互換性があります。

これはCloud Foundry用のサプライビルドパックで、プラットフォームでサポートされているあらゆるプログラミング言語の Next-Gen WAF エージェントとの統合が可能となるため、アプリケーションコードを変更する必要がありません。

前提条件

エージェントにアクセスさせたいサイトのエージェントキーをコピーします。エージェントキーは、Next-Gen WAF エージェントパッケージを設定する際に使用します。

インストール

  1. アプリケーション開発者は、cf push コマンドを使用してビルドパックを指定する必要があります。

    $ cf push YOUR-APP -b https://github.com/signalsciences/sigsci-cloudfoundry-buildpack.git -b APP_BUILDPACK
  2. エージェントのアクセスキーとシークレットcf set-env コマンドを使用して設定します。your-application-name をアプリケーションの名前に置き換え、access-key-goes-heresecret-key-goes-here をエージェントキーに置き換えます。

    $ cf set-env your-application-name SIGSCI_ACCESSKEYID access-key-goes-here
    $ cf set-env your-application-name SIGSCI_SECRETACCESSKEY secret-key-goes-here
  3. cf push を通常どおりに実行し、アプリケーションをデプロイします。

追加の設定オプション

Next-Gen WAF エージェントは、cf コマンドを使用して環境変数で設定できます。OPTIONVALUEエージェント設定オプションとその値に置き換えます。

$ cf set-env your-application-name OPTION "VALUE"

これらの変更を有効にするには、少なくともアプリを再ステージングする必要があります。

$ cf restage your-application-name

サーバーのホスト名

アプリケーションをデプロイするたびに、IBM Cloud はエージェントに新しいランダムな名前を自動的に割り当てます。各デプロイごとにエージェント名を指定するには、SIGSCI_SERVER_HOSTNAME 環境変数を設定します。

$ cf set-env your-application-name SIGSCI_SERVER_HOSTNAME agent-name

リバースプロキシのアップストリーム

エージェントがリクエストをプロキシするアップストリームホストを定義するには、SIGSCI_REVERSE_PROXY_UPSTREAM オプションを使用します。ip:port はアップストリームホストのIPアドレスとポートに置き換えてください。この変数はオプションで、デフォルト値は 127.0.0.1:8081 です。

$ cf set-env your-application-name SIGSCI_REVERSE_PROXY_UPSTREAM ip:port

アクセスログ

エージェントのアクセスログ記録を有効にするには、SIGSCI_REVERSE_PROXY_ACCESSLOG 環境変数を設定します。

$ cf set-env your-application-name SIGSCI_REVERSE_PROXY_ACCESSLOG /tmp/sigsci_access.log

エージェントのバージョン

デフォルトでは、buildpackはNext-Gen WAFエージェントの最新バージョンをインストールします。インストールするエージェントのバージョンを指定するには、SIGSCI_AGENT_VERSION環境変数を設定し、version-numberをインストールする特定のバージョン番号に置き換えてください:

$ cf set-env <application name> SIGSCI_AGENT_VERSION version-number

ヘルスチェック

現在、IBM Cloud は Cloud Foundry にネイティブな HTTP ヘルスチェックをサポートしていません。Next-Gen WAF エージェントがまだ実行されている間にアプリケーションプロセスがクラッシュした場合、IBM Cloud はアプリケーションが異常な状態にあることを検出しない可能性があります。Signal Sciences Cloud Foundry インストーラースクリプトの最新リリースでは、アプリケーションプロセスが異常な状態にある場合にエージェントプロセスを停止するヘルスチェックを実装するように構成できます。

ヘルスチェックを有効化 / 設定する環境変数は2つあります。

ヘルスチェックを有効にするには、SIGSCI_HCtrue に設定します。

$ cf set-env your-application-name SIGSCI_HC true

ヘルスチェックを設定するには、SIGSCI_HC_CONFIG を使用します。この環境変数を設定しない場合、デフォルト設定が使用されます。

デフォルトの設定では、ヘルスチェックは次のように設定されています。

  • 5秒ごとに / パスを確認します。

  • エージェントリスナーが5回の連続チェックで 502 を返す場合、そのヘルスチェックは失敗です。

  • アプリケーションプロセスが3回の連続試行で 200 レスポンスを返さない場合、そのヘルスチェックは失敗です。

カスタムのヘルスチェック設定を指定するには、SIGSCI_HC_CONFIG の値は、: で区切られた複数のフィールドからなる文字列です。

SIGSCI_HC_CONFIG フィールド :

<frequency>:<endpoint>:<listener status>:<listener warning>:<upstream status>:<upstream warning>
フィールド説明
frequencyチェックを実行する秒単位の頻度 (例 : 5秒ごと)
endpointリスナーとアップストリームプロセスの両方をチェックするエンドポイント
listener status正常でなく、エージェントの停止をトリガーするステータスコード
listener warningエージェントの停止前にチェックが失敗できる回数
upstream status正常なステータスコード、その他のコードはエージェントの停止をトリガーする
upstream warningエージェントを停止する前にチェックが失敗できる回数

例えば、デフォルト設定は次のようになります。

5:/:502:5:200:3

カスタムヘルスチェック設定の例

この設定の例では、次の目的でヘルスチェックを設定します。

  • 10秒ごとに /health.html パスを確認します。

  • エージェントリスナーが10回の連続試行で 502 を返す場合、そのヘルスチェックは失敗です。

  • アプリケーションプロセスが5回の連続試行で 200 を返さない場合、そのヘルスチェックは失敗です。

10:/health.html:502:10:200:5

エージェントが必要です

デフォルトでは、インストーラースクリプトにより、Next-Gen WAF エージェントの起動に失敗した場合でもアプリケーションの起動が許可されます。Next-Gen WAF エージェントが保護していない状態でアプリケーションが起動しないようにするには、SIGSCI_REQUIRED 環境変数を使用します。

$ cf set-env your-application-name SIGSCI_REQUIRED true

追加の設定オプション

追加の設定オプションは、エージェント設定ページに記載されています。