Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Access 認証ログ

最終更新 Markdown で表示Agent セットアップ

Access 認証ログでは、保護されたアプリケーションに誰が、いつアクセスし、許可されたかどうかを追跡できます。不審なログイン試行の調査、ユーザー活動の監査、アクセス問題のトラブルシューティングに使います。

Cloudflare Access は、次の 2 種類の監査ログを生成します。

認証ログ

Cloudflare Access は、ユーザーまたはサービスがアプリケーションへのログインを試みるたびに、成功・失敗を問わず認証イベントを記録します。

アイデンティティベースの認証 は、ユーザーが誰か(メールアドレス、IdP グループ、SAML グループ、OIDC クレームなど)に基づいて評価されたログイン試行です。

非アイデンティティ認証 は、ユーザーの身元ではなくコンテキスト(IP アドレス、デバイスポスチャ、国、有効な証明書、サービストークンなど)に基づいて評価されたログイン試行です。

アイデンティティベースの認証

Access 認証ログを表示する

アイデンティティベースの認証イベントのログを表示するには:

  1. Cloudflare ダッシュボードZero Trust > Insights > Logs を開きます。

  2. Access authentication logs を選びます。

  3. (任意)ログビューアーに表示するログをフィルターします。タイムスタンプとイベント詳細(Access アプリケーション、ユーザーメール、ポリシー判定など)でフィルターできます。

  4. 個別のタイムスタンプを選び、イベントの詳細を確認します。

Access authentication logs の API エンドポイントは、アカウントの監査ログイベントをエクスポートするカスタム URL を提供します。

Required API token permissions

At least one of the following token permissions is required:
  • Access: Audit Logs Read
Get Access authentication logsbash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/logs/access_requests?limit=25&direction=desc&since=2020-07-01T05%3A20%3A00Z&until=2020-10-01T05%3A20%3A00Z" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
レスポンスjson
{
	"success": true,
	"errors": [],
	"messages": [],
	"result": [
		{
			"user_email": "michelle@example.com",
			"ip_address": "198.41.129.166",
			"app_uid": "df7e2w5f-02b7-4d9d-af26-8d1988fca630",
			"app_domain": "test.example.com/admin",
			"action": "login",
			"connection": "saml",
			"allowed": false,
			"created_at": "2014-01-01T05:20:00.12345Z",
			"ray_id": "187d944c61940c77"
		}
	]
}

フィールドの説明

アイデンティティベースの認証ログには、次のフィールドがあります。

基本情報
フィールド 説明
App Access アプリケーションの名前。
User email 認証するユーザーのメールアドレス。
User ID 認証するユーザーの一意の識別子(UUID)。
IP address 認証するユーザーの IP アドレス。
App UID Access アプリケーションの一意の識別子(UUID)。
App domain Access アプリケーションの URL。
App type Access アプリケーションの種類。self-hosted、browser SSH、browser VNC、browser RDP、SaaS、infrastructure のいずれかです。
Event ログイン試行など、認証イベントの種類。
Connection 認証に使った IdP(たとえば samlonetimepingoogle-apps)。
Allow 認証試行が許可されたか(true)拒否されたか(false)。
Request time 認証イベントのタイムスタンプ。
Ray ID Cloudflare を通過するすべてのリクエストに付く一意の識別子。Cloudflare ログで特定のリクエストを追跡するときに使います。
Country ユーザーの IP アドレスに紐づく国。
インフラストラクチャアプリケーション

ユーザーが インフラストラクチャアプリケーション に認証すると、Cloudflare Access は次の情報を記録します。

フィールド 説明
Hostname インフラストラクチャターゲットのホスト名。
Target ID インフラストラクチャターゲットの UUID。
SSH user 認証するユーザーがインフラストラクチャターゲットへ接続するときに指定した UNIX ユーザー(root など)。
SSH logs ユーザーがターゲットで実行した SSH コマンド。セッション開始前に SSH 暗号化キー の設定が必要です。

非アイデンティティ認証

非アイデンティティ認証イベントのログを取得するには、GraphQL Analytics API を使います。これらのログは Cloudflare One ダッシュボードでは利用できません。

リクエスト単位のログ

Access で認証したユーザーは、セッション中、許可された URL パスにアクセスできます。Cloudflare は、これらのリクエストを監査する方法をいくつか提供します。

Cloudflare Logs を使う

Enterprise プランでは、Cloudflare ダッシュボードでリクエストの詳細ログを利用できます。Cloudflare の Logpush サービスも利用でき、Cloudflare ダッシュボードまたは API から設定できます。Cloudflare の HTTP ログとインフラストラクチャログの詳細は、Cloudflare Logs を参照してください。

チームのメンバーが Access 背後の HTTP リソースへ到達するために認証すると、Cloudflare はそのユーザーの SSO アイデンティティを含む JSON Web Token(JWT) を生成します。Cloudflare はこのトークンを、非対称アルゴリズムである RS256(SHA-256 付き RSA 署名)で署名し、公開鍵を公開します。トークンが本物であることを検証できます。

ユーザーが URL をリクエストすると、Access はそのトークンのユーザーアイデンティティをリクエストヘッダーとして付与し、Cloudflare はネットワーク通過時にそれをログに記録します。チームは Cloudflare Logpush を使い、任意のサードパーティのセキュリティ情報イベント管理(SIEM)ソフトウェアや保存先にこれらのログを収集できます。Access のユーザーアイデンティティフィールドを有効にすると、ログは次の例のような JSON としてシステムにエクスポートされます。

{
   "ClientIP": "198.51.100.206",
   "ClientRequestHost": "jira.widgetcorp.tech",
   "ClientRequestMethod": "GET",
   "ClientRequestURI": "/secure/Dashboard/jspa",
   "ClientRequestUserAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36",
   "EdgeEndTimestamp": "2019-11-10T09:51:07Z",
   "EdgeResponseBytes": 4600,
   "EdgeResponseStatus": 200,
   "EdgeStartTimestamp": "2019-11-10T09:51:07Z",
   "RayID": "5y1250bcjd621y99",
   "RequestHeaders":{"cf-access-user":"srhea"}
},
{
   "ClientIP": "198.51.100.206",
   "ClientRequestHost": "jira.widgetcorp.tech",
   "ClientRequestMethod": "GET",
   "ClientRequestURI": "/browse/EXP-12",
   "ClientRequestUserAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36",
   "EdgeEndTimestamp": "2019-11-10T09:51:27Z",
   "EdgeResponseBytes": 4570,
   "EdgeResponseStatus": 200,
   "EdgeStartTimestamp": "2019-11-10T09:51:27Z",
   "RayID": "yzrCqUhRd6DVz72a",
   "RequestHeaders":{"cf-access-user":"srhea"}
}

cf-access-user フィールドを使う

Cloudflare Enterprise ログで利用できる HTTP リクエストフィールドに加え、Access 背後のアプリケーションへのリクエストには、ユーザーアイデンティティ文字列を含む cf-access-user フィールドがあります。ユーザー行動の監査に使えるもう 1 つの手段です。HTTP リクエストログに cf-access-user フィールドを追加するには、カスタムフィールドとして追加する必要があります。手順は Custom fields を参照してください。

Access はすべての操作を記録するわけではありません。リクエスト単位の監査ログは、特定のユーザーが domain.com/admin を訪れ、続けて domain.com/admin/panel を訪れたことは示せますが、新しい HTTP リクエストが発生した操作だけを記録します。サーバーリクエストを発生させない、クライアント側だけの操作は記録されません。

役に立ちましたか?