AWS Elastic BeanstalkでJavaエージェントをインストール
本項での手順を使用して、Javaエージェントを設定し、AWS Elastic Beanstalkと連携させることができます。ContrastのJavaエージェントをダウンロードして、アプリケーションに組み込んで検査をするために、.ebextensions
ファイルをどのように作成するかを説明します。
ご利用の環境によっては、本項の手順をカスタマイズする必要があります。
この手順は、DevOpsの実践とDockerの仕組みに関して知識があるユーザを対象としています。
開始する前に
ご利用のJavaのツールや環境がContrastでサポートされていることを確認すること。
ContrastのJavaエージェントがContrastサーバに接続するための必要な情報があること。
ContrastのJavaエージェントをダウンロードして起動したことがあること。
カスタマイズした設定ファイル
.ebextensions
をインストールするためのBeanstalk環境へのアクセスがあること。
手順1:Contrast Javaエージェントをダウンロードする設定を指定
設定ファイル.ebextensions
のfilesセクションに、リモートURLからContrastエージェントをダウンロードするよう指定します。以下は、MavenリポジトリからContrastエージェントをダウンロードするための設定の例です。
files: "/opt/contrast/contrast.jar": mode: "000755" owner: rootCorporate rule group: root source: "https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.contrastsecurity&a=contrast-agent&v=LATEST"
Contrastエージェントは/opt/contrast
に置くことを推奨しますが、必要であれば別の場所を使用することもできます。内部リポジトリからエージェントをダウンロードするようにURLを変更することもできます。ビルド時に、希望のエージェントバージョンを指定して、Mavenリポジトリからダウンロードできます。
手順2:Contrastエージェントの設定ファイルを作成
Contrastエージェントの設定には、さまざまな値を使用できます。設定する値には有効になる優先順位があります。有効になる設定値は、以下の順序で決まります。
社内規定(例、ライセンスの期限切れによる無効化など)
システムプロパティ
環境変数
YAML設定ファイル
Contrast Webインターフェイスで設定されている値
Contrast Securityが設定したデフォルト値
エージェントの設定ファイルを作成する方法として、共通の設定とアプリケーション固有の設定を組み合わせて使用することをお勧めします。
共通の設定: 基本となる一連の設定をYAMLファイルに指定します。例:
ログをコンソール出力にリダイレクト
プロキシの設定(プロキシがある場合)
エージェントのアクティビティを制限するパフォーマンスチューニングオプション
以下は、
.ebextensions
設定ファイルの一例で、デプロイ時にContrastエージェントのYAMLファイルを作成し設定する方法を示します。files: "/var/contrast/contrast_security.yaml" : mode: "000755" owner: root group: root content: | api: proxy: url: https://host:port agent: java: scan_all_classes: false scan_all_code_sources: false logger: stdout: true
アプリケーション固有の設定:この方法によって、アプリケーションごとに追加のオプションを指定できます。以下の環境変数を使用します。
アプリケーションのメタデータ:アプリケーションに関連付けるユーザ定義のメタデータを指定
CONTRAST__APPLICATION__METADATA
アプリケーション名:Contrastサーバに報告されるアプリケーション名を指定
CONTRAST__APPLICATION_NAME
アプリケーションのセッションメタデータ:ビルド番号、バージョン、ハッシュなどの情報でセッションの新規作成時に使用されるメタデータを指定
CONTRAST__APPLICATION__SESSION_METADATA
注記
詳細については、セッションメタデータの設定をご覧ください。
アプリケーションのグループ:アプリケーションをContrastに追加した時に関連付ける、アプリケーションアクセスグループを指定。アプリケーションアクセスグループは、使用する前に先に作成しておく必要があります。
CONTRAST__APPLICATION__GROUP
サーバの環境:アプリケーションを実行する環境を指定。このオプションで有効な値:development、qa、 production
CONTRAST__SERVER__ENVIRONMENT
例1:環境の作成時に環境変数を設定する方法
eb create <environment name> --envvars CONTRAST__API__URL=https://app.contrastsecurity.com/Contrast,CONTRAST__API__API_KEY=<value>,CONTRAST__API__SERVICE_KEY=<value>,CONTRAST__API__USER_NAME=<value>,CONTRAST__SERVER__NAME=<value>,CONTRAST__SERVER__ENVIRONMENT=<value>
例 2:環境を作成した後に環境変数を設定する方法
eb setenv CONTRAST__API__URL=https://app.contrastsecurity.com/Contrast CONTRAST__API__API_KEY=<value> CONTRAST__API__SERVICE_KEY=<value> CONTRAST__API__USER_NAME=<value> CONTRAST__SERVER__NAME=<value> CONTRAST__SERVER__ENVIRONMENT=<value>
手順 3:JVMパラメータを更新
Javaアプリケーションにプロファイラをロードするために、アプリケーションに-javaagent
オプションを渡す必要があります。これを行うには、JAVA_TOOL_OPTIONS
環境変数を設定します。
これらの変数は、アプリケーション固有の環境変数を設定するのと同じ方法で設定します。以下の例に示すように、エージェントのJARファイルとYAML設定ファイルのパスを使用します。
eb setenv JAVA_TOOL_OPTIONS="-javaagent:/opt/contrast/contrast.jar -Dcontrast.config.path=/var/contrast/contrast_security.yaml"
手順4:.ebextensions
の設定を使用してアプリケーションをデプロイ
AWSでは、Beanstalkのカスタマイズ設定は、デプロイフォルダのルートの .ebextensionsフォルダ内に設定ファイルがあることが前提とされています。以下は、.ebextensions
フォルダを含むディレクトリ構成の例です。ContrastエージェントのダウンロードとYAML設定が含まれた contrast.config
ファイルがあります。
├── .ebextensions │ └── contrast.config └── application.jar