📑

Defender EASM REST API を使う

2023/08/01に公開

はじめに

Defender EASM で可視化したアセットをエクスポートしたいとなった場合、現状だと CSV エクスポートの機能が実装されていません。Log Analytics ワークスペースに一旦エクスポートして、そこから取得する方法はありますが、今回は直接 Defender EASM REST API を叩いてみます。
https://learn.microsoft.com/ja-jp/rest/api/defenderforeasm/

アクセス トークン取得

今回はアセットを取得するので、以下を参考に Defender EASM のデータ プレーンへのアクセス トークンを取得します。(Azure CLI から Azure PowerShell に置き換えています)
https://learn.microsoft.com/ja-jp/rest/api/defenderforeasm/authentication

  1. Azure CLI に接続します。
az login

  1. Defender EASM アクセス用のトークンを取得します。
$accesstoken = az account get-access-token --scope 'https://easm.defender.microsoft.com/.default' | ConvertFrom-Json

REST API 実行

アセットの一覧を取得します。

  1. リクエストに必要な要素を作成します。
$token = "Bearer " + $accesstoken.accessToken

$header = @{
    "Authorization" = $token;
}

$uri = "https://{region}.easm.defender.microsoft.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/workspaces/{workspaceName}/assets?api-version=2023-03-01-preview"

  1. リクエストを作成します。
$getRequest = @{
    Uri         = $uri
    Headers     = $header
    Method      = 'GET'
}

  1. REST API を実行します。
$response = Invoke-WebRequest @getRequest

  1. レスポンスを出力します。
Write-Output $response.content | Out-File assetList.json
Microsoft (有志)

Discussion