このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
Amazon EKS MCP サーバーの使用開始
このガイドでは、AI コードアシスタントで EKS MCP サーバーをセットアップして使用する手順について説明します。環境を設定し、サーバーに接続し、自然言語インタラクションを通じて EKS クラスターの管理を開始する方法が理解できます。
注記
Amazon EKS MCP サーバー は Amazon EKS のプレビュー版であり、変更される可能性があります。
前提条件
始める前に、次のタスクを実行していることを確認してください。
セットアップ
1. 前提条件を確認する
# Check that your Python version is 3.10 or higher python3 --version # Check uv installation uv --version # Verify CLI configuration aws configure list
2. IAM 許可をセットアップする
EKS MCP サーバーに接続するには、IAM ロールに次のポリシーがアタッチされている必要があります。eks-mcp:InvokeMcp (初期化および使用可能なツールに関する情報の取得に必要なアクセス許可)、eks-mcp:CallReadOnlyTool (読み取り専用ツールの使用に必要なアクセス許可)、および eks-mcp:CallPrivilegedTool (フルアクセス (書き込み) ツールの使用に必要なアクセス許可) です。これらの eks-mcp アクセス許可は、以下に示す読み取り専用およびフルアクセスの AWS 管理ポリシーに含まれています。
-
[IAM コンソール]
を開きます。 -
左側のナビゲーションペインで、ポリシーをアタッチするアイデンティティに応じて [ユーザー]、[ユーザーグループ]、または [ロール] を選択し、特定のユーザー、グループ、またはロールの名前を選択します。
-
[アクセス許可] タブを選択します。
-
[ポリシーをアタッチ] (または、初めての場合は [アクセス許可の追加]) を選択します。
-
ポリシーリストで、アタッチする管理ポリシーを検索して選択します。
-
[読み取り専用オペレーション]: AmazonEKSMCPReadOnlyAccess
-
[ポリシーをアタッチ] を選択します (または [次へ] を選択してから、[アクセス許可の追加] を選択して確認します)。
これによりポリシーがアタッチされ、アクセス許可はすぐに有効になります。同じアイデンティティに複数のポリシーをアタッチし、各ポリシーにさまざまなアクセス許可を含めることができます。これらのポリシーの詳細については、「Amazon Elastic Kubernetes Service に関する AWS 管理ポリシー」を参照してください。
3. AI アシスタントを選択する
次の MCP 互換 AI アシスタントのいずれか、または MCP 互換ツールを選択します。
ステップ 1: AI アシスタントを設定する
AI コードアシスタントをセットアップするには、次のいずれかのオプションを選択します。この手順を完了すると、AWS の MCP Proxy を使用するように AI コードアシスタントがセットアップされます。これは、Amazon EKS MCP サーバーへの安全で認証されたアクセスのために必要です。これには、MCP 設定ファイル (例えば、Amazon Q Developer CLI の場合は ~/.aws/amazonq/mcp.json) の追加または編集が含まれます。このプロキシはクライアント側のブリッジとして機能し、ローカルの AWS 認証情報を使用して AWS SigV4 認証を処理し、EKS MCP サーバーなどのバックエンド AWS MCP サーバーとやり取りするための動的なツール検出を有効にします。詳細については、「MCP Proxy for AWS」リポジトリ
オプション A: Amazon Q Developer CLI
Q Developer CLI は、EKS MCP サーバーと最も統合されたエクスペリエンスを提供します。
1. MCP 設定ファイルを見つける
-
macOS/Linux:
~/.aws/q/mcp.json -
Windows:
%USERPROFILE%\.aws\q\mcp.json
2. MCP サーバー設定を追加する
設定ファイルが存在しない場合は、作成します。リージョン ({region}) プレースホルダーは、ご使用のリージョンに置き換えてください。
Mac/Linux の場合:
{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }
Windows の場合 –
{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }
セキュリティ上の注意: --read-only は、読み取り専用のツールオペレーションのみを許可するために使用できます。
3. 設定を確認する
Q Developer CLI を再起動し、使用可能なツールを確認します。
q /tools
オプション B: Kiro IDE
Kiro は、組み込み MCP サポート
1. Kiro 設定を開く
-
Kiro を開く
-
[Kiro] → [設定] に移動し、「MCP Config」を検索する
-
または、
Cmd+Shift+P,(Mac) あるいはCtrl+Shift+P,(Windows/Linux) を押して、「MCP Config」を検索する
2. MCP サーバー設定を追加する
-
[ワークスペース MCP Config を開く] または [ユーザー MCP Config を開く] をクリックして、MCP 設定ファイルを直接編集します。
リージョン ({region}) プレースホルダーは、ご使用のリージョンに置き換えてください。
Mac/Linux の場合:
{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }
Windows の場合 –
{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }
セキュリティ上の注意: --read-only は、読み取り専用のツールオペレーションのみを許可するために使用できます。
オプション C: Cursor IDE
Cursor IDE は、グラフィカル設定インターフェイスを備えた組み込み MCP サポートを提供します。
1. Cursor 設定を開く
-
Cursor を開く
-
[設定] → [Cursor 設定] → [ツールと MCP] に移動する
-
または
Cmd+Shift+P(Mac) /Ctrl+Shift+P(Windows) を押して、「MCP」を検索する
2. MCP サーバー設定を追加する
-
[新しい MCP サーバー] をクリックします。
設定ファイルが存在しない場合は、作成します。リージョン ({region}) プレースホルダーは、ご使用のリージョンに置き換えてください。
Mac/Linux の場合:
{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }
Windows の場合 –
{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }
セキュリティ上の注意: --read-only は、読み取り専用のツールオペレーションのみを許可するために使用できます。
3. Cursor を再起動する
Cursor を閉じて再度開き、変更を有効にします。
4. Cursor チャットで検証する
チャットパネルを開き、以下を試します。
What EKS MCP tools are available?
使用可能な EKS 管理ツールのリストが表示されます。
オプション D: Cline (VS Code 拡張機能)
Cline は、AI アシスタンスをエディタに直接提供する、一般的な VS Code 拡張機能です。
1. Cline 設定を開く
-
Cline を開く
-
Cmd+Shift+P(Mac) /Ctrl+Shift+P(Windows) を押して、「MCP」を検索する
2. MCP サーバー設定を追加する
-
[サーバーの追加] をクリックします。
-
[ユーザー設定を開く] をクリックします。
設定ファイルが存在しない場合は、作成します。リージョン ({region}) プレースホルダーは、ご使用のリージョンに置き換えてください。
Mac/Linux の場合:
{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }
Windows の場合 –
{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }
セキュリティ上の注意: --read-only は、読み取り専用のツールオペレーションのみを許可するために使用できます。
2. VS コードを再ロードする
Cmd+Shift+P / Ctrl+Shift+P を押し、[デベロッパー: ウィンドウの再ロード] を選択します。
3. 設定を確認する
Cline を開き、次の質問をします。
List the available MCP tools for EKS
ステップ 2: (オプション) 「書き込み」ポリシーを作成する
必要に応じて、Amazon EKS MCP サーバーへのフルアクセスを提供するカスタマー管理の IAM ポリシーを作成できます。このポリシーは、書き込みオペレーションを伴う特権ツールと読み取り専用ツールの両方を含む、EKS MCP サーバー内のすべてのツールを使用するためのアクセス許可を付与します。manage_eks_stacks ツールにおけるクラスターリソースのセットアップ/ティアダウンに必要であるため、高リスクのアクセス許可 (Delete* を含むもの、または無制限の IAM リソース) がこのポリシーに含まれていることに注意してください。
aws iam create-policy \ --policy-name EKSMcpWriteManagementPolicy \ --policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": [\"eks:DescribeCluster\", \"eks:ListClusters\", \"eks:DescribeNodegroup\", \"eks:ListNodegroups\", \"eks:DescribeAddon\", \"eks:ListAddons\", \"eks:DescribeAccessEntry\", \"eks:ListAccessEntries\", \"eks:DescribeInsight\", \"eks:ListInsights\", \"eks:AccessKubernetesApi\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"eks:CreateCluster\", \"eks:DeleteCluster\", \"eks:CreateAccessEntry\", \"eks:TagResource\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"iam:GetRole\", \"iam:ListRolePolicies\", \"iam:ListAttachedRolePolicies\", \"iam:GetRolePolicy\", \"iam:GetPolicy\", \"iam:GetPolicyVersion\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"iam:TagRole\", \"iam:CreateRole\", \"iam:AttachRolePolicy\", \"iam:PutRolePolicy\", \"iam:DetachRolePolicy\", \"iam:DeleteRole\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"iam:PassRole\"], \"Resource\": \"*\", \"Condition\": {\"StringEquals\": {\"iam:PassedToService\": [\"eks.amazonaws.com\", \"ec2.amazonaws.com\"]}}}, {\"Effect\": \"Allow\", \"Action\": [\"ec2:CreateVpc\", \"ec2:CreateSubnet\", \"ec2:CreateRouteTable\", \"ec2:CreateRoute\", \"ec2:CreateInternetGateway\", \"ec2:CreateNatGateway\", \"ec2:CreateSecurityGroup\", \"ec2:AttachInternetGateway\", \"ec2:AssociateRouteTable\", \"ec2:ModifyVpcAttribute\", \"ec2:ModifySubnetAttribute\", \"ec2:AllocateAddress\", \"ec2:CreateTags\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"ec2:DeleteVpc\", \"ec2:DeleteSubnet\", \"ec2:DisassociateRouteTable\", \"ec2:DeleteRouteTable\", \"ec2:DeleteRoute\", \"ec2:DetachInternetGateway\", \"ec2:DeleteInternetGateway\", \"ec2:DeleteNatGateway\", \"ec2:ReleaseAddress\", \"ec2:DeleteSecurityGroup\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"ec2:DescribeVpcs\", \"ec2:DescribeSubnets\", \"ec2:DescribeRouteTables\", \"ec2:DescribeInternetGateways\", \"ec2:DescribeNatGateways\", \"ec2:DescribeAddresses\", \"ec2:DescribeSecurityGroups\", \"ec2:DescribeAvailabilityZones\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"cloudformation:CreateStack\", \"cloudformation:UpdateStack\", \"cloudformation:DeleteStack\", \"cloudformation:DescribeStacks\", \"cloudformation:TagResource\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"sts:GetCallerIdentity\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"logs:StartQuery\", \"logs:GetQueryResults\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"cloudwatch:GetMetricData\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"eks-mcp:*\"], \"Resource\": \"*\"}]}"
ステップ 3: セットアップを確認する
接続をテストする
AI アシスタントに簡単な質問をして、接続を確認します。
List all EKS clusters in my {aws} account
EKS クラスターのリストが表示されます。
ステップ 4: 最初のタスクを実行する
例 1: クラスターを調べる
Show me all EKS clusters and their status What insights does EKS have about my production-cluster? Show me the VPC configuration for my staging cluster
例 2: Kubernetes リソースを確認する
Get the details of all the kubernetes resources deployed in my EKS cluster Show me pods that are not in Running state or pods with any restarts Get the logs from the aws-node daemonset in the last 30 minutes
例 3: 問題のトラブルシューティングを行う
Why is my nginx-ingress-controller pod failing to start? Search the EKS troubleshooting guide for pod networking issues Show me events related to the failed deployment in the staging namespace
例 4: リソースを作成する (「書き込み」モードが有効になっている場合)
Create a new EKS cluster named demo-cluster with VPC and Auto Mode Deploy my containerized app from ECR to the production namespace with 3 replicas Generate a Kubernetes deployment YAML for my Node.js app running on port 3000
一般的な設定
シナリオ 1: 複数の AWS プロファイル
複数の AWS アカウントを使用する場合は、個別の MCP サーバー設定を作成します。
Mac/Linux の場合:
{ "mcpServers": { "eks-mcp-prod": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "production", "--region", "us-west-2" ] }, "eks-mcp-dev": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "development", "--region", "us-east-1" ] } } }
Windows の場合 –
{ "mcpServers": { "eks-mcp-prod": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "production", "--region", "us-west-2" ] }, "eks-mcp-dev": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "development", "--region", "us-east-1" ] } } }
シナリオ 2: 本番環境の読み取り専用
本番環境の読み取り専用設定を作成します。
Mac/Linux の場合:
{ "mcpServers": { "eks-mcp-prod-readonly": { "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "production", "--region", "us-west-2", "--read-only" ], "autoApprove": [ "list_k8s_resources", "get_pod_logs", "get_k8s_events" ] } } }
Windows の場合 –
{ "mcpServers": { "eks-mcp-prod-readonly": { "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "production", "--region", "us-west-2", "--read-only" ], "autoApprove": [ "list_k8s_resources", "get_pod_logs", "get_k8s_events" ] } } }
シナリオ 3: フルアクセスを備えた開発
フル書き込みアクセスを備えた開発環境用。
Mac/Linux の場合:
{ "mcpServers": { "eks-mcp-dev-full": { "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "development", "--region", "us-east-1" ] } } }
Windows の場合 –
{ "mcpServers": { "eks-mcp-dev-full": { "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "development", "--region", "us-east-1" ] } } }
考慮事項
セキュリティ
許可された入力メカニズムを介してシークレットや機密情報を渡さない:
-
apply_yaml で適用される YAML ファイルにシークレットや認証情報を含めないでください。
-
機密情報をプロンプトでモデルに直接渡さないでください。
-
CloudFormation テンプレートまたはアプリケーションマニフェストにシークレットを含めないでください。
-
モデルにシークレットデータを提供する必要があるため、Kubernetes Secrets の作成に MCP ツールを使用しないでください。
-
Kubernetes ポッド内のアプリケーションログに、機密情報を記録しないでください。
YAML コンテンツのセキュリティ:
-
信頼できるソースの YAML ファイルのみを使用してください。
-
サーバーは YAML コンテンツについて Kubernetes API の検証に依存しており、独自の検証は実行しません。
-
クラスターに適用する前に、YAML ファイルを監査してください。
MCP を介してシークレットを渡す代わりに、次の操作を行います。
-
機密情報の保存には、AWS Secrets Manager または Parameter Store を使用します。
-
サービスアカウントに適切な Kubernetes RBAC を設定します。
-
ポッドから AWS サービスにアクセスするには、サービスアカウントの IAM ロール (IRSA) を使用します。
次回の予定
ツールと設定の完全なリストについては、「Amazon EKS MCP サーバーのツール設定リファレンス」を参照してください。