コンテナを使用して.NET Coreエージェントをインストール
インストールを行う前に
本項では、Dockerを例として、コンテナ化されたアプリケーションにContrast .NET Coreエージェントをインストールするための一般的な手順について説明します。
コンテナや関連ソフトウェアの仕組みを基本的に理解している必要があります。必要に応じて、お客様の環境に合わせて手順を調整してください。
Kubernetesを使用している場合は、エージェントオペレータを使用してエージェントを設定することを検討してください。
手順 1:エージェントをインストール
Contrastエージェントは、アプリケーションをコンテナイメージに追加する前または後のどちらでも追加できます。推奨される方法は、名前を付けたマルチステージビルドを使用することです。例:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 # Hidden for brevity... # Copy the required agent files from the official Contrast agent image. COPY --from=contrast/agent-dotnet-core:latest /contrast /contrast
この例では、最新の.NET Coreエージェントを使用します(利用可能なタグはDockerHubで確認してください)。
手順 2:エージェントを設定
Contrastエージェントは、複数のソースからの設定を受け入れますが、設定の優先順位は優先順位セクションに記載されています。
設定方法を組み合わせて利用することをお勧めします。
YAMLファイルを使用して、複数のアプリケーションで共有する共通の設定を指定します。
アプリケーション固有の設定値や、YAMLファイルで指定した値を上書きする場合や、実行時に組み込む機密情報などには、環境変数を使用します。
YAMLファイルの設定:
YAMLファイルを使用してエージェントを設定する場合に、環境変数のCONTRAST_CONFIG_PATH
を使用して、YAMLファイルがコンテナ内のどこにあるかを指定することもできます。
例えば、contrast_security.yaml
という名前のYAML設定ファイルがDockerのビルドコンテキストに存在するとします。
環境変数CONTRAST_CONFIG_PATH
を使用して、YAMLファイルの場所を指定することもできます。
agent: logger: path: /var/tmp level: WARN
YAMLファイルは、以下のようにコンテナイメージに追加することができます。
FROM mcr.microsoft.com/dotnet/aspnet:6.0 # Hidden for brevity... # Add the Contrast agent to the image. COPY --from=contrast/agent-dotnet-core:latest /contrast /contrast # Copy the contrast_security.yaml file from Docker build context. COPY ./contrast_security.yaml /contrast_security.yaml # Finally configure the agent to use the YAML file previously copied. ENV CONTRAST_CONFIG_PATH=/contrast_security.yaml
環境変数の設定:
アプリケーション固有の設定を指定するには、環境変数を使用します。以下は、一般的によく使用される設定オプションです。
項目 | 用途 | 環境変数 |
---|---|---|
アプリケーション名 | Contrastサーバに報告されるアプリケーション名を指定します。 | CONTRAST__APPLICATION__NAME |
アプリケーショングループ | オンボード時にこのアプリケーションと関連付けるアクセスグループを指定します。 注記アプリケーションのアクセスグループは、先にContrastで作成しておく必要があります。 | CONTRAST__APPLICATION__GROUP |
アプリケーションのタグ | アプリケーションにタグを追加します。 | CONTRAST__APPLICATION__TAGS |
サーバ名 | Contrastに報告されるサーバ名を指定します。 | CONTRAST__SERVER__NAME |
サーバの環境 | アプリケーションを実行する環境を指定します。このオプションで有効な値:Development、QA、Production | CONTRAST__SERVER__ENVIRONMENT |
サーバのタグ | サーバにタグを追加します。 | CONTRAST__SERVER__TAG |
手順3:プロファイル変数と認証情報を追加
アプリケーションに.NETエージェントを組み込んで検査を行うには、さらに環境変数が必要です。CORECLR_
変数はエージェントをロードし、CONTRAST_
変数はContrastサーバに対するエージェントの認証用です。
前述のDockerfileの例を使用すると、以下のようになります。
x64
FROM mcr.microsoft.com/dotnet/aspnet:6.0 # Hidden for brevity... COPY --from=contrast/agent-dotnet-core:latest /contrast /contrast # Required variables to load the agent. ENV CORECLR_PROFILER_PATH_64=/contrast/runtimes/linux-x64/native/ContrastProfiler.so \ CORECLR_ENABLE_PROFILING=1 \ CORECLR_PROFILER={8B2CE134-0948-48CA-A4B2-80DDAD9F5791}
ARM64
FROM mcr.microsoft.com/dotnet/aspnet:6.0 # Hidden for brevity... COPY --from=contrast/agent-dotnet-core:latest /contrast /contrast # Required variables to load the agent. ENV CORECLR_PROFILER_PATH_64=/contrast/runtimes/linux-arm64 /native/ContrastProfiler.so \ CORECLR_ENABLE_PROFILING=1 \ CORECLR_PROFILER={8B2CE134-0948-48CA-A4B2-80DDAD9F5791}
サーバへのエージェントの認証には、以下の環境変数にAPIの値を設定する必要があります。
CONTRAST__API__URL=https://app.contrastsecurity.com/Contrast CONTRAST__API__API_KEY={Your API KEY here} CONTRAST__API__SERVICE_KEY={Your Service key here} CONTRAST__API__USER_NAME={Your agent username here}
APIの値(エージェントキー)はContrast Webインターフェイスで確認するか、.NET Coreエージェント用のYAMLファイルをダウンロードすることで取得できます。
重要
API_KEY、SERVICE_KEY
、USER_NAME
の各キーは、機密データとなりますので、取り扱いにはご注意ください。Contrastでは、これらのデータは、シークレットストア(例:Kubernetes Secretなど)から実行時に取り込むことをお勧めします。
手順4:アプリケーションを検査
これで、Contrastを有効にしてアプリケーションイメージを実行できます。アプリケーションの起動時にContrastエージェントが組み込まれて解析が始まり、Contrastサーバに脆弱性が報告されます。Contrastが実行されているかを確認するには、コンテナをチェックしてください。