難読化ルールを使用すると、エージェントがNew Relicに送信する前に機密データをマスクできます。各ルールは、正規表現パターンと置換文字列のペアです。エージェントは、すべての送信イベントのすべての文字列属性値に順番にルールを適用します — QoEイベントやクラッシュから回復したイベントも含まれます。
エージェントがNew Relicにイベントを送信する前に機密データをマスクするように、正規表現ベースの難読化ルールを使用してエージェントを設定できます。contentSrc、contentTitle、origUrlなどのフィールド、またはカスタムアトリビュートに、ユーザーID、トークン、またはその他のPIIが誤って含まれる可能性がある場合に、この機能を使用します。
エージェントは、イベントが内部バッファに入る前に、送信されるすべてのイベント — ビデオ、広告(RAFおよびIMA)、QOE、システム、カスタムイベントなど — のすべての文字列属性にルールを適用します。
構成
エージェントを作成した後にnrSetObfuscationRulesを呼び出します。各ルールは、regex文字列とreplacement文字列を含む連想配列です:
m.nr = NewRelic("ACCOUNT_ID", "API_KEY", "APP_NAME", "APP_TOKEN")nrSetObfuscationRules(m.nr, [ { regex: "account-[0-9]+", replacement: "ACCOUNT_ID" }, { regex: "token=[^&]+", replacement: "token=REDACTED" }, { regex: "/users/[^/]+", replacement: "/users/USER_ID" }])実行時にすべてのルールを削除するには、空の配列を使用してnrSetObfuscationRulesを呼び出します:
nrSetObfuscationRules(m.nr, [])ルールの順序
エージェントは、配列に現れる順序でルールを適用します。あるルールの出力は、次のルールの入力になります。パターンが重複する可能性がある場合は、順序が重要になります:
nrSetObfuscationRules(m.nr, [ ' Applied first — masks the specific token format { regex: "auth-token-[a-z0-9]+", replacement: "AUTH_TOKEN" }, ' Applied second — masks any remaining bare token references { regex: "token=[^&]+", replacement: "token=REDACTED" }])動作とエッジケース
| ケース | 行動 |
|---|---|
| ルールが設定されていない | エージェントは、パフォーマンスに影響を与えることなく、すべての属性値を変更せずにそのまま渡します。 |
空のreplacement文字列 | エージェントは、値から一致したコンテンツを削除します。 |
| 無効な正規表現パターン | エージェントはルールをスキップし、ログに警告を書き込みます。 |
| 文字列以外の属性値 | エージェントはこれらを変更せずにそのまま渡します。文字列値のみが処理されます。 |
| すべてのルールの置換 | 新しい配列を使用してnrSetObfuscationRulesを再度呼び出します。エージェントは以前のすべてのルールを破棄します。 |
重要
RokuはパターンマッチングにroRegexを使用します。Rokuは複雑な先読み/後読みアサーションをサポートしていません。JavaScriptまたはJavaの正規表現で有効なパターンでも、Roku用に簡略化する必要がある場合があります。