AWS MCP(ドキュメント検索・リソース操作系)を整理|権限の絞り方とAssumeRole(網羅・要確認)

この記事をシェア:
目次 クリックで開く

AWS環境が大規模化・複雑化する中で、必要なドキュメントやリソースを即座に特定し、安全に操作することは容易ではありません。特に近年では、AIがコンテキストを理解してツールを実行するMCP(Model Context Protocol)の概念が登場し、エンジニアが手動でコンソールを叩くのではなく、プログラムやエージェントを介してAWSリソースを操作する場面が増えています。

本記事では、AWSにおけるリソース検索(ドキュメント検索)の仕組みから、それらを安全に操作するためのIAM権限の絞り方、そして実務に不可欠なAssumeRoleの設計までを網羅的に解説します。

AWS環境におけるドキュメント・リソース検索の全体像

AWS上で「何かを探す」という行為は、対象によって利用するサービスが異なります。メタデータを探すのか、ファイルの中身を探すのかによって、適切なアーキテクチャを選択する必要があります。

AWS Resource Explorerによるメタデータ検索

「あのEC2インスタンスはどこにある?」「特定タグがついたS3バケットを一覧化したい」といった要望に応えるのが、AWS Resource Explorerです。これは、AWSマネジメントコンソール上部にある検索バーのバックエンドとしても機能しています。

  • 特徴: リージョンを跨いだ検索が可能(アグリゲーターリージョンの設定が必要)。
  • 料金: 基本機能は無料。
  • 公式サイト: AWS Resource Explorer

Amazon Kendraによるドキュメント検索

設計書(PDF)や運用マニュアル(Word)、S3上のテキストデータの内容までを深く検索(セマンティック検索)したい場合は、Amazon Kendraが選択肢に入ります。これは高機能なエンタープライズ検索サービスであり、機械学習を用いて質問に対する回答を抽出します。

大規模な組織では、このKendraをMCPのデータソースとして活用し、AIエージェントがAWSドキュメントを読み取って判断を下す仕組みを構築します。なお、Kendraの料金はDeveloper Editionで月額約810ドルからとなっており、導入にはコスト対効果の検討が必須です(公式料金ページ:Amazon Kendra Pricing)。

社内のデータ活用においては、AWSリソースだけでなく、SaaSに蓄積された情報の統合も重要です。例えば、経理周りの情報をAWS経由で分析する際、楽楽精算×freee会計の「CSV手作業」を滅ぼす。経理の完全自動化とアーキテクチャで語られるような、データ連携の自動化が先行して求められるケースも多々あります。

権限設計の鉄則:検索権限と操作権限の分離

AWSリソースを検索・操作するMCPエージェントやスクリプトを運用する際、最も陥りやすい罠が「権限の与えすぎ」です。

ReadOnlyAccessを安易に使わない理由

AWS管理ポリシーの ReadOnlyAccess は一見安全に見えますが、実は非常に強力な権限です。S3バケットの中身を閲覧できたり、Lambdaのコードをダウンロードできたりするため、機密情報が含まれる環境では「過剰な権限」となります。

アクションレベルでの権限の絞り方

最小権限の原則(Least Privilege)に基づき、以下の3層でポリシーを定義することを推奨します。

  1. List系: リソースの存在を確認する(例:s3:ListAllMyBuckets
  2. Describe/Get系: リソースの設定詳細を確認する(例:ec2:DescribeInstances
  3. Operate系: リソースの状態を変更する(例:ec2:StartInstances

MCPツールを構成する場合、まずは「List」と「Describe」のみを許可した「閲覧専用ロール」から作成し、必要に応じて「Operate」権限を段階的に追加していくのが実務上の定石です。

AssumeRoleによる安全なリソース操作

静的なIAMユーザーのアクセスキーを使い続けることは、漏洩時のリスクが極めて高いです。そこで利用すべきなのが AssumeRole(一時的認証情報) です。

AssumeRoleの仕組みとメリット

AssumeRoleは、信頼されたエンティティ(ユーザーや他のAWSサービス)に対し、一定時間だけ有効なセキュリティトークンを発行する仕組みです。

  • 有効期限の存在: トークンは最短15分、最長12時間で失効する。
  • アクセスキー不要: エージェント実行環境(EC2やLambda)にインスタンスプロファイルを付与すれば、コード内に秘密鍵を記述する必要がない。

スイッチロール設定の具体的なステップ

実務で頻用される「操作用アカウントへスイッチする」際の手順を整理します。

  1. ロールの作成: 操作対象のアカウント(Account B)でIAMロールを作成。信頼ポリシーに操作元アカウント(Account A)のIDを指定。
  2. 権限の付与: 操作元(Account A)のユーザー/グループに sts:AssumeRole 権限を付与。
  3. 実行: AWS CLIの場合、~/.aws/configrole_arnsource_profile を記述。

このように、インフラの権限管理を自動化・セキュアに保つことは、SaaS増えすぎ問題と退職者のアカウント削除漏れを防ぐといったID管理の全体最適化にも繋がる重要なステップです。

実務で使える検索・操作ツール比較

検索と操作の要件に応じた主要ツールの比較表です。

ツール・サービス 主な対象 検索の深さ 操作可否 導入コスト
Resource Explorer AWS全リソース メタデータのみ 不可 低(無料)
Amazon Kendra S3/各種ドキュメント 本文・セマンティック 不可 高(月額 $810~)
CloudControl API AWSリソース全般 メタデータ 可能 中(API課金)
MCPエージェント API経由のリソース 実装に依存 可能 低(開発工数のみ)

MCP(Model Context Protocol)導入時のIAM権限実装ガイド

LLMを介してAWSを操作するMCPサーバーをデプロイする際、セキュリティと利便性のバランスをどう取るべきか。具体的な実装例を示します。

特定S3バケットのみを対象にするポリシー例

「ドキュメント検索」を特定バケット(my-company-docs)に限定する場合、以下のようなIAMポリシー(JSON)が最小構成となります。

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::my-company-docs"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::my-company-docs/*"
}
]
}

よくあるエラー「AccessDenied」のデバッグ手法

AssumeRoleを用いた検索や操作でエラーが発生する場合、以下の3点を確認してください。

  • 信頼関係(Trust Relationship): IAMロール側の「信頼関係」タブに、AssumeRoleを試みているエンティティが許可されているか。
  • セッション持続時間: MCPサーバーやスクリプトが長時間稼働する場合、トークンの有効期限が切れていないか。
  • SCP(Service Control Policies): AWS Organizationsを利用している場合、親アカウント側でその操作(例:Kendraへのアクセス)が禁止されていないか。

さらに、AWSの運用だけでなく、Google WorkspaceなどのSaaSを組み合わせた業務自動化を検討しているなら、Excelと紙の限界を突破する「Google Workspace × AppSheet」業務DX完全ガイドが参考になります。AWSの強力なバックエンドとAppSheetのようなフロントエンドを組み合わせることで、非エンジニアでも安全にリソース検索結果を活用できる環境が整います。

まとめ

AWSのMCP(ドキュメント検索・リソース操作)を使いこなす鍵は、高度な検索ツールの選定以上に、「誰が、どのリソースに対し、どこまでの権限で触れるか」をAssumeRoleを用いて厳格に定義することにあります。Resource ExplorerやKendraを適切に配置し、IAMでの絞り込みを徹底することで、安全で機動的なITインフラ運用を実現してください。

実務で差がつく:IAMエンティティの使い分けとガバナンス

MCP(Model Context Protocol)を介した自動操作を導入する際、最も多い技術的負債は「個人のIAMユーザーに強力な権限を持たせ、そのアクセスキーをエージェントに転用する」ことです。これはセキュリティ上、極めて危険な構成です。以下の表を参考に、用途に応じた適切なエンティティを選択してください。

エンティティ 主な利用シーン 認証の仕組み 推奨される運用
IAM ユーザー 人間による個別操作 パスワード / 固定アクセスキー MFA(多要素認証)の必須化。プログラム利用は非推奨。
IAM ロール MCP・Lambda・EC2等 一時的認証情報(STS) AssumeRoleを活用し、必要な時だけ権限を行使する。
IAM グループ チーム単位の権限管理 部署ごとに「閲覧専用」「開発用」などのポリシーを束ねる。

AIエージェントによる「想定外の操作」を防ぐガードレール

AIがコンテキストを解釈してAWSを操作する場合、プロンプトの解釈ミスによるリソース削除や、高額な検索クエリの連発といったリスクが伴います。これを防ぐには、IAMポリシーだけでなく、Permissions Boundary(権限の境界)の設定が有効です。これにより、たとえロールに AdministratorAccess が付与されていても、境界で定義された範囲(例:特定リージョンのみ、特定タグのリソースのみ)を超える操作を物理的に遮断できます。

このような高度な権限設計とデータ統合の考え方は、AWS環境に限った話ではありません。例えば、高額なCDPは不要?BigQuery・dbt・リバースETLで構築する「モダンデータスタック」ツール選定と公式事例で解説しているような、適切なコンポーネント配置と責務分離の思想に通じるものがあります。

リファレンス:設定時に参照すべき公式ドキュメント

実装時に「要確認」となる詳細仕様や制限値については、以下の公式リソースをブックマークしておくことを推奨します。

AWSの権限管理は一度構築して終わりではなく、組織の成長に合わせて「剥がす」べき権限を常に棚卸しし続ける必要があります。ID管理の自動化については、SaaS増えすぎ問題と退職者のアカウント削除漏れを防ぐ。Entra ID・Okta・ジョーシスを活用した自動化アーキテクチャも、IDガバナンスを検討する上での一助となるでしょう。

ご相談・お問い合わせ

本記事の内容を自社の状況に当てはめたい場合や、導入・運用の設計を一緒に整理したい場合は、当社までお気軽にご相談ください。担当より折り返しご連絡いたします。

お問い合わせフォームへ

AT
aurant technologies 編集

上場企業からスタートアップまで、数多くのデータ分析基盤構築・AI導入プロジェクトを主導。単なる技術提供にとどまらず、MA/CRM(Salesforce, Hubspot, kintone, LINE)導入によるマーケティング最適化やバックオフィス業務の自動化など、常に「事業数値(売上・利益)」に直結する改善実績多数。

この記事が役に立ったらシェア: