Intelligent Context

第1章 New Relic における監査の二大要素

1.1 監査の目的とコンプライアンス

現代のデジタル環境において、組織が使用する SaaS プラットフォームの設定変更やデータアクセスを追跡することは、セキュリティとコンプライアンスの観点から不可欠です。New Relic は、オブザーバビリティを実現するための中心的なプラットフォームであり、その設定変更や格納されているデータへのアクセスは、組織の運用と機密情報保護に直結します。本ブログでは、監査ニーズに応えるための主要なアクティビティを記録する NrAuditEvent/NrdbQuery という2つのイベントタイプについて解説します。 

1.2 監査データタイプの紹介

New Relic Database (NRDB) には、APM やインフラストラクチャのメトリクス、ログといった通常のオブザーバビリティデータとは別に、アカウントレベルのアクションを記録するための専用のイベントタイプが存在します。 

NrAuditEvent:アカウント設定・変更の監査ログ

NrAuditEvent は、New Relic アカウント自体や、そのアカウント内の設定、リソースに対して行われた変更を記録します。 

 

監査対象: ユーザの追加・削除、ユーザ権限変更、ログイン・ログアウト、Synthetic モニタの更新、API キーの管理など 

 

用途: アカウントのセキュリティ体制、運用設定の変更履歴を追跡し、「誰が、いつ、何を、どう変えたか」を把握するために使用されます。

NrdbQuery:データ参照(クエリ実行)の監査ログ

NrdbQuery は、NRDB に対して NRQL (New Relic Query Language) が実行された事実を記録するイベントタイプです。 

 

監査対象: ユーザがダッシュボード、クエリビルダー、または API 経由で実行した全ての NRQL クエリ 

 

用途: 「誰が、いつ、どんなデータ」にアクセスしようとしたか(またはアクセスしたか)を追跡するために使用されます。NrdbQuery は、特に機密性の高いデータが NRDB に格納されている場合のデータ漏洩リスク管理に非常に重要です。
  次の章からは、これらの二つのイベントタイプを NRQL でどのように活用し、具体的な監査を実現していくかを詳しく解説します。

第2章 アカウントに関する重要なイベントの追跡: NrAuditEvent の活用

NrAuditEvent は、New Relic アカウント設定に関して、「誰が、いつ、何を」変更したかを把握するためのイベントタイプです。このイベントタイプを使いこなすことで、セキュリティインシデントの予防や迅速な原因特定が可能になります。

2.1 NrAuditEvent の基本構造

NrAuditEvent は、アカウント内で発生したさまざまなアクションの詳細を記録するイベントであり、例として次のような属性を持ちます。
属性名説明監査における役割
timestampアクションが発生した日時いつ発生したか
actionIdentifier実行されたアクションのタイプ(例: user.login, alert_policy.create)どのような種類のアクションか
actorEmailアクションを実行したユーザのメールアドレス誰が実行したか
actorIdアクションを実行したユーザの ID誰が実行したか
targetTypeアクションの対象となったオブジェクトのタイプ(例: user, dashboard, synthetics_monitor)何に対して実行されたか
descriptionアクションの詳細な説明アクションの具体的な内容
上記では、特に重要な属性を抜粋して記載しています。NrAuditEvent の全ての属性の詳細については、以下の公式ドキュメントをご参照ください。 

 

New Relic data dictionary 

 

以下では、NrAuditEvent の NRQL クエリの例を紹介します。 

2.2 NRQL クエリ例

API キーやランセンスキーの作成/削除

SELECT actionIdentifier, actorEmail, targetType, description  FROM NrAuditEvent WHERE actionIdentifier LIKE 'api_key_service%' SINCE 1 month ago

ロール権限の変更やグループの更新

SELECT actionIdentifier, actorEmail, targetType, description FROM NrAuditEvent WHERE actionIdentifier IN ('role.update', 'group.update') SINCE 1 month ago

ユーザログイン/ログアウト履歴

ユーザログイン/ログアウト状況の監視については、以下の公式 Qiita 記事に詳細に記載されています。 

 

New Relicの活用状況は気になりませんか?ログイン・ログアウトが照会可能になりました!

その他のクエリ例

以下の公式ドキュメント中「クエリの例」の項目には、NrAuditEvent に関する様々なクエリの例が記載されていますので、ぜひご参照ください。 

 

NrAuditEvent: アカウント監査ログのクエリ 

第3章 データ参照の監査: NrdbQuery の詳細分析

NrdbQuery は、New Relic UI、API、またはその他のサービスを通じて NRQL クエリが実行されるたびに生成されます。主要な属性は以下の通りです。
属性名説明監査における役割
timestampアクションが発生した日時いつ発生したか
query実行されたクエリ文字列全体どのデータにどのようにアクセスしたか
userクエリを実行したユーザ誰が実行したか
productComponentクエリを実行した New Relic 内の製品コンポーネントどの機能を利用する際に実行されたか
durationMsクエリの実行にかかった時間(ミリ秒)クエリの実行にかかった時間(パフォーマンス)
statusクエリの実行状況(successful, error, timeout など)クエリが成功したかどうか
以下では、NrdbQuery の NRQL クエリの例を紹介します。

3.2 NRQL クエリ例

クエリ失敗の傾向分析

ユーザが何らかの理由で NRQL によりデータを取得できなかった場合、その失敗の傾向を分析できます。 

 

SELECT count(*)   FROM NrdbQuery  WHERE status != 'successful'  SINCE 1 week ago TIMESERIES FACET status 

 

非効率なクエリの特定

実行時間が長いクエリを特定し、NRDB の利用効率を改善するために活用できます。以下のクエリ例では、10 秒以上の実行時間(durationMs 属性)の NRQL クエリを検索し、上位 10 クエリを実行時間で降順にソートします。 

 

SELECT user, query, durationMs  FROM NrdbQuery WHERE status = 'successful' AND durationMs >= 10000 SINCE 1 week ago LIMIT 10 ORDER BY durationMs DESC 

機密データアクセス監査の実現 - カスタムイベント

機密性の高いカスタムイベント(以下の例では PaymentTransaction )へのクエリを監視します。 

 

SELECT user, query FROM NrdbQuery WHERE query LIKE '%PaymentTransaction%' SINCE 1 week ago
 

機密データアクセス監査の実現 - ログエクスポート

NrdbQuery に保存されたログ(Log イベントタイプのデータ)を UI 経由でエクスポートしたユーザとクエリを特定します。 

 

SELECT user, query FROM NrdbQuery WHERE query.eventType = 'Log' AND productComponent = 'Export logs' SINCE 1 week ago

 

第4章 監査データの活用

NrAuditEvent(アカウント変更)と NrdbQuery(データ参照)の二つのイベントタイプを個別に分析するだけでなく、これらを統合的に監視することで、より強固な監査体制を確立できます。 

4.1 ダッシュボードウィジェットの例

New Relic のダッシュボードを利用することで、目的に応じたデータを一つのダッシュボードに集約し、効果的に視覚情報を用いて傾向を把握することができます。一つのダッシュボードに「変更アクティビティ」と「データ参照アクティビティ」の両方を集約することで、セキュリティと運用の両側面を一度に俯瞰できます。NrAuditEvent および NrdbQuery を用いたダッシュボードウィジェットを以下に例示します。 

 

  • 過去24時間におけるユーザ毎のログイン/ログアウト回数 (NrAuditEvent)
  • アクションタイプ(actionIdentifier)別変更総数の時系列プロット (NrAuditEvent)
  • データアクセス数(クエリ実行数)のサマリ (NrdbQuery)
  • クエリ失敗回数のサマリ (NrdbQuery)
 

4.2 アラートの例

 監査ログの本領は、異常が発生した際に即座に通知を受け取ることです。New Relic Alerts を利用して、NrAuditEvent や NrdbQuery を基にしたアラート条件を設定します。

NrAuditEvent に基づくアラート例

ある New Relic アカウントには機密情報が含まれており、社外ユーザをアカウントに招待することが禁止されている場合があります。予期しないユーザが誤って追加されたことは、以下のような NRQL クエリを設定したアラート条件により検知可能です。 

 

FROM NrAuditEvent SELECT filter(count(*), WHERE actionIdentifier = 'user.create' AND description NOT LIKE 'User %@example.com was created%') 

 

上記のようなアラート条件を作成することにより、想定されたドメイン(example.com)以外のドメインの E メールアドレスへの招待を検知することが可能です。description 属性の内容は、2025 年 12 月時点での内容である点にご留意ください。 

NrdbQuery に基づくアラート例

セキュリティポリシー上、「通常のログ閲覧は許可されるものの、UI 上でのログエクスポート処理による大量のログデータのダウンロードは許可しない」というポリシーが規定されていたとします。2025 年 12 月現在の New Relic の権限設定では、上記のような個別の機能毎の細かな権限設定に対応していません。権限設定での制御ができない場合、次善のアプローチとして、想定されないアクティビティを検知することが有効です。例えば、以下のような NRQL クエリをアラート条件に設定することにより、想定されない製品コンポーネントを経由したアクティビティを検知することが可能です。  
FROM NrdbQuery SELECT filter(count(*), WHERE query.eventType = 'Log' AND productComponent = 'Export logs')

まとめ:監査の効率化とセキュリティ向上へ

本ブログでは、New Relic の監査を支える二つのイベントタイプ、NrAuditEvent と NrdbQuery の活用法を解説しました。 
イベントタイプ監査対象主要な役割
NrAuditEventNew Relic 環境の 「変更」アカウントのセキュリティと運用設定の追跡
NrdbQueryNRDB データへの 「参照」機密データへのアクセス監視と NRQL パフォーマンス分析
これらのログを NRQL で組み合わせ、ダッシュボードでの可視化とアラートによる即時通知を設定することで、貴社の New Relic 環境のセキュリティとコンプライアンス体制が強化されます。NrAuditEvent/NrdbQuery の活用をご検討ください。