Azure Monitor

KeeperPAMイベントとAzure Monitorの連携

Azure Monitor API統合は2025年2月初旬に稼働予定です。

概要

Azure Logs Ingestion APIを介して、イベントをAzure Log Analytics ワークスペーステーブルへ直接ストリーミングできます。

セットアップ手順

Azureで、[Log Analytics ワークスペース]へ移動し、[ワークスペース]を選択後、[Manage Angents] (エージェントの管理) を開きます。ここで、ワークスペースIDキーを取得できます。これらの2つの情報をKeeperに入力することで、選択したワークスペースへのログストリーミングを開始します。

1. アプリケーションの登録のセットアップ

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

設定手順

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

  2. [アプリの登録]に移動し、[新規登録]を選択します。

  3. フォームに以下を入力します。

    • 名前: KeeperLogging

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

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

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

登録後の手順

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

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

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

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

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

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

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

    • この値は最後の手順で必要になるため、必ず保管してください。

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

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

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

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

  • クライアントシークレットの値 (必ず安全に保管してください)

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

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

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

Log Analyticsワークスペースの作成手順

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

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

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

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

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

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

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

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

KeeperLoggingアプリケーションに「Log Analytics Contributor」のロールを割り当てます。

  1. [Log Analytics ワークスペース]に移動し、ワークスペース (例: KeeperDemo1) 選択します。

  2. [アクセス制御 (IAM)]または[Role assignments]を開きます。

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

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

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

  6. [レビューと割り当て]をクリックし、ロールを割り当てます。

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

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

  1. Azureで「データ収集エンドポイント」を検索し、開きます。

  2. [作成]をクリックします。

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

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

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

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

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

  4. [作成] をクリックし、作成を完了します。

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

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

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

Log Analytics ワークスペースでカスタムテーブルを作成する

  1. [Log Analytics ワークスペース]に移動し、Keeperワークスペースを開きます。

  2. [テーブル]を選択し、[作成]をクリックします。

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

  4. テーブル名: KeeperLogs (例) を入力します。

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

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

  7. プロンプトが表示されたら、この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
    }
  }
]

テーブルの作成を完了する

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

  2. 作成後、テーブルはKeeperLogs_CLとして表示されます (Azureが _CL を自動で付与します)。

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

データ収集ルール (DCR) に KeeperLogging アプリケーションのロールを割り当てる

  1. [データ収集ルール]に移動し、対象のDCR (例: KeeperDCR) を選択します。

  2. [アクセス制御 (IAM)]または[Role assignments]を開きます。

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

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

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

  6. [レビューと割り当て]をクリックし、ロールを割り当てます。

  7. 同じ手順を繰り返し、以下のロールも追加します。

    • Monitoring Contributor

    • Monitoring Reader

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

データ収集エンドポイント (DCE) に KeeperLoggingアプリケーションのロールを割り当てる

  1. [データ収集エンドポイント]に移動し、対象のDCE (例: KeeperLogsEndpoint) を選択します。

  2. [Role assignments]を選択します。

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

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

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

  6. [レビューと割り当て]をクリックしてロールを割り当てます。

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

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

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

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

  1. Keeper管理コンソールにログインし、Keeper管理者として操作します。

  2. [レポート&アラート]に移動し、[Azure Monitor Logs]を選択します。

  3. 以下の情報を入力します (「クライアントシークレットの作成」で取得したもの)。

    • 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トークンを取得する手順

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

    • <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