Claude CodeとAWS MCP ServerでCloudTrailのログが検索できないかを試してみた

Claude CodeとAWS MCP ServerでCloudTrailのログが検索できないかを試してみた

2025.12.27

はじめに

AWS MCP Server の Preview 版が先日発表されました。AWS MCP Server については以下の記事を参照ください。
AWS MCP Server の Preview での利用開始が発表されました#AWSreInvent

このAWS MCP Serverを使い、AWS上で行われたイベントを検索できないかと思い試してみました。普段の業務ではClaude Codeを使うことが多いのですが、Claude CodeからMCPを利用し、以前はマネージメントコンソールから検索していたイベントを、プロンプトの指示で検索できないかと思ったことがキッカケです。

結論としては出来たのですが、AWS MCP Serverを使えるようセットアップし(というほど大袈裟ではないですが)、実際に検索した時のプロンプトと、MCPが返してきた結果について書きたいと思います。

MCPのセットアップ

AWS MCP Server の Preview での利用開始が発表されました#AWSreInvent

こちらの記事とほぼ同じとなってしまうのですが、少し変えた部分もあるので、こちらでも書いておきます。

なお作業したPCはmacOSとなります。

uvがインストールされていなかったので、uvをインストールします。

curl -LsSf https://astral.sh/uv/install.sh | sh

以下のコマンドでMCPサーバを追加します。

claude mcp add aws-mcp -s project -- uvx mcp-proxy-for-aws@latest https://aws-mcp.us-east-1.api.aws/mcp --metadata AWS_REGION=us-west-2

「.mcp.json」が作成されますが、以下のようにリージョンとenvを変更しました。

{
  "mcpServers": {
    "aws-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://aws-mcp.us-east-1.api.aws/mcp",
        "--metadata",
        "AWS_REGION=ap-northeast-1"
      ],
      "env": {
        "AWS_PROFILE": "my-profile"
      }
    }
  }
}

マネージメントコンソールよりロールを追加し、以下のポリシーを設定します。

{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "aws-mcp:InvokeMcp",
                "aws-mcp:CallReadOnlyTool",
                "aws-mcp:CallReadWriteTool"
            ],
            "Resource": "*"
        }
    ]
}  

「.mcp.json」のenvで指定したプロファイルを、作成したロールを使用するように変更します。

イベントの検索

ターミナルでClaude Codeを起動すると、MCPが読み込まれます。

今回は以前開発環境で発生した、とあるRoute53のAレコードが意図せず消えてしまったというイベントについて調査してみました(なおこの件は既に解決していました)。

Claudeのプロンプトとして以下のように入力してみました。
(以降、具体的な値や日時は変えてあります)

> aws-mcpを使って、以下を調査してください。\                                                                                               
  AWS Route53の「xxxx.net」のホストゾーンから、一時的にAレコードが消えていたことが分かりました。該当の時間は日本時間の12/x 0:00〜11:00の間です。CloudTrailを検索し、Aレコードがいつ、誰によって消されたかを調査してください。  

実は最初に実行した時には権限が不足しており、前述のポリシーに修正した上で再度実行しました。その結果、以下のような回答が得られました。

⏺ CloudTrailの権限がまだ不足しているようです。cloudtrail:LookupEventsアクションの権限が必要です。   
(以下略)

ここで選択肢として、CloudTrailを検索する権限を追加することが推奨されたので、それを選択してみました。すると以下のように必要な権限が表示されました。

⏺ 承知しました。IAM権限を追加する方法で進めます。                                                                                          

  必要な権限は以下です:                                                                                                                   

  {                                                                                                                                        
    "Version": "2012-10-17",                                                                                                               
    "Statement": [                                                                                                                         
      {                                                                                                                                    
        "Effect": "Allow",                                                                                                                 
        "Action": [                                                                                                                        
          "cloudtrail:LookupEvents"                                                                                                        
        ],                                                                                                                                 
        "Resource": "*"                                                                                                                    
      }                                                                                                                                    
    ]                                                                                                                                      
  }   

  この権限を xxxx-role ロールに追加してください。追加後、再度CloudTrailの検索を実行します。

  権限を追加されましたら、お知らせください。

ここは結構気になったところで、調査に必要な権限を都度ロールに追加していくのは良いと思いました。
権限を追加してその旨を入力したところ、Claude Codeは色々と試し、以下のような回答を得られました。

 🔍 CloudTrail調査結果の詳細                                                                                                              

  Aレコード削除の詳細                                                                                                                      

  削除イベントの情報:                                                                                                                      
  - 日時: 2025年xx月x日 xx:xx:xx UTC(日本時間:12月x日 xx:xx:xx)                                                                         
  - 実行者: xxxxのロールを使用                                                                                            
  - 実際の操作主体: AWS Amplify(自動実行)                                                                                                
  - 操作方法: Amplifyサービスが自動的にRoute53のレコードを削除                                                                             

  削除されたレコード:                                                                                                                      
  1. xxxx.net - Aレコード(エイリアス)                                                                                                
    - 削除前の設定: CloudFront xxxx.cloudfront.net へのエイリアス                                                                
  2. yyyy.xxxx.net - CNAMEレコード                                                                                                     
    - 削除前の設定: xxxx.cloudfront.net                                                                                          

  Aレコード復旧の詳細                                                                                                                      

  - 日時: 2025年xx月x日 xx:xx:xx UTC(日本時間:12月x日 xx:xx:xx)                                                                       
  - 実行者: yyyy(手動操作)                                                                                                 
  - 復旧されたレコード: xxxx.net - Aレコード                                                                                                          
(以降略)

Aレコードが削除された日時、どのような操作を行なったか、また復旧した日時も回答されました。
ついでにCloudTrailの実際のレコードを知りたいと思い、以下のようにプロンプトを入力してみました。

ありがとう。該当のCloudTrailのレコードのURLを教えてください。

以下のように回答してきました。

⏺ CloudTrailのイベントをAWS Management Consoleで確認するためのURLを生成します。まず、削除イベントのEventIDを取得します:                   

(中略)                                                                                           

⏺ CloudTrailイベントのURL                                                                                                                  

  (中略)

  直接アクセスURL:                                                                                                                         
  https://console.aws.amazon.com/cloudtrailv2/home?region=us-east-1#/events/xxxx

URLを開き、調べたかったイベントであることを確認できました。

まとめ

今回行ったようなイベントの調査は、マネージメントコンソールでCloudTrailを操作して行うこともできます(というか以前はそうしました)。
ただし日常的にターミナルやClaude Codeを使用している者にとっては、そこでプロンプトの指示によって調査できることのメリットもあると思います。

以上、何かの参考になれば幸いです。

参考サイト

AWS MCP Server の Preview での利用開始が発表されました#AWSreInvent
Setting up your AWS MCP Server

この記事をシェアする

FacebookHatena blogX

関連記事