Azure Monitor

KeeperARAMイベントとAzure Monitorの連携

概要

Azure Logs Ingestion APIを介して、イベントをAzure Log Analyticsワークスペーステーブルへ直接ストリーミングできます。2025年1月時点で、Azureログにイベントデータをストリーミングする際にはAzure Logs Integration APIの使用を推奨します。

セットアップ手順

Azureポータルにアクセスします。

1. アプリケーション登録の作成

Azure App登録は、Logs Ingestion APIへのAPIリクエストを認証するために使用します。

フォームに以下のように記入します。

  • 名前: KeeperLogging

  • サポートされているアカウントの種類: デフォルトの [シングルテナント] を選択

  • リダイレクト URI: ここでは空欄のままにします。

  • [登録]をクリックします。

登録後の手順

  • [API の公開] をクリックします。

  • [Set] をクリックし、アプリケーションID URIを設定します。

  • デフォルトで提案されるURI (例: api://[client-id]) をそのまま使用します。

2. クライアントシークレットの作成

Azureの [アプリの登録] から、[管理] > [証明書とシークレット]に移動し、[新しいクライアント シークレット]を作成します。

  • [説明] [有効期限] を設定します。

  • 生成された値をコピーし、Keeperボルトに保存します。

  • この値は最後の手順 (クライアントシークレットの値) で必要になるため、必ず保管してください。

[概要] 画面で、ディレクトリ (テナント) IDと表示名も控えておきます。

以下の情報を後で使用するために保存します。

  • アプリケーション (クライアント) ID

  • クライアントシークレットID

  • クライアントシークレットの値

  • ディレクトリ (テナント) ID ([アプリの登録]ページに記載されています)

3. Log Analyticsワークスペースの作成

Log Analyticsワークスペースは、Azure Monitorがログデータを収集・保存するための中心的なリソースです。すでにワークスペースを作成済みの場合は、この手順をスキップできます。

  • Azureで [Log Analytics ワークスペース] に移動します。

  • [作成] をクリックし、以下の項目を設定します。

    • [サブスクリプション]: 使用するAzureサブスクリプションを選択

    • [リソース グループ]: 新規作成または既存のリソースグループを選択

    • [名前]: わかりやすい名前を設定 (例: KeeperLogsWorkspace)

    • [地域]: 任意の地域を選択

    • [確認および作成]をクリックして内容を確認後、[作成]をクリックします。

4. 登録したアプリケーションにロールを割り当てる

「Log Analytics Contributor」ロールを持つKeeperLoggingアプリケーションをLog Analyticsワークスペースに割り当てます。

  • ワークスペース (例: KeeperDemo1) を選択します。

  1. [Role assignments] を開きます。

  2. [追加] > [ロール割り当ての追加] をクリックします。

  3. Log Analytics Contributor」と入力し、該当するロールを選択します。

  4. [+メンバーを選択する]をクリックし、一覧からKeeperLoggingアプリケーションを選択します。

  5. KeeperLoggingアプリケーションにロールを割り当てます。

5. データ収集エンドポイント (DCE) を作成

データ収集ルール (DCR) を作成する前に、データ収集エンドポイント (DCE) が必要です。

以下の項目を設定します。

  • [サブスクリプション]: 使用するAzureサブスクリプションを選択

  • [リソース グループ]: DCRで使用するものと同じリソースグループを選択

  • [地域]: 任意のリージョンを選択

  • [名前]: わかりやすい名前を設定 (例: KeeperLogsEndpoint)

「Logs Ingestion URL」をメモしておきます (後の手順で使用)。

  • 例: keeperlogsendpoint-mcag.eastus-1.ingest.monitor.azure.com

6. テーブルとデータ収集ルールを作成

Log AnalyticsワークスペースでKeeperワークスペースを開いて [テーブル] を選択して新しいテーブルを作成します。

  • [新しいカスタムログ (DCRベース)]を選択します。

  • この例では KeeperLogsという名前にします。

  1. 新しいデータ収集ルール (DCR) を作成します。

  2. 以下のJSONファイルをコンピューターに保存します。

  3. ポップアップが表示されると、以下のJSONファイルをData Sampleとしてアップロードします。

[
  {
    "TimeGenerated": "2025-01-23T01:31:11.123Z",
    "audit_event": "some_event",
    "remote_address": "10.15.12.192",
    "category": "some_category_id",
    "client_version": "EMConsole.17.0.0",
    "username": "email@company.com",
    "enterprise_id": 1234,
    "timestamp": "2025-01-23T01:31:11.123Z",
    "data": {
      "node_id": "abc12345",
      "record_uid": "B881237126",
      "folder_uid": "BCASD12345",
      "some_flag": true
    }
  },
  {
    "TimeGenerated": "2025-01-23T01:31:11.124Z",
    "audit_event": "some_event",
    "remote_address": "10.15.12.192",
    "category": "some_category_id",
    "client_version": "EMConsole.17.0.0",
    "username": "email@company.com",
    "enterprise_id": 1234,
    "timestamp": "2025-01-23T01:31:11.123Z",
    "data": {
      "node_id": "abc12345",
      "record_uid": "B881237126",
      "folder_uid": "BCASD12345",
      "some_flag": true
    }
  },
  {
    "TimeGenerated": "2025-01-23T01:31:11.125Z",
    "audit_event": "some_event",
    "remote_address": "10.15.12.192",
    "category": "some_category_id",
    "client_version": "EMConsole.17.0.0",
    "username": "email@company.com",
    "enterprise_id": 1234,
    "timestamp": "2025-01-23T01:31:11.123Z",
    "data": {
      "node_id": "abc12345",
      "record_uid": "B881237126",
      "folder_uid": "BCASD12345",
      "some_flag": true
    }
  }
]

変更内容を確認し、問題がなければリクエストを送信してテーブルを作成します。

この例では、 テーブルはKeeperLogs_CLとして表示されます (Azureが自動で _CL を追加します)。

7. データ収集ルールにアプリの許可を割り当てる

Azureのデータ収集ルール (DCR) の箇所から

  • 対象のDCR (KeeperDCR) を選択します。

  • [Role assignments] を開きます。

  • [追加] > [ロール割り当ての追加]をクリックします。

  • Monitoring Metrics Publisher」と入力し、該当するロールを選択します。

  • [+メンバーを選択する]をクリックし、一覧からKeeperLoggingアプリケーションを選択します。

  • KeeperLoggingアプリケーションにロールを割り当てます。

同じ手順を繰り返し、「Monitoring Contributor」と「Monitoring Reader」のロールも追加します。

8. データ収集エンドポイントにアプリの許可を割り当てる

Azureのデータ収集エンドポイント (DCE) の箇所から

  • 対象のDCE (例: KeeperLogsEndpoint) を選択します。

  • [Role assignments]を選択します。

  • [追加] > [ロール割り当ての追加]をクリックします。

  • Monitoring Metrics Publisher」と入力し、該当するロールを選択します。

  • [+メンバーを選択する]をクリックし、一覧からKeeperLoggingアプリケーションを選択します。

  • KeeperLoggingアプリケーションにロールを割り当てます。

同じ手順を繰り返し、「Monitoring Contributor」ロールも追加します。

これでAzure側の設定は完了です。次に、管理コンソールの設定を行います。

9. 管理コンソールを更新

Keeper管理コンソールでの設定手順

Keeper管理コンソールにKeeper管理者としてログインしてから、[レポート&アラート] に移動し、[Azure Monitor Logs] を選択します。

上記手順2から以下の情報を入力します。

  • AzureテナントID: Azureの [サブスクリプション] セクションで確認できます。

  • アプリケーション (クライアント) ID: アプリ登録 (KeeperLogging) の [概要] 画面から取得します。

  • クライアントシークレットの値: アプリの登録のシークレットから取得したクライアントシークレットの値。

  • エンドポイントURL: 以下の形式で作成されたURLです。

    • https://<collection_url>/dataCollectionRules/<dcr_id>/streams/

      ?api-version=2023-01-01

  • エンドポイントURLの要素

    • <Collection URL>: 手順5で得たURL

    • <DCR_ID>: データ収集ルール (DCR) から取得したImmutable Id (例: dcr-xxxxxxx)

    • <TABLE>: Azureで作成したテーブル名 (例: Custom-KeeperLogs_CL)

https://<Collection_URL>/dataCollectionRules/<DCR_ID>/streams/<TABLE>?api-version=2023-01-01

10. セットアップ完了

KeeperからAzure MonitorにSIEMログが送信されると、数分以内にCustom Logsテーブルにデータが表示され始めます。


トラブルシューティング

テスト目的で、Bearerトークンを生成し、Azure Monitor API に対してAPIリクエストを送信することで、プロセスの仕組みを確認できます。

Bearerトークンを取得する手順

以下の情報を置き換えて、リクエストを送信します。

  • <Tenant_ID>: 手順9で取得したテナントID

  • <Application_ID>: 手順9で取得したアプリケーション (クライアント) ID

  • <Client_Secret_Value>: 手順9で取得したクライアントシークレットの値

これらを使って、Bearerトークンを取得するためのリクエストを行います。

curl -X POST 'https://login.microsoftonline.com/<Tenant_ID>/oauth2/v2.0/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<Application_ID>' \
--data-urlencode 'client_secret=Client_Secret_Value' \
--data-urlencode 'scope=https://monitor.azure.com/.default'

環境に応じたスコープの変更

Curlリクエストでトークンを取得する

実行すると、以下のようなトークンが返されます。

jsonCopyEdit{
  "token_type": "Bearer",
  "expires_in": 3599,
  "ext_expires_in": 3599,
  "access_token": "xxxxx"
}

次の手順で、このトークン (access_token) を使用してKeeperイベントログを取得するための Curlリクエストを送信します。

SIEMイベントを送信

以下のようにCurlリクエストを送信してください。

以下の各部分を置き換えてください。

  • <ENDPOINT_URL>: 上記の手順9で作成したURL

  • <TOKEN>: 上記で取得したBearerトークン

curl -X POST "<ENDPOINT_URL>" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '[
    {
      "TimeGenerated": "2025-01-23T01:31:11.123Z",
      "audit_event": "event_one",
      "remote_address": "10.15.12.192",
      "category": "msp",
      "client_version": "EMConsole.17.0.0",
      "username": "email@company.com",
      "enterprise_id": 1234,
      "timestamp": "2025-01-23T01:31:11.123Z",
      "data": {
        "node_id": "abc12345",
        "record_uid": "B881237126",
        "folder_uid": "BCASD12345",
        "some_flag": true
      }
    },
    {
      "TimeGenerated": "2025-01-23T01:31:11.124Z",
      "audit_event": "event_two",
      "remote_address": "10.15.12.192",
      "category": "general",
      "client_version": "EMConsole.17.0.0",
      "username": "email@company.com",
      "enterprise_id": 1234,
      "timestamp": "2025-01-23T01:31:11.123Z",
      "data": {
        "node_id": "abc12345",
        "record_uid": "B881237126",
        "folder_uid": "BCASD12345",
        "some_flag": true
      }
    },
    {
      "TimeGenerated": "2025-01-23T01:31:11.125Z",
      "audit_event": "event_three",
      "remote_address": "10.15.12.192",
      "category": "security",
      "client_version": "EMConsole.17.0.0",
      "username": "email@company.com",
      "enterprise_id": 1234,
      "timestamp": "2025-01-23T01:31:11.123Z",
      "data": {
        "node_id": "abc12345",
        "record_uid": "B881237126",
        "folder_uid": "BCASD12345",
        "some_flag": true
      }
    }
  ]'

備考

  • Bearerトークンは1時間後に失効します。

  • イベントは数分後にLog Analyticsワークスペースに表示されます。

Last updated