ENGINEER BLOG ENGINEER BLOG
  • 公開日
  • 最終更新日

【Amazon WorkSpaces】EventBridge で接続ログを CloudWatch Logs に記録してみた!

この記事を共有する

目次

パーソル&サーバーワークスの印鑰です。

AWSを中心としたクラウドインフラの設計・構築・運用を担当しています。 エージェント開発にも注力しているエンジニアです。

はじめに

Amazon WorkSpaces を運用していると、こんなことが気になりませんか?

  • 「この WorkSpace、いつ接続があったんだろう?」
  • 「接続元の IP って記録されてるの?」

実は、Amazon EventBridge と Amazon CloudWatch Logs を組み合わせるだけで、WorkSpaces の接続ログを簡単に記録できます。マネジメントコンソールからポチポチするだけで設定完了、所要時間は5分程度です。

今回はその設定方法をサクッと共有します。

仕組み

Amazon WorkSpaces にはちょっと便利な機能があって、ユーザーがログインに成功するたびに WorkSpaces Access イベントが自動で Amazon EventBridge に飛びます。これを Amazon EventBridge のルールでキャッチして CloudWatch Logs に流す、という仕組みです。

001.png

WorkSpaces Access イベントに含まれる情報

気になる「どんな情報が取れるの?」ですが、けっこうリッチです。

フィールド 説明
clientIpAddress 接続元の WAN IP アドレス(グローバル IP)
actionType ログイン成功時のみ記録される(値は常に successfulLogin)。ログイン失敗は記録されない
workspacesClientProductName 接続に使用したクライアント名(Web、Desktop 等)
loginTime ログイン日時
clientPlatform クライアントの OS(Windows、Web、macOS 等)
directoryId ディレクトリ ID
clientVersion クライアントのバージョン
clientDeviceUUID クライアントデバイスの UUID
workspaceId WorkSpace ID

イベント JSON の例

{
    "version": "0",
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "detail-type": "WorkSpaces Access",
    "source": "aws.workspaces",
    "account": "xxxxxxxxxxxx",
    "time": "2026-06-15T22:53:21Z",
    "region": "ap-northeast-1",
    "resources": [],
    "detail": {
        "clientIpAddress": "xxx.xxx.xxx.xxx",
        "actionType": "successfulLogin",
        "workspacesClientProductName": "WorkSpacesWebClient",
        "loginTime": "2026-06-15T22:52:57.998Z",
        "clientPlatform": "Web",
        "clientDeviceUUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "directoryId": "d-xxxxxxxxxx",
        "clientVersion": "web_5.0.0",
        "workspaceId": "ws-xxxxxxxxx"
    }
}

前提条件

以下が揃っていれば OK です。

  • Amazon WorkSpaces がデプロイ済みであること
  • 東京リージョン(ap-northeast-1)で作業すること

補足: もし、Amazon WorkSpaces を未構築の方は、以下のブログで構築を試してみてください。

設定手順

手順は2つだけです。

ステップ一覧

  1. Amazon CloudWatch Logs ロググループの作成
  2. Amazon EventBridge ルールの作成

ステップ1: Amazon CloudWatch Logs ロググループの作成

まずはログの保存先を作ります。

1-1. Amazon CloudWatch コンソールを開く

  1. マネジメントコンソールで「CloudWatch」を開く
  2. 左ペインから「ログ > ログ管理」を選択
  3. 「ロググループを作成」を押下

1-2. ロググループの設定

以下を設定し「作成」を押下します。

項目
ロググループ名 /aws/events/workspaces-access
保持期間の設定 1日(今回は、検証のため短く設定)

ステップ2: Amazon EventBridge ルールの作成

次に、WorkSpaces Access イベントをキャッチして Amazon CloudWatch Logs に流すルールを作ります。

2-1. Amazon EventBridge コンソールを開く

  1. マネジメントコンソールで「Amazon EventBridge」を開く
  2. 左ペインから「バス > ルール」を選択
  3. 「ルールを作成」を押下
  4. 「アドバンストビルダー」を選択

2-2. ルールの詳細を定義

以下を設定し「次へ」を押下します。

項目
名前 workspaces-access-to-cloudwatch-logs
イベントバス default

2-3. イベントパターンの設定

以下を設定し「次へ」を押下します。

項目
イベントパターン - イベントソース AWS のサービス
イベントパターン - AWS のサービス WorkSpaces
イベントパターン - イベントタイプ WorkSpaces Access

イベントパターンの JSON は以下のようになります。

{
  "source": ["aws.workspaces"],
  "detail-type": ["WorkSpaces Access"]
}

2-4. ターゲットの設定

以下を設定し「次へ」を押下します。

項目
ターゲットタイプ AWS のサービス
ターゲットの選択 CloudWatch ロググループ
ロググループ 既存のロググループ
/aws/events/workspaces-access

2-5. 確認と作成

  1. タグの設定(任意)を行い「次へ」を押下
  2. 設定内容を確認し「ルールの作成」を押下

動作確認

設定できたら、実際にログインして確認してみましょう。

  1. Amazon WorkSpaces に Web Access または Amazon WorkSpaces クライアントからログインする

002.png

  1. マネジメントコンソールで「CloudWatch」を開く
  2. 左ペインから「ログ > ログ管理」を選択
  3. 作成したロググループを選択し開く
    • ロググループ : /aws/events/workspaces-access
  4. ログストリームにイベント JSON が記録されていれば成功

003.png

補足: イベントはベストエフォートで配信されるため、ログインから数秒〜数十秒で記録されます。すぐに出てこなくても少し待ってみてください。

こんな使い方もできます

  • 不正アクセスの検知: 許可していない IP からのログインを Lambda で検知し、SNS でメール通知
  • ログイン履歴の監査: CloudWatch Logs Insights で IP 別のログイン回数を集計
  • 接続元の可視化: ログデータを S3 にエクスポートし、Athena でクエリ分析

おまけ: CloudWatch Logs Insights クエリ例

せっかくログが溜まるので、Logs Insights で分析してみましょう。接続元 IP の一覧を表示するクエリです。

  1. マネジメントコンソールで「CloudWatch」を開く
  2. 左ペインから「ログ > ログ分析」を選択
  3. 以下を選択する
項目
以下によるクエリ ロググループ
ロググループ /aws/events/workspaces-access
  1. クエリ入力欄の SOURCE から始まる行の下に、以下のクエリを追記し「実行」を押下
fields @timestamp, detail.workspaceId, detail.clientIpAddress, detail.clientPlatform, detail.workspacesClientProductName
| sort @timestamp desc
| limit 50

004.png

  1. 接続元 IP の一覧が表示

005.png

まとめ

Amazon EventBridge + Amazon CloudWatch Logs の組み合わせで、Amazon WorkSpaces の接続ログが簡単に取れるようになりました。

  • 設定は5分で完了
  • 追加コストは Amazon CloudWatch Logs の保存料金のみ
  • 接続元 IP、WorkSpace ID、クライアント種別がすべて記録される

「Amazon WorkSpaces の接続ログを残しておきたいけど、大掛かりな仕組みは避けたい」という方にはぴったりだと思います。ぜひ試してみてください。

参考

この記事は私が書きました

印鑰 幸太

記事一覧

全ての AWS 認定を取得。AWSサービスでは、AWS CloudFormationが好きです。ジム通いが趣味です。

印鑰 幸太

この記事を共有する

クラウドのご相談

CONTACT

クラウド導入や運用でお悩みの方は、お気軽にご相談ください。
専門家がサポートします。

サービス資料ダウンロード

DOWNLOAD

ビジネスをクラウドで加速させる準備はできていますか?
今すぐサービス資料をダウンロードして、詳細をご確認ください。