さとうです。
先日AWS MCP ServerがPreviewで利用可能になりました。
漠然と「AIにAWS触らせて大丈夫?今までのMCP Serverと何が違うの?」と疑問がある方向けにアクセス制御関連の情報をまとめたいと思います。
※Preview版のサービスです。記載の内容は今後のサービスアップデートにより変動する可能性があります。
AWS MCP Serverとは
AWS API MCP ServerやAWS Knowledge MCP Serverとの違い
混同されやすいのですが、従前からAPI操作やドキュメントをラッピングするMCP ServerがAWSから提供されていました。
ただし、これらはローカルで動作するMCP Serverでした。
AWS API MCP Server | AWS MCP Servers
https://awslabs.github.io/mcp/servers/aws-knowledge-mcp-server/
AWS MCP ServerはAWSが提供するフルマネージドなMCP Serverとして、AWSのサービスエンドポイントを経由して利用できるようになったのが今回のサービスです。

※図の引用: Amazon Redshift MCP サーバーを活用した SQL 分析の高速化 | Amazon Web Services ブログ
IAMでMCP Server自体へのアクセス制御が可能になった
AWS MCP ServerがAWSサービスとして提供されることにより、IAMポリシーでAWS MCP Server自体へのアクセス制御が可能となりました。
これにより、操作対象のリソースのアクセスポリシーとは別に、AWS MCP Serverには読み取り専用アクションのみを許可するといった制御が可能です。
制御可能なオペレーションは以下の通りです。
- aws-mcp:InvokeMcp:AWS MCP Serverの呼び出しに必要(必須)
- aws-mcp:CallReadOnlyTool:読み取り系のToolの実行に必要
- aws-mcp:CallReadWriteTool:書き込み系のToolの実行に必要
※aws-mcp:InvokeMcpは許可されていないとMCP Serverの有効化に失敗します。
> /mcp aws-mcp ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ [2025:10:40]: ✗ aws-mcp has failed to load after 10.73 s - Mcp error: -32002: connection closed: initialize response - run with KIRO_LOG_LEVEL=trace and see $TMPDIR/kiro-log/kiro-chat.log for detail
※ AWSMcpServiceActionsFullAccess というマネージドポリシーを使うとAWS MCP Server関連のアクションのみにフルコントロール権限を付与できます。
AWSMcpServiceActionsFullAccess - AWS Managed Policy
対応リージョンは現時点でus-east-1のみ
現時点ではus-east-1のみに対応しています。あくまでMCP Serverの拠点なので他リージョンのリソースの参照は可能ですが、クロスリージョンアクセスとなることは把握しておきましょう。
アクセス制御を考えるうえで重要なポイント
アクセス制御の棲み分け
AWSのようなメジャーなサービスなら尚更ですが、LLMは優秀なので大抵のAIエージェントはAWS MCP Serverを経由せずとも指示した作業の遂行はできてしまいます。
エージェントに持たせる認証情報で操作するリソース自体へのアクセス制御が重要になる点はAWS MCP Serverを利用する場合でも変わりません。
AWS MCP Serverのアクセス制御は利用自体を制限したい場合や、意図せぬ書き込み操作を抑制したい場合のガードレールと考えておきましょう。

なお、今回のアップデートに合わせてIAMのConditionに aws:IsMcpServiceAction という条件が追加されています。
AWS global condition context keys - AWS Identity and Access Management
私も最初勘違いしていたのですが、これは呼び出されたアクションがAWS MCP Server関連であるかどうかを判定するものであって、呼び出されたAPIアクションがMCP Serverからのものであるかを判定するものではありません。
なので、MCP Server経由の操作のみを許可するといったIAMポリシーは設定できないものと見受けられます。
MCP Serverのサービス単位のアクセス制御は未対応
上記の通り、現時点ではAWS MCP Server自体の利用/読み取り/書き込みの粒度でしか制御ができません。
「aws__search_documentationだけ許可したい」「Redshift関連のaws___call_awsだけ許可したい」といった制御はIAMポリシーではできないようになっています。
リソースベースのポリシーには非対応
ドキュメントにある通り、リソースベースのポリシーとACLには対応していません。
How AWS MCP Server works with IAM - AWS MCP Server
例えば、S3でバケットポリシーを設定しているケースでMCP Serverからのアクセスのみを許可するといった制御はできないということになります。
セットアップ方法について
サービスの検証はKiro CLIで行い、.kiro/settings/mcp.jsonに以下の定義を追加しました。
{ "mcpServers": { "aws-mcp": { "command": "uvx", "args": [ "mcp-proxy-for-aws@v1.1.2", "https://aws-mcp.us-east-1.api.aws/mcp" ] } } }
MCP Serverが使用する認証情報については公式ではデフォルトプロファイルを設定する手順が案内されていますが、環境変数の $AWS_PROFILE で指定する方式でも問題ありませんでした。
Setting up your AWS MCP Server - AWS MCP Server
まとめ
MCP Serverがマネージドになったことで窓口が一本化され、MCP Serverの監査証跡の保全やアクセス制御が可能になるなどガバナンス面で利用がしやすいサービスになりました。
一方で、本質的にMCP Serverはアクセス制御をするためのツールではないので、操作可能なリソースのアクセス制御が変わらず重要である点は押さえておきましょう。
MCP Serverの制限可能な範囲は粗い点にも注意した方がよいかと思いました。
佐藤 航太郎(執筆記事の一覧)
エンタープライズクラウド部 クラウドモダナイズ課
2025年1月入社で何でも試したがりの雑食系です。