View a markdown version of this page

MCP サーバーの接続 - AWS DevOps エージェント

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

MCP サーバーの接続

Model Context Protocol (MCP) サーバーは、外部のオブザーバビリティツール、カスタムモニタリングシステム、運用データソースからのデータへのアクセスを提供することで、 AWS DevOps Agent の調査機能を拡張します。このガイドでは、MCP サーバーを AWS DevOps エージェントに接続する方法について説明します。

要件

MCP サーバーを接続する前に、サーバーが次の要件を満たしていることを確認してください。

  • ストリーミング可能な HTTP トランスポートプロトコル – ストリーミング可能な HTTP トランスポートプロトコルを実装する MCP サーバーのみがサポートされています。

  • 認証のサポート – MCP サーバーは、OAuth 2.0 (クライアント認証情報または 3LO)、API キー/トークンベースの認証、または AWS 署名バージョン 4 (SigV4) のいずれかの認証方法をサポートする必要があります。

セキュリティに関する考慮事項

MCP サーバーを AWS DevOps エージェントに接続するときは、次のセキュリティ面を考慮してください。

MCP ツールの最大ツール名の長さは 64 文字です。エージェントスペースごとに許可される MCP ツールの最大数については、「」を参照してくださいクォータ

  • プロンプトインジェクションリスク – カスタム MCP サーバーは、プロンプトインジェクション攻撃のリスクを高める可能性があります。詳細については、「プロンプトインジェクション保護: AWS DevOps エージェントセキュリティ」を参照してください。

  • 読み取り専用ツールとアクセス – 読み取り専用 MCP ツールのみを許可リストに登録し、認証情報が読み取り専用アクセスのみを許可されていることを確認します。

プロンプトインジェクションと責任共有モデルの詳細については、AWS DevOps エージェントセキュリティ「」を参照してください。

注記

MCP サーバーがプライベートネットワーク上にある場合は、「」を参照してください。 プライベートにホストされたツールへの接続

コミュニティ MCP サーバー

AWS DevOps エージェントツールリポジトリには、Amazon Elastic Kubernetes Service (Amazon EKS) ノードログ収集、Amazon Virtual Private Cloud (Amazon VPC) DNS 解決プローブ、Amazon Relational Database Service (Amazon RDS) データベースヘルスチェックなどのディープインフラストラクチャ診断用のカスタムツールをエージェントに提供するデプロイ可能な MCP サーバーが含まれています。リポジトリは AWS DevOps エージェントサービスチームによって維持され、すべてのコントリビューションは追加される前に同じセキュリティレビューバーを通過します。利用可能なものを参照するには、GitHub ウェブサイトの MCP サーバーカタログを参照してください。

コミュニティ MCP サーバーを使用するには:

  1. サーバーの README のデプロイ手順に従って、アカウントに MCP サーバーを AWS デプロイします。

  2. 以下の MCP サーバーの登録の手順に従って、デプロイされたサーバーをエージェントスペースに機能プロバイダーとして登録します。

MCP サーバーの登録 (アカウントレベル)

MCP サーバーは AWS アカウントレベルで登録され、そのアカウントのすべてのエージェントスペース間で共有されます。個々のエージェントスペースは、各 MCP サーバーから必要な特定のツールを選択できます。

ステップ 1: MCP サーバーの詳細

  1. AWS マネジメントコンソールにサインインする

  2. AWS DevOps エージェントコンソールに移動する

  3. 機能プロバイダーページに移動する (サイドナビゲーションからアクセス可能)

  4. 利用可能なプロバイダーセクションで MCP サーバーを検索し、登録を選択します

  5. MCP サーバーの詳細ページで、次の情報を入力します。

    • 名前 – MCP サーバーのわかりやすい名前を入力します。

    • エンドポイント URL – MCP サーバーエンドポイントの完全な HTTPS URL を入力します。

    • 説明 (オプション) – サーバーの目的を特定するのに役立つ説明を追加します。

    • 動的クライアント登録を有効にする – AWS DevOps エージェントが MCP サーバーの認可サーバーに自動的に登録できるようにする場合は、このチェックボックスをオンにします。

    • プライベート接続を使用してエンドポイントに接続する – AWS DevOps Agent が MCP サーバーにプライベートにリクエストを行う場合は、このチェックボックスをオンにします。既存のプライベート接続を選択するか、新しいプライベート接続を作成できます。OAuth 認証を使用する場合、プライベート接続は MCP サーバーエンドポイントとトークン交換エンドポイントの両方に適用されます。プライベート接続が、両方のエンドポイントにトラフィックをルーティングできるホストアドレスで設定されていることを確認します。詳細については、「プライベートにホストされたツールへの接続」を参照してください。

  6. [Next] (次へ) を選択します。

注記

MCP サーバーエンドポイント URL は、アカウントの AWS CloudTrail ログに表示されます。

ステップ 2: 認可フロー

MCP サーバーの認証方法を選択します。

OAuth クライアント認証情報 – MCP サーバーが OAuth クライアント認証情報フローを使用している場合:

  1. OAuth クライアント認証情報の選択

  2. [次へ] を選択します。

OAuth 3LO (Three-Legged OAuth) – MCP サーバーが認証に OAuth 3LO を使用している場合:

  1. OAuth 3LO を選択する

  2. [次へ] を選択します。

API キー – MCP サーバーが API キー認証を使用している場合:

  1. API キーの選択

  2. [次へ] を選択します。

AWS SigV4 – MCP サーバーが AWS 署名バージョン 4 認証を使用している場合:

  1. AWS SigV4 を選択する

  2. [次へ] を選択します。

ステップ 3: 認可設定

選択した認証方法に基づいて追加の認可パラメータを設定します。

OAuth クライアント認証情報の場合:

  1. クライアント ID – OAuth クライアントのクライアント ID を入力します。

  2. クライアントシークレット – OAuth クライアントのクライアントシークレットを入力します。

  3. Exchange URL – OAuth トークン交換エンドポイント URL を入力します。

  4. Exchange Parameters – サービスで認証するための OAuth トークン交換パラメータを入力します。

  5. スコープの追加 – 認証用の OAuth スコープの追加

  6. [次へ] を選択します。

OAuth 3LO の場合:

  1. クライアント ID – OAuth クライアントのクライアント ID を入力します。

  2. クライアントシークレット – OAuth クライアントで必要な場合は、OAuth クライアントのクライアントシークレットを入力します。

  3. Exchange URL – OAuth トークン交換エンドポイント URL を入力します。

  4. 認可 URL - OAuth 認可エンドポイント URL を入力します

  5. コードチャレンジのサポート - OAuth クライアントがコードチャレンジをサポートしている場合は、このチェックボックスをオンにします

  6. スコープの追加 – 認証用の OAuth スコープの追加

  7. [次へ] を選択します。

API キーの場合:

  1. API キー名を入力する

  2. リクエストに API キーを含むヘッダーの名前を入力します。

  3. API キーの値を入力する

  4. [次へ] を選択します。

For AWS SigV4:

AWS SigV4 認証により、 AWS DevOps Agent は AWS 署名バージョン 4 を使用してリクエスト署名を行う MCP サーバーに接続できます。これは、Amazon API Gateway または SigV4 認証をサポートする他の AWS サービスでホストされている MCP サーバーに役立ちます。

  1. IAM ロールの設定 – 次のいずれかのオプションを選択します。

    • 既存のロールを使用する – ドロップダウンから既存の IAM ロールを選択します。ロールには、 AWS DevOps エージェントサービスプリンシパルがロールを引き受けることを許可する信頼ポリシーが必要です (SigV4認証用の IAM ロールの作成」を参照)。

    • 新しいロールを手動で作成する – コンソールに表示されるstep-by-step手順に従って、正しい信頼ポリシーを持つ新しい IAM ロールを作成します。

    • 専用ロールなしで登録 – IAM ロールを指定せずに MCP サーバーを登録します。 AWS DevOps エージェントは代わりに、エージェントスペースに関連付けられた AWS アカウントから IAM ロールを使用してリクエストに署名し、サーバーを関連付けるまで接続検証を延期します。エージェントスペースに接続されているアカウント間でクロス AWS アカウントアクセスする場合は、これを選択します。詳細については、「専用ロールのないクロスアカウントアクセス」を参照してください。

  2. AWS リージョン – SigV4 署名の AWS リージョンを入力します (例: us-east-1)。SigV4a マルチリージョン署名を使用するには、 と入力します*

  3. サービス名 – SigV4 署名 AWS のサービス名を入力します (execute-apiAPI Gateway など)。

  4. カスタムヘッダー (オプション) – 署名付きリクエストごとに最大 10 個のカスタムキーと値のヘッダーペアを追加します。

  5. [次へ] を選択します。

ステップ 4: 確認して送信する

  1. すべての MCP サーバー設定の詳細を確認する

  2. 送信を選択して登録を完了します

  3. AWS DevOps エージェントは MCP サーバーへの接続を検証します

  4. 検証が成功すると、MCP サーバーはアカウントレベルで登録されます。

エージェントスペースでの MCP ツールの設定

アカウントレベルで MCP サーバーを登録したら、そのサーバーから特定のエージェントスペースで使用できるツールを設定できます。

  1. AWS DevOps エージェントコンソールで、エージェントスペースを選択します。

  2. 機能タブに移動する

  3. MCP サーバーセクションで、追加 を選択します。

  4. このエージェントスペースに接続する登録済み MCP サーバーを選択します。

  5. エージェントスペースで使用できるように、この MCP サーバーのツールを設定します。

    • すべてのツールを許可する – MCP サーバーからすべてのツールを使用できるようにします

    • 特定のツールの選択 – 許可リストを作成するツールを選択できます。

  6. 追加を選択して MCP サーバーをエージェントスペースに接続します

AWS DevOps Agent は、このエージェントスペースの調査中に MCP サーバーから許可リストに登録されたツールを使用できるようになりました。

MCP サーバー接続の管理

認証情報の更新 – 登録済みの MCP サーバーの認証情報は、登録を解除することなく更新できます。 AWS DevOps Agent コンソールの Capability Providers ページに移動し、MCP サーバーを選択し、Actions メニューから Update を選択します。エージェントスペースの関連付けは保持されます。更新できる内容は、認証方法によって異なります。

  • API キー – 新しい API キー値とヘッダー名を入力して、認証情報をローテーションします。更新中にエンドポイントを変更することはできません。

  • OAuth 3LO (Three-Legged OAuth) — 認可フローを再実行して、保存されたトークンを更新します。クライアント認証情報は再入力しません。送信すると、 AWS DevOps Agent はプロバイダーの同意ページにリダイレクトして再承認を完了します。必要に応じて、認可 URL を上書きできます。空白のままにすると、 AWS DevOps Agent は MCP サーバーのメタデータから検出します。

  • AWS SigV4 – サーバー名、エンドポイント、説明、 AWS リージョン、サービス、IAM ロール、カスタムヘッダーを更新します。

OAuth クライアント認証情報を使用する MCP サーバーは更新できません。これらの認証情報を変更するには、アクティブな関連付けを削除し、MCP サーバーを登録解除して、新しい値で再登録します。

接続された MCP サーバーの表示 – エージェントスペースに接続されているすべての MCP サーバーを表示するには、エージェントスペースを選択し、機能タブに移動して MCP サーバーセクションを確認します。選択したツールをここで更新することもできます。

MCP サーバー接続の削除 – MCP サーバーをエージェントスペースから切断するには、MCP サーバーセクションでサーバーを選択し、削除を選択します。MCP サーバー登録を完全に削除するには、まずすべてのエージェントスペースから削除してから、アカウントレベルの登録を削除します。

SigV4 認証用の IAM ロールの作成

AWS SigV4 認証を使用する場合、 AWS DevOps Agent はアカウントの IAM ロールを引き受けて MCP サーバーへのリクエストに署名します。このロールには、 AWS DevOps エージェントサービスプリンシパル (aidevops.amazonaws.com) が混乱した代理保護で引き受けることを許可する信頼ポリシーが必要です。

信頼ポリシー

次の信頼ポリシーを使用して IAM ロールを作成します。を AWS リージョン ( などus-east-1) REGIONに、 を AWS アカウント ID ACCOUNT_IDに置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "aidevops.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "ACCOUNT_ID" }, "ArnLike": { "aws:SourceArn": "arn:aws:aidevops:REGION:ACCOUNT_ID:service/*" } } } ] }

信頼ポリシーには、混乱した代理問題を防ぐための以下の条件が含まれています。

  • aws:SourceAccount – ロールの引き受けを AWS 、アカウントから発信されるリクエストに制限します。

  • aws:SourceArn – アカウントの AWS DevOps エージェントサービスリソースから送信されるリクエストにロールの引き受けを制限します。

アクセス許可ポリシー

MCP サーバーの呼び出しに必要な最小限のアクセス許可を付与するアクセス許可ポリシーをロールにアタッチします。例えば、MCP サーバーが Amazon API Gateway の背後でホストされている場合、ロールには API Gateway リソースに対するexecute-api:Invokeアクセス許可が必要です。

マルチリージョン署名 (SigV4a)

MCP サーバーが複数の AWS リージョンにデプロイされている場合は、SigV4a (署名バージョン 4a) を使用してマルチリージョン署名を行うことができます。これを有効にするには、SigV4 認可を設定するときに AWS リージョン*として を入力します。SigV4a は非対称署名を使用します。これにより、1 つの署名付きリクエストを複数のリージョンで有効にできます。

専用ロールのないクロスアカウントアクセス

MCP サーバー専用の IAM ロールを登録する代わりに、ロールレス登録を使用できます。ロールなしでサーバーを登録し、エージェントスペースに既に関連付けられている AWS アカウントの IAM ロールを使用して AWS DevOps Agent がリクエストに署名します。これは、1 つの AWS アカウントを対象とする 1 つのロールではなく、MCP サーバーがエージェントスペースに接続されているプライマリアカウントとセカンダリアカウントにまたがるリソースにアクセスする必要がある場合に便利です。

仕組み

専用ロールのないクロスアカウントアクセスは、次のように機能します。

  1. ロールなしで MCP サーバーを登録する – SigV4 認可設定ステップで、専用ロールなしで登録を選択します。 AWS DevOps エージェントはサーバーを登録しますが、検証リクエストに署名するロールがないため、接続はまだ検証しません。

  2. MCP サーバーをエージェントスペースに関連付ける – MCP サーバーをエージェントスペースに追加すると、 AWS DevOps エージェントはプライマリ AWS アカウント (モニター) ロールを使用して検証します。ロールと を呼び出しlistToolsて、サーバーに到達可能であり、設定が有効であることを確認することを前提としています。エージェントスペースにはプライマリ AWS アカウントが関連付けられている必要があります。そのアカウントのロールは MCP サーバーを呼び出すことができる必要があります。

  3. 調査中 – エージェントが特定のアカウントで運用中に MCP サーバーを使用する場合、そのアカウントのロール、プライマリアカウントのプライマリアカウントロール、および各セカンダリアカウントの対応するセカンダリアカウントロールを使用してリクエストに署名します。エージェントがこの MCP サーバーで使用する各プライマリまたはセカンダリアカウントロールは、それを呼び出すことができる必要があります。

要件

ロールレス SigV4 MCP サーバーをエージェントスペースに関連付ける前に:

  • エージェントスペースにはプライマリ AWS アカウントが関連付けられている必要があります。プライマリアカウントがないと、プライマリアカウントロールがlistTools検証を実行するため、関連付けは失敗します。エラーメッセージは「専用ロールなしで登録された SigV4 MCP サーバーには、エージェントスペースにプライマリアカウントの関連付けが必要です」です。

  • プライマリアカウントロールは、MCP サーバー (API Gateway がホストするサーバーなど) execute-api:Invokeを呼び出すアクセス許可を付与する必要があります。エージェントがこの MCP サーバーで使用するすべてのセカンダリアカウントロールも、このアクセス許可を付与する必要があります。詳細については、「アクセス許可ポリシー」を参照してください。 AWS DevOps エージェントは、関連付け時にプライマリロールを使用し、それらのアカウントの調査中にセカンダリロールを使用します。

トラブルシューティング

ロールレス MCP サーバーの関連付けが失敗する:「プライマリアカウントの関連付けが必要です」

専用ロールなしで MCP サーバーを登録し、関連付けが失敗した場合、エラーメッセージを確認します。サーバーがエージェントスペースにプライマリアカウントの関連付けを必要とするというエラーが表示された場合、エージェントスペースにはプライマリ AWS アカウントが接続されていません。

AWS DevOps Agent は、エージェントスペースのプライマリ AWS アカウントの IAM ロールを使用して、ロールレス SigV4 MCP サーバーを関連付けるときに検証します。これを解決するには:

  1. プライマリ AWS アカウントがまだない場合は、エージェントスペースに追加します。

  2. アカウントの IAM ロールに MCP サーバーを呼び出すアクセス許可があることを確認します (Amazon API Gateway でホストされているexecute-api:Invokeサーバーの場合など)。

  3. MCP サーバーを再度関連付けます。

  • AWS DevOps エージェントのセキュリティ

  • エージェントスペースの設定

  • プロンプトインジェクション保護