Skip to main content

コンテナを使用して.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_KEYUSER_NAMEの各キーは、機密データとなりますので、取り扱いにはご注意ください。Contrastでは、これらのデータは、シークレットストア(例:Kubernetes Secretなど)から実行時に取り込むことをお勧めします。

手順4:アプリケーションを検査

これで、Contrastを有効にしてアプリケーションイメージを実行できます。アプリケーションの起動時にContrastエージェントが組み込まれて解析が始まり、Contrastサーバに脆弱性が報告されます。Contrastが実行されているかを確認するには、コンテナをチェックしてください。