- 公開日
- 最終更新日
【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 に流す、という仕組みです。

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つだけです。
ステップ一覧
- Amazon CloudWatch Logs ロググループの作成
- Amazon EventBridge ルールの作成
ステップ1: Amazon CloudWatch Logs ロググループの作成
まずはログの保存先を作ります。
1-1. Amazon CloudWatch コンソールを開く
- マネジメントコンソールで「CloudWatch」を開く
- 左ペインから「ログ > ログ管理」を選択
- 「ロググループを作成」を押下
1-2. ロググループの設定
以下を設定し「作成」を押下します。
| 項目 | 値 |
|---|---|
| ロググループ名 | /aws/events/workspaces-access |
| 保持期間の設定 | 1日(今回は、検証のため短く設定) |
ステップ2: Amazon EventBridge ルールの作成
次に、WorkSpaces Access イベントをキャッチして Amazon CloudWatch Logs に流すルールを作ります。
2-1. Amazon EventBridge コンソールを開く
- マネジメントコンソールで「Amazon EventBridge」を開く
- 左ペインから「バス > ルール」を選択
- 「ルールを作成」を押下
- 「アドバンストビルダー」を選択
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. 確認と作成
- タグの設定(任意)を行い「次へ」を押下
- 設定内容を確認し「ルールの作成」を押下
動作確認
設定できたら、実際にログインして確認してみましょう。
- Amazon WorkSpaces に Web Access または Amazon WorkSpaces クライアントからログインする

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

補足: イベントはベストエフォートで配信されるため、ログインから数秒〜数十秒で記録されます。すぐに出てこなくても少し待ってみてください。
こんな使い方もできます
- 不正アクセスの検知: 許可していない IP からのログインを Lambda で検知し、SNS でメール通知
- ログイン履歴の監査: CloudWatch Logs Insights で IP 別のログイン回数を集計
- 接続元の可視化: ログデータを S3 にエクスポートし、Athena でクエリ分析
おまけ: CloudWatch Logs Insights クエリ例
せっかくログが溜まるので、Logs Insights で分析してみましょう。接続元 IP の一覧を表示するクエリです。
- マネジメントコンソールで「CloudWatch」を開く
- 左ペインから「ログ > ログ分析」を選択
- 以下を選択する
| 項目 | 値 |
|---|---|
| 以下によるクエリ | ロググループ |
| ロググループ | /aws/events/workspaces-access |
- クエリ入力欄の SOURCE から始まる行の下に、以下のクエリを追記し「実行」を押下
fields @timestamp, detail.workspaceId, detail.clientIpAddress, detail.clientPlatform, detail.workspacesClientProductName | sort @timestamp desc | limit 50

- 接続元 IP の一覧が表示

まとめ
Amazon EventBridge + Amazon CloudWatch Logs の組み合わせで、Amazon WorkSpaces の接続ログが簡単に取れるようになりました。
- 設定は5分で完了
- 追加コストは Amazon CloudWatch Logs の保存料金のみ
- 接続元 IP、WorkSpace ID、クライアント種別がすべて記録される
「Amazon WorkSpaces の接続ログを残しておきたいけど、大掛かりな仕組みは避けたい」という方にはぴったりだと思います。ぜひ試してみてください。
参考
この記事は私が書きました
印鑰 幸太
記事一覧全ての AWS 認定を取得。AWSサービスでは、AWS CloudFormationが好きです。ジム通いが趣味です。