【AWS MCP Server GA】AIエージェントにAWS全APIを安全に使わせる方法、完全解説

AI/生成AI

この記事の概要

2026年5月6日、AWS MCP ServerがGA(一般提供開始)となりました。
AIコーディングエージェントが15,000以上のAWS APIに対して、IAM認証を通じた安全なアクセスができるようになります。
既存の認証情報をそのまま使い、CloudTrailで監査証跡も残るため、エンタープライズ環境での実用に耐えうる設計になっています。


AIエージェントがAWSを「使いこなせる」時代が来た

これまでAIコーディングエージェントにAWSの作業を任せようとすると、いくつかの壁にぶつかっていました。

学習データの鮮度問題:モデルは訓練時点の知識しか持っていないため、Amazon S3 VectorsやAmazon Aurora DSQLのような新サービスを知らずに古いアプローチを提案してきます。
権限管理の難しさ:エージェントにAWSアクセスを与えると、意図せず広すぎる権限を持ったIAMポリシーが生成されがちです。
運用品質の低さ:デモでは動くが本番には持ち込めない、CliベースのIaC(CLIコマンドの羅列)を出力してしまう。

AWS MCP ServerのGAリリースはこれらの課題を一気に解決します。


なぜAIエージェント単体ではAWS作業を任せられないのか

AIエージェントがAWSに触れる際の典型的な失敗パターンを整理すると、次のようになります。

知識の陳腐化:Claude Opus 4.6の知識カットオフは2025年5月。
「S3にベクトルを保存したい」と聞いても、Amazon S3 Vectorsを知らずに「DynamoDBにBase64エンコードして…」という提案が返ってきます。

IAMポリシーの肥大化:エージェントはとりあえず動く最小のコードを書こうとするため、"Action": "*", "Resource": "*" のようなワイルドカードポリシーを平然と生成します。

IaCの質が低い:CLIコマンドを羅列するシェルスクリプトを書きがちで、CloudFormationやCDKを使った再現性・管理性の高いコードを選ばない傾向があります。

AWS MCP Serverはこれらを「ツール」として解決します。
エージェントがドキュメントを引いてAWS APIを叩き、サンドボックスでスクリプトを実行する。
これが現役のインフラSEにとってどれだけ実務的かを、以降で具体的に解説します。


AWS MCP Serverの3つのコアツールを使いこなす

AWS MCP Serverは、コンパクトな3つのツールでAIエージェントの弱点を補完します。

call_aws — 15,000以上のAWS APIを1つのツールで

# Claude CodeにAWS MCP Serverを追加するコマンド
claude mcp add-json aws-mcp --scope user \
  '{"command":"uvx","args":["mcp-proxy-for-aws@latest","https://aws-mcp.us-east-1.api.aws/mcp","--metadata","AWS_REGION=ap-northeast-1"]}'

call_awsツールは、既存のIAM認証情報を使ってAWSのどのAPIでも呼び出せます。
新しいAPIがリリースされれば数日以内に対応されるため、常に最新のサービスを扱えます。

事前にuvをインストールしておく必要があります。

# uv のインストール(Mac/Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh

search_documentation / read_documentation — リアルタイムでAWSドキュメントを参照

エージェントが「S3 Vectorsとは何か」を問われた際、学習データではなくその場でAWSの公式ドキュメントを取得して回答するため、情報の陳腐化が起きません
ドキュメント取得は認証不要で動作します。

run_script — サンドボックス内でPythonを実行

# エージェントが内部で実行するPythonスクリプト(例)
import boto3

ec2 = boto3.client('ec2', region_name='ap-northeast-1')
instances = ec2.describe_instances(
    Filters=[{'Name': 'instance-state-name', 'Values': ['running']}]
)

# 複数APIの結果をまとめてフィルタリング
results = []
for reservation in instances['Reservations']:
    for instance in reservation['Instances']:
        results.append({
            'id': instance['InstanceId'],
            'type': instance['InstanceType'],
            'name': next((t['Value'] for t in instance.get('Tags', []) if t['Key'] == 'Name'), 'N/A')
        })

print(results)

このスクリプトはサーバーサイドのサンドボックスで実行されます。
ローカルのファイルシステムにもネットワークにもアクセスできないため、エージェントが意図しない操作をするリスクを排除できます。
複数のAPIを連続呼び出ししてまとめるといった「集計処理」が一度のラウンドトリップで完了し、コンテキスト効率も向上します。


セキュリティ設計:エンタープライズ環境で使うためのポイント

IAM Context Keyによる細粒度アクセス制御

GA版で追加された最大の新機能です。aws:ViaAWSMCPServiceaws:CalledViaAWSMCPという2つのIAM Context Keyを使うことで、「人間が直接実行した場合」と「AIエージェント経由で実行した場合」を区別できます。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ec2:TerminateInstances",
        "s3:DeleteBucket"
      ],
      "Resource": "*",
      "Condition": {
        "Bool": {
          "aws:CalledViaAWSMCP": "true"
        }
      }
    }
  ]
}

このポリシーをSCP(サービスコントロールポリシー)として適用すれば、AIエージェントが破壊的な操作を行うことを組織レベルで禁止できます。

CloudTrail + CloudWatchによる監査証跡

AWS-MCPネームスペースのCloudWatchメトリクスで、MCP経由の呼び出しと人間による呼び出しを別々に観測できます。
CloudTrailには全APIコールが記録されるため、コンプライアンス要件への対応が容易です。

対応リージョンと料金

現時点では米国東部(バージニア北部)欧州(フランクフルト)の2リージョンで利用可能です(いずれのリージョンからでも全AWSリージョンへのAPIコールは可能)。
AWS MCP Server自体の追加料金はなく、作成したAWSリソースと通信コストのみ発生します。


今すぐ試せる:Claude CodeでAWS MCP Serverを設定する3ステップ

Step 1: uvをインストール

curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc  # または ~/.zshrc

Step 2: AWS MCP ServerをClaude Codeに追加

claude mcp add-json aws-mcp --scope user \
  '{"command":"uvx","args":["mcp-proxy-for-aws@latest","https://aws-mcp.us-east-1.api.aws/mcp","--metadata","AWS_REGION=ap-northeast-1"]}'

東京リージョンの場合はAWS_REGION=ap-northeast-1を指定します。

Step 3: Claude Code内で確認

Claude Codeを起動して/mcpコマンドを実行し、aws-mcpが表示されていれば設定完了です。
あとは普通に「S3 Vectorsを使ったベクトル検索の実装方法を教えて」と質問するだけで、エージェントが最新ドキュメントを参照して回答してくれます。

Kiro、Cursor、Codexなどのほか、MCP対応クライアントであれば同様の手順で接続できます。


まとめ:AIエージェントとAWSインフラの協業が現実になった

AWS MCP ServerのGAは、「AIに作業を丸投げする」ではなく「AIと一緒に安全に作業する」ための基盤が整ったことを意味します。

ポイントを整理すると:call_awsで15,000以上のAPIを学習済み知識に頼らずリアルタイムに呼び出せる。
run_scriptでサンドボックス実行することで、ローカル環境への影響を排除しつつ複雑な集計処理をこなせる。
IAM Context Keyでエージェントの権限を人間と分けて管理でき、CloudTrailで監査証跡を確保できる。

インフラSEとして「AIにAWSの作業を任せたいけど怖い」という感覚は正しい直感でした。
AWS MCP Serverはその不安に対する、AWSなりの現実的な回答です。

まずはローカル環境のClaude CodeかKiroに接続してみてください。
新しいAWSサービスについて聞いてみた瞬間、エージェントの振る舞いが変わることを体感できるはずです。


参考リンク

コメント