エージェントインストールガイド
概要
ここでは、Azure ARMテンプレートでContrastの.NET Frameworkおよび.NET Coreエージェントを使用する方法について紹介します。本項を参考にご利用の環境に合わせた方法で、アプリケーションにContrastエージェントをインストールし、必要に応じてチーム内で共有してください。
本項では主に、ARMテンプレートとAzureを使用した.NET(.NET Frameworkおよび.NET Core)アプリケーションにContrastエージェントを組み込み、Contrastでセキュリティデータを確認するための最も一般的な方法について説明します。
主な手順
- アプリケーションのARMテンプレートを更新
- Contrastエージェント拡張機能を追加
- アプリケーションの設定項目でContrastエージェントの設定を追加
- 更新した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人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください