Deployment Support


デフォルトでは、Splunk AppDynamics .NET エージェントは、コントローラに組織が特権情報として分類する可能性のあるトランザクションデータを送信します。このデータは診断およびトラブルシューティングに役立ちますが、セキュリティを考慮すると、コントローラのビューから特定の情報をフィルタ処理する必要があります。機密データフィルタを使用すると、コントローラ内の環境変数や URL、またはスナップショットの詳細情報を除外することができます。 

機密データフィルタは、.NET Windows および Linux エージェント(21.4 以降)で使用できます。 

機密データフィルタを追加する

機密データフィルタをインストゥルメント化するには、.NET エージェント コンフィギュレーション ファイルを編集します。詳細については、.NETエージェントの管理を参照してください。 

  1. バージョン管理されたエージェント コンフィギュレーション ファイルを編集します。
    • 完全な .NET エージェント:config.xml
    • スタンドアロンエージェント:config.json 
  2. 次のいずれかの属性を使用して、sensitive-data-filter 要素を機密データフィルタ要素の子として追加します。

    <!-- Filter environment variable values sent to controller -->
    <sensitive-data-filters>
      <sensitive-data-filter applies-to="environment-variables,system-properties,http-headers,http-cookies" match-type="EQUALS|CONTAINS|STARTSWITH|ENDSWITH" match-pattern=""/>
    </sensitive-data-filters>
    XML

    機密データフィルタの属性:

    • environment-variablessystem-properties またはデータコレクタ(http-headers http-cookies)をフィルタ処理するには、applies-to 属性にカンマ区切りのリストを指定します。

    • match-type 属性を次のように設定します。

      EQUALS

      CONTAINS

      STARTSWITH

      ENDSWITH

    • match-pattern 属性と照合する文字列を指定します。文字列の一致では、大文字と小文字が区別されません。パターンは、値ではなく、環境変数とシステムプロパティ名と照合します。

  3. .NET エージェントとアプリケーションを再起動します。 

次の例では、.NET エージェントは文字列「DB_」で始まる環境変数をチェックします。コントローラには、一致する環境変数とシステムプロパティの値がアスタリスクとして表示されます。たとえば、環境変数 DB_USER は難読化され、コントローラでアスタリスクに置き換えられます。

config.xml ファイルの例:

</sensitive-data-filters>
  <sensitive-data-filter applies-to="environment-variables,system-properties" match-type="STARTSWITH" match-pattern="DB_"/>
</sensitive-data-filters>
XML

config.json ファイルの例:

sensitive-data-filters: [
{
"applies-to": "environment-variables, system-properties",
"match-type": "STARTSWITH",
"match-pattern": "DB_"
}
]
JSON

機密 URL フィルタを追加する

機密 URL フィルタを使用して、コントローラの URL で機密情報を難読化するようにエージェントを構成できます。

機密 URL フィルタをインストゥルメント化するには、.NET エージェント コンフィギュレーション ファイルを編集します。「.NETエージェントの管理」を参照してください。 

  1. バージョン管理されたエージェント コンフィギュレーション ファイルを編集します。
    • 完全な .NET エージェント:config.xml
    • スタンドアロンエージェント:config.json 
  2. sensitive-url-filters 要素に属性を追加します。

    <sensitive-url-filters>
    	<sensitive-url-filter delimiter="" 
    					  segment="" 
    					  match-filter=“EQUALS|INLIST|STARTSWITH|ENDSWITH|CONTAINS|REGEX|NOT_EMPTY" 
    					  match-pattern="pattern" 
    					  param-pattern=""/>
    </sensitive-url-filters>
    XML

    機密 URL フィルタの属性:

    • delimiter:URL セグメントのエンドポイントとして使用する文字を指定してください。エージェントは各区切り文字インスタンスでURLを接続してセグメントを作成します。HTTP の場合は、スラッシュ文字 "/" を使用してください。スラッシュの場合、エージェントはプロトコル直後のスラッシュでは分割しません。たとえば、"https://myapp.example.com/" は 1 つのセグメントを構成します。デフォルトでは、区切り文字は「/」です。
    • segment:エージェントがフィルタ処理するセグメントを指定するには、カンマ区切りのリストを指定します。セグメント番号は 1 から始まります。 
    • match-patternmatch-filter でフィルタ処理する文字列を指定します。

    • param-pattern:フィルタ処理するクエリパラメータに一致する正規表現を指定します。

たとえば、次の構成は URL を「/」文字で分割し、URL の 2 番目のセグメントと 3 番目のセグメントの param-pattern をマスクします。この場合、セグメンテーションと難読化は "myapp" を含む URL にのみ適用されます。

<!-- Filter URL/URI segments and query parameters -->
<sensitive-url-filters>
	<sensitive-url-filter delimiter="/" segment="2" match-filter="CONTAINS" match-pattern="myapp" param-pattern="[a-z]+"/>
</sensitive-url-filters>
XML

クエリパラメータに値を使用しない場合、コントローラは URL 内のクエリパラメータをマスクしません。

https://myapp.example.com/sensitive/data?first_name=abc&last_name=xyz に対する exit コールは、次の 3 つのセグメントに分割されます。

コントローラには、スナップショットの詳細に URL と param-pattern のマスクされた値が https://myapp.example.com/*****/data?first_name=***&last_name=*** のように表示されます。

機密メッセージフィルタを追加する

sensitive-message-filters 要素を使用すると、例外メッセージから収集されたテキストメッセージ内に含まれる機密情報を難読化できます。 

  1. バージョン管理されたエージェント コンフィギュレーション ファイルを編集します。

  2. sensitive-message-filters 要素に属性を追加します。

    <sensitive-message-filters>	
    	<sensitive-message-filter message-type="all" match-type="EQUALS|CONTAINS|STARTSWITH|ENDSWITH|REGEX" match-pattern="CASESENSITIVE_PATTERN" redaction-regex="SENSITIVE_INFO_REGEX_GROUP"/>
    </sensitive-message-filters>
    XML

    機密メッセージフィルタの属性:

    • message-type:次を指定します。all

    • match-type:編集のためにメッセージをオプトインするのに使用されるべきマッチのタイプを指定します。

    • match-pattern:マッチしたときにメッセージを編集用にオプトインするパターンを指定します。

    • redaction-regex:オプトインされたメッセージから編集されるべきデータを識別する正規表現を指定します。

次の例では、match-pattern"Sensitive" が含まれているテストを除外しています。 

<sensitive-message-filters>
	<sensitive-message-filter message-type="all" match-type="CONTAINS" match-pattern="Sensitive" redaction-regex="[0-9]+"/>
</sensitive-message-filters>
XML