.NETエージェントとAzure ARM

  • 更新

エージェントインストールガイド

概要

ここでは、Azure ARMテンプレートでContrastの.NET Frameworkおよび.NET Coreエージェントを使用する方法について紹介します。本項を参考にご利用の環境に合わせた方法で、アプリケーションにContrastエージェントをインストールし、必要に応じてチーム内で共有してください。

本項では主に、ARMテンプレートとAzureを使用した.NET(.NET Frameworkおよび.NET Core)アプリケーションにContrastエージェントを組み込み、Contrastでセキュリティデータを確認するための最も一般的な方法について説明します。

 

主な手順

  1. アプリケーションのARMテンプレートを更新
    • Contrastエージェント拡張機能を追加
    • アプリケーションの設定項目でContrastエージェントの設定を追加
  2. 更新したARMテンプレートでアプリケーションをデプロイ

サポート対象のテクノロジ

作業を開始する前に、.NET Frameworkや.NET Coreで利用中のツールや環境がContrastでサポートされていることを確認してください:
.NET Frameworkエージェントのサポート対象テクノロジ
.NET Coreエージェントのサポート対象テクノロジ

 

本項は以下を前提としております:

既知の問題

  • サイト拡張機能を設定するには、ARMポリシーを使用してAzure Portalから直接行うか、AzureのREST APIを使用して行うかのどちらかのみで可能です。本項で説明する方法はすべて、このいずれかを使用します。自動デプロイは、REST APIとAzure ARMポリシーのみで可能です。
  • Contrastのサイト拡張は、バックエンドのHTTPサービスのみで設定し、WebJobやApp Serviceでは設定しないでください。
  • 本項で説明する方法は、Dockerを使用してApp Serviceをデプロイする場合には機能しません。

手順

まず、アプリケーションのARMテンプレートを更新します。

 


1) Contrastの設定値を追加

Contrastエージェントの設定値は、Contrastから直接ダウンロードできます。まず、Contrast UIで「エージェントの追加」を選択して、表示される手順でエージェントの設定値を取得してください。以下のARMテンプレートで、< >の値をご利用の環境に合わせて編集してください。詳細は、Contrastのドキュメントを参照してください。 

.NET Coreの場合のContrastエージェントの設定:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "sites_name": {
          "defaultValue": "APP_NAME",
          "type": "String"
      }
  },
  "variables": {
  },
  "resources": [
      {
          "type": "Microsoft.Web/sites",
          "apiVersion": "2018-11-01",
          "name": "[parameters('sites_name')]",
          "location": "East US",
          "kind": "app",
          "properties": {
              "siteConfig": {
                  "appSettings": [
                      {
                          "name": "CONTRAST__API__API_KEY",
                          "value": "<CONTRAST__API__API_KEY>",
                          "slotSetting": false
                      },
                      {
                          "name": "CONTRAST__API__SERVICE_KEY",
                          "value": "<CONTRAST__API__SERVICE_KEY>",
                          "slotSetting": false
                      },
                      {
                          "name": "CONTRAST__API__URL",
                          "value": "<CONTRAST__API__URL>",
                          "slotSetting": false
                      },
                      {
                          "name": "CONTRAST__API__USER_NAME",
                          "value": "<CONTRAST__API__USER_NAME>",
                          "slotSetting": false
                      },
                      {
                           "name": "CORECLR_ENABLE_PROFILING",
                          "value": "1",
                          "slotSetting": false
                      },
                      {
                           "name": "CORECLR_PROFILER",
                           "value": "{8B2CE134-0948-48CA-A4B2-80DDAD9F5791}",
                          "slotSetting": false
                      },
                      {
                           "name": "CORECLR_PROFILER_PATH_32",
                           "value": D:\\home\\SiteExtensions\\Contrast.NetCore.Azure.SiteExtension\\ContrastNetCoreAppService\\contrast\\runtimes\\win-x86\\native\\ContrastProfiler.dll",
                          "slotSetting": false
                      },
                      {
                           "name": "CORECLR_PROFILER_PATH_64",
                           "value": D:\\home\\SiteExtensions\\Contrast.NetCore.Azure.SiteExtension\\ContrastNetCoreAppService\\\contrast\\runtimes\\win-x64\\native\\ContrastProfiler.dll",
                          "slotSetting": false
                      }
                  ]
              }
          },
          "resources": [
              {
                  "name": "Contrast.NetCore.Azure.SiteExtension",
                  "type": "siteextensions",
                  "apiVersion": "2018-02-01",
                  "dependsOn": [
                      "[resourceId('Microsoft.Web/Sites', parameters('sites_name'))]"
                  ]
              }
          ]
      }
  ]
}

.NET Frameworkの場合のContrastエージェントの設定:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "sites_name": {
          "defaultValue": "APP_NAME",
          "type": "String"
      }
  },
  "variables": {
  },
  "resources": [
      {
          "type": "Microsoft.Web/sites",
          "apiVersion": "2018-11-01",
          "name": "[parameters('sites_name')]",
          "location": "East US",
          "kind": "app",
          "properties": {
              "siteConfig": {
                  "appSettings": [
                      {
                          "name": "CONTRAST__API__API_KEY",
                          "value": "<CONTRAST__API__API_KEY>",
                          "slotSetting": false
                      },
                      {
                          "name": "CONTRAST__API__SERVICE_KEY",
                          "value": "<CONTRAST__API__SERVICE_KEY>",
                          "slotSetting": false
                      },
                      {
                          "name": "CONTRAST__API__URL",
                          "value": "<CONTRAST__API__URL>",
                          "slotSetting": false
                      },
                      {
                          "name": "CONTRAST__API__USER_NAME",
                          "value": "<CONTRAST__API__USER_NAME>",
                          "slotSetting": false
                      },
                      {
                           "name": "COR_ENABLE_PROFILING",
                          "value": "1",
                          "slotSetting": false
                      },
                      {
                           "name": "COR_PROFILER",
                           "value": "{EFEB8EE0-6D39-4347-A5FE-4D0C88BC5BC1}",
                          "slotSetting": false
                      },
                      {
                           "name": "COR_PROFILER_PATH_32",
                           "value": "D:\\home\\SiteExtensions\\Contrast.NET.Azure.SiteExtension\\ContrastAppService\\ContrastProfiler-32.dll",
                          "slotSetting": false
                      },
                      {
                           "name": "COR_PROFILER_PATH_64",
                           "value": "D:\\home\\SiteExtensions\\Contrast.NET.Azure.SiteExtension\\ContrastAppService\\ContrastProfiler-64.dll",
                          "slotSetting": false
                      }
                  ]
              }
          },
          "resources": [
              {
                   "name": "Contrast.NET.Azure.SiteExtension",
                  "type": "siteextensions",
                  "apiVersion": "2018-02-01",
                  "dependsOn": [
                      "[resourceId('Microsoft.Web/Sites', parameters('sites_name'))]"
                  ]
              }
          ]
      }
  ]
}

 

Contrast APIアクセスの設定

ARMテンプレートをさらに完全に自動化するには、ContrastのAPI認証情報にアクセスする必要があります。この認証情報は、(前述したように)Contrast UIからダウンロードしたcontrast_security.ymlファイルから、または組織の設定のAPIページから取得できます。

 

いずれかの方法で、以下の値を取得して確認してください。

設定オプション名                                              Contrastでのラベル



CONTRAST__API__API_KEY                 API キー



CONTRAST__API__URL Contrast        Contrast URL



CONTRAST__API__USER_NAME         エージェントユーザ名



CONTRAST__API__SERVICE_KEY       エージェントサービスキー


 


2) ARMテンプレートを使用してアプリケーションをデプロイ

Azureのドキュメントにある次の方法で、ARMテンプレートからアプリケーションをデプロイできます。

最初に、Contrastエージェントの認証情報を追加することから始めてください。

 

FAQ

1. テンプレートをデプロイした後、Contrastで自分のアプリケーションが表示されない場合、ログはどこで確認できますか?

アプリケーションが表示されない原因は複数考えられます。

  • Contrastエージェントがアプリケーションのプロセスで有効にされていないか、Contrastサーバと通信できない。Kuduサービスによるログが次の場所にあります:
    D:\home\LogFiles\Contrast
  • アプリケーションの設定で指定したグループに対する権限がない。Contrastの管理者に連絡しください。

この記事は役に立ちましたか?

0人中0人がこの記事が役に立ったと言っています

他にご質問がございましたら、リクエストを送信してください