0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon ECS が API アクティビティの分析を可能にするための AWS CloudTrail データイベントを公開

Last updated at Posted at 2025-10-23

はじめに

2025 年 10 月 20 日、AWS は Amazon Elastic Container Service(ECS)向けの新機能を発表しました。
ECS が AWS CloudTrail データイベントに対応し、ECS Agent API アクティビティの詳細な可視性を提供する機能です。
この機能は 全 AWS リージョンの ECS on EC2、一部リージョンの ECS Managed Instances で即座に利用可能となっています。
本記事では、新機能の詳細、従来との違い、実際の設定方法、ログの活用例、コストや制限事項についてまとめています。

新機能の概要

今回発表された新機能により、ECS Agent の API アクティビティを CloudTrail を通じて記録・監視できるようになりました。

CloudTrail データイベント対応とは

AWS CloudTrail イベントには 4 つのタイプがあります。

  • 管理イベント
  • データイベント
  • ネットワークアクティビティイベント
  • Insights イベント

管理イベントは ECS クラスターの作成やサービスの更新などの管理操作を記録し、デフォルトで有効です。
一方、データイベントはリソース内で実行される詳細な操作を記録するもので明示的な有効化が必要です。
今回、ECS は AWS::ECS::ContainerInstance というデータイベントリソースタイプに対応し、ECS Agent の API 操作を記録できるようになりました。

有効化方法と対象

オプトイン方式での有効化

CloudTrail 証跡でデータイベントとして AWS::ECS::ContainerInstance を指定することで有効化します。

記録される API 操作

以下の ECS Agent API 操作が記録されます。

  • ecs:Poll:ECS Agent がワークをポーリング
  • ecs:StartTelemetrySession:テレメトリセッション開始
  • ecs:PutSystemLogEvents:ECS Managed Instances のログ送信

何が変わったのか

今回の新機能により、ECS における CloudTrail ログの範囲が拡大しました。
従来の課題と新機能による変化を見ていきましょう。

従来の課題

主な課題としては以下の 2 つがありました。

  • セキュリティ監査とコンプライアンス対応の限界
  • 限定的なトラブルシューティング手段

セキュリティ監査とコンプライアンス対応の限界

CloudTrail では ECS の管理イベント(CreateService、RunTask など)のみが記録されており、ECS Agent が自動的に実行する API 操作は記録されていなかったため、コンテナインスタンスロールがいつ、どのように使用されたかを把握できませんでした。
そのため、異常な API 呼び出しパターンの検出やセキュリティインシデント発生時の詳細な調査が困難であり、コンプライアンス監査で求められる包括的な API アクティビティログの提供ができませんでした。

限定的なトラブルシューティング手段

「コンテナインスタンスの未応答」や「タスクが起動しない」といった問題が発生しても、Agent の API 通信を CloudTrail で確認できませんでした。
原因の特定には Agent ログの確認やネットワーク設定の検証など、試行錯誤的なアプローチが必要でした。

新機能による変化

新機能により、従来の課題がすべて解決されました。

記録範囲の拡大

項目 従来 新機能
CloudTrail での記録 管理イベントのみ 管理イベント + Agent API データイベント
ecs:Poll 記録なし 記録可能
ecs:StartTelemetrySession 記録なし 記録可能
ecs:PutSystemLogEvents 記録なし 記録可能

セキュリティとコンプライアンスの強化

どのコンテナインスタンスが、いつ、どの API を呼び出したかの完全な記録が可能になりコンテナインスタンスロールの使用状況を詳細に追跡できます。
通常と異なるポーリング頻度やパターン、予期しない API 呼び出しを検出することでセキュリティインシデントの早期発見が可能になりました。
また、API 活動の包括的な監査証跡を提供できるためコンプライアンス要件への対応が実現できます。

トラブルシューティングの効率化

Agent 通信の問題を CloudTrail で直接確認できるようになり根本原因の特定が迅速化されました。

使い方

新機能の使い方を、有効化手順から実際の動作確認まで説明します。

有効化手順

CloudTrail コンソールでの設定

  1. 証跡を選択または新規作成
  2. ログイベントとして「データイベント」を選択

image.png

  1. データイベントとして「ECS container instance」を選択

image.png

  1. 証跡の作成

動作確認

新機能を実際に試すため、意図的に Agent 通信エラーを発生させて CloudTrail で確認します。

エラーの発生

コンテナインスタンスの IAM ロールから ECS の権限を一時的に削除することで、ecs:Poll でエラーが発生するようにします。

  1. EC2 コンソールでコンテナインスタンスに付与されている IAM ロールを確認
  2. IAM コンソールで該当ロールのポリシーから ecs:Poll 権限を削除
  3. Agent が次回ポーリングを試行するまで待機

CloudTrail での確認

S3 からログファイルを取得

実行コマンド
# 最新のログファイルを取得して解凍
aws s3 cp s3://your-cloudtrail-bucket/AWSLogs/account-id/CloudTrail/region/YYYY/MM/DD/file.json.gz - | zcat > cloudtrail.json

Poll イベントを抽出

実行コマンド
# Poll イベントのみを抽出
# 保存したファイルから Poll イベントのみを抽出
cat cloudtrail.json | jq '.Records[] | select(.eventName == "Poll")'

出力結果の確認

出力結果(一部抜粋)
{
  "eventName": "Poll",
  "eventTime": "2025-10-23T06:45:51Z",
  "errorCode": "AccessDenied",
  "errorMessage": "Forbidden",
  "userIdentity": {
    "arn": "<IAM Role ARN>"
  },
  "requestParameters": {
    "cluster": "<cluster-name>",
    "containerInstance": "<Instance ARN>"
  },
  "eventCategory": "Data"
}

IAM 権限エラー(AccessDenied)が原因で Agent がポーリングに失敗していることが即座に特定できます。

コストと制限事項

新機能を利用する前に知っておくべきコストと制限事項について説明します。

料金体系

CloudTrail データイベントを有効化すると、以下のリソースコストが発生します。

  • CloudTrail
  • S3
  • CloudWatch Logs(オプション)

CloudTrail

データイベントの記録には追加料金が発生します。

  • 最初の 100 万イベント: $1.00 / 10 万イベント
  • 100 万イベント超: $0.50 / 10 万イベント

S3

  • ストレージクラスに応じた料金
  • 標準ストレージ:$0.023/GB/月(東京リージョン)

CloudWatch Logs

  • 取り込み: $0.76 / GB
  • 保存: $0.033 / GB / 月
  • クエリ実行: $0.0076 / GB スキャン

コスト例

東京リージョンにおける環境規模ごとの月額概算は以下のようになります。

環境規模 インスタンス数 Poll 頻度 イベント数/月 月額概算
小規模 5 台 10 秒 130 万 $ 12 ~ 15
中規模 20 台 10 秒 520 万 $ 29 ~ 35
大規模 100 台 10 秒 2600 万 $ 148 ~ 160

※ ecs:Poll の頻度をもとに算出、実際のイベント数は環境により変動

コスト最適化のポイント

  • 本番環境のみで有効化(開発環境は必要に応じて)
  • 特定クラスターのみを対象にする(Advanced Event Selectors 使用)
  • S3 ライフサイクルポリシーで古いログを低コストストレージに移行
  • CloudWatch Logs は必要な場合のみ有効化

制限事項

機能面の制限

  • 対象は ECS on EC2 および ECS Managed Instances のみ
  • AWS::ECS::ContainerInstance を指定すると全ての Agent API 操作が記録される
  • S3 へのログ配信には通常 5 ~ 15 分程度の遅延がある

運用上の注意点

  • まずは非本番環境で有効化し、実際のログボリュームとコストを測定することを推奨
  • S3 バケットのストレージ容量とコストを定期的に監視
  • コンプライアンス要件に応じて適切なログ保持期間を設定

まとめ

今回発表された CloudTrail データイベント対応により、ECS Agent API 活動の詳細な可視化が実現しました。
これまで記録されていなかった ecs:Poll、ecs:StartTelemetrySession、ecs:PutSystemLogEvents といった Agent API 操作を CloudTrail で追跡できるようになり、セキュリティ監査、コンプライアンス対応、トラブルシューティングの効率が大きく向上します。
小規模環境であれば月額 $12 ~ 15 程度から始められるため、まずは非本番環境で有効化し、実際のログボリュームとコストを確認した上で本番環境への適用を検討することをお勧めします。

参考リンク

https://aws.amazon.com/jp/about-aws/whats-new/2025/10/amazon-ecs-aws-cloudtrail-data-events-insight-api-activities/
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?