Kiro Web のサンドボックスから AWS アカウントのリソースを参照できるように設定してみた

Kiro Web のサンドボックスから AWS アカウントのリソースを参照できるように設定してみた

2026.06.22

いわさです。

Kiro Web はブラウザ上で AI と一緒にコーディングできる開発環境です。
2026年5月にパブリックプレビューとしてリリースされました。

https://dev.classmethod.jp/articles/kiro-web-collaborative-github-pr-kiro-fix/

普段 GitHub リポジトリと AWS Amplify を連携させてデプロイしているのですが、Kiro Web のセッション中にデプロイされたリソースの状態をエージェントに確認させたいことがあります。
ただ、Kiro Web のエージェントはサンドボックス環境で動作するため、デフォルトでは外部の AWS アカウントへのアクセス手段を持っていません。
Kiro IDE や Kiro CLI であればローカル環境の ~/.aws/credentials や環境変数をそのまま使えますが、Kiro Web ではサンドボックスの設定画面から明示的に認証情報を渡してあげる必要があります。

いくつかの方法を試した結果、MCP サーバー(mcp-proxy-for-aws)+ Secrets の組み合わせが一番安定して動いたので、その過程を紹介します。

実際に試してみる

Kiro Web の設定画面

Kiro Web の左下のアカウントメニューから「Settings」を開きます。

9FD6E669-9E79-4650-8205-E7CDDFC99EEA_4_5005_c.jpeg

左メニューから「Agent」タブを選択すると、サンドボックスの設定セクションが表示されます。

57AC2003-C53C-431E-8819-453A63A7E671.png

ここで MCP server settings、Environment variables、Secrets の 3 つが設定できます。
公式ドキュメントによると、Secrets は暗号化された状態で保存され、タスク実行時にサンドボックス内の環境変数として展開されるとのこと。

Secrets are encrypted at rest and exposed as environment variables in the isolated sandbox during task execution.

https://kiro.dev/docs/web/sandbox/environment-variables

IAM ユーザーの作成

後述しますが、Kiro Web のサンドボックスにはデフォルトで何かしらの IAM ロールが割り当てられています。
ただし権限が限定的で Amplify などのリソース参照ができなかったため、自分の AWS アカウントでリソース参照用の IAM ユーザーを別途作成することにしました。

今回は kiro-web という名前で作成し、ReadOnlyAccess ポリシーをアタッチしています。

764FEF15-D0FA-43F5-8B5F-1B111DA07890.png

B67F7A86-CE25-478A-B3A9-DDE1DB307947.png

セキュリティ認証情報タブからアクセスキーを作成しておきました。

Environment variables + AWS CLI を試す

最初に試したのは、Environment variables に AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY を設定して AWS CLI 経由でアクセスする方法です。

BA7554FB-FEC9-4FE0-8A1F-9C191C44ABEF.png

サンドボックスには AWS CLI(v2.33.15)がプリインストールされていたので、環境変数を設定すれば使えるだろうという目論見でした。

ところが、設定直後のセッションではまだ認証情報が反映されていませんでした。

F4C1E79C-016A-4927-8681-B5BFA09CE3DD.png

Kiro に聞いてみたところ、環境変数の変更は現在のセッションには反映されず、新しいセッションを開始する必要があるとのこと。

新しいセッションを開始し直して「環境変数のアクセスキーとシークレットを使って、AWS CLI で AWS アカウントのリソースにアクセスできそうですか?」と細かく指示を出したところ、今度はアクセスできました。

8F3FEA45-500B-4932-BC56-53590258C1AD.png

sts get-caller-identity の結果から AWS アカウントに接続できていることが確認できます。

ただし、この方法はエージェントに「AWS CLI を使って」と具体的に指示すると動くこともあるのですが、シンプルに「Amplify のアプリ一覧を確認して」とだけ依頼すると、AWS CLI を使わずに「認証情報が設定されていないのでアクセスできません」と返されるケースがありました。

317A3C6D-167C-4735-B22B-028614DFAAD0.png

エージェントが AWS CLI の認証情報を認識してくれるかどうかが安定しないみたいです。

MCP サーバー + Secrets を試す

次に試したのが、AWS MCP サーバー(mcp-proxy-for-aws)を使う方法です。
こちらは MCP サーバーの設定で環境変数を ${key_name} 記法で参照できるので、Secrets に認証情報を設定しつつ MCP サーバーからそれを参照させる構成にしました。

Settings → Agent → MCP server settings の「+ Add server」から、以下の JSON を貼り付けます。

{
  "mcpServers": {
    "aws-mcp": {
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws==1.6.2",
        "https://aws-mcp.us-east-1.api.aws/mcp",
        "--metadata",
        "AWS_REGION=ap-northeast-1"
      ],
      "env": {
        "AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}",
        "AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}"
      }
    }
  }
}

1E1C505D-BB88-49FD-9CD8-33A72AF03C24.png

mcp-proxy-for-aws は AWS が提供する MCP プロキシで、AWS の認証情報を使ってリモート MCP サーバーに接続するツールです。

https://pypi.org/project/mcp-proxy-for-aws/

env${AWS_ACCESS_KEY_ID}${AWS_SECRET_ACCESS_KEY} は、Secrets に設定した値がサンドボックス起動時に解決されます。

Both environment variables and secrets use the same syntax. The values are resolved when the sandbox starts.

https://kiro.dev/docs/web/sandbox/mcp

Secrets 側にも AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY を設定しておきます。

24F01793-4215-474A-AD23-81AD488B8523.png

設定後の画面です。
MCP サーバーが STDIO タイプで登録されていることが確認できます。

MCP サーバー経由での AWS アクセス

新しいセッションで「東京リージョンの Amplify のアプリ一覧を確認してください」と依頼したところ、@tool-server/custom_mcp_aws-mcp_aws___call_aws というツールが呼ばれて、正常に Amplify アプリ一覧を取得できました。

689ADCA2-1D8A-46F9-89DC-1DB493F3797E.png

MCP サーバー経由だと AWS 操作用のツールとしてエージェントに認識されるため、「Amplify のアプリ一覧を確認して」とだけ依頼しても迷わずツールを呼んでくれます。
AWS CLI の方法だと「AWS CLI を使って」と明示的に指示しないと動かないケースがあったので、この安定感の差は大きいですね。

MCP サーバーのみで Secrets を設定しない場合(権限不足で失敗)

ちなみに、MCP サーバーのみ設定して Secrets を設定しないパターンも試してみました。

この場合、サンドボックスのデフォルト認証情報が使われるのですが、AccessDeniedException になりました。

D7EA6493-1DE7-4719-AC05-59883EC2FA93.png

amplify:ListApps アクションの実行権限がないようですね。
やはり自分の IAM ユーザーの認証情報を Secrets に設定する必要があります。

ちなみにエラーメッセージを見ると、BigWeaverMdeEnvironmentRole という IAM ロールが使われていることがわかります。
AWS アカウント ID も自分のものではなく、Kiro Web の基盤側のアカウントっぽいですね。
「BigWeaver」「Mde」あたりの命名から察するに、Kiro Web のサンドボックス基盤の内部的なロールが見えている状態みたいです。
このロールにはごく基本的な権限しか付与されていないようなので、自分の AWS アカウントのリソースを参照するには別途認証情報が必要ということですね。

さいごに

本日は Kiro Web のサンドボックスから AWS アカウントのリソースを参照できるように設定してみました。

今時点では MCP サーバー(mcp-proxy-for-aws)+ Secrets に認証情報を設定する方法が一番安定しています。
AWS CLI + 環境変数の方法だとエージェントが認証情報を認識してくれないケースがあるので、MCP 経由の方がおすすめです。

将来的にはサービスロール的な仕組みで、IAM ユーザーのアクセスキーを発行せずにサンドボックスから AWS アカウントにアクセスできるようになると嬉しいかも。
アップデートに期待したいところです。

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事