Windows 11 端末に Kiro をインストールし、Spec を途中まで試してみた

Windows 11 端末に Kiro をインストールし、Spec を途中まで試してみた

Kiro スペック (spec) という事前計画の作成をサポートしてくれる機能を試してみました。 やりたいことを自然言語で書くと、それをもとに仕様書、設計書、実行計画を作ってくれて、実装もサポートしてくれるという感じでした。
Clock Icon2025.07.16

コーヒーが好きな emi です。最近はカフェインを控えています。

2025/7/14、AWS より新たな AI IDE(統合開発環境)である Kiro が発表されました。ひとまずどんなものか確認したいので、手元の Windows にインストールしてざっくり動きをフィーリングで試してみました。

最初に所感

Kiro スペック (spec) という事前計画の作成をサポートしてくれる機能を試してみました。
やりたいことを自然言語で書くと、それをもとに仕様書、設計書、実行計画を作ってくれて、実装もサポートしてくれるという感じでした。

やりたいことはあるけれど、他の人にその要件を伝えたり文章化したりするのは大変です。この部分のドキュメンテーションを自動化してくれるのは、かなり価値があるのではないでしょうか。

できるエンジニアの方は、ドキュメントもなく脳内でさまざまなタスクが完結していくイメージがありますが、このツールはその脳内の思考プロセスを言語化してくれます。今何をやっているのか、どういう思想で設計しているのかが可視化されるため、思考の透明性が格段に向上します。

要件の曖昧さから具体的な実装計画への橋渡しを自動化してくれる点がすごいなと思いました。

始め方

Get Started のページに進め方が書いてあります。
https://kiro.dev/docs/getting-started/

日本語のブログもあるので見てみます。

https://aws.amazon.com/jp/blogs/news/introducing-kiro/

主な機能として、以下のようなものがあるそうです。

  • Kiro スペック (spec) :事前計画の作成をサポートしてくれる
  • Kiroフック (hook):リリース前の品質チェックやドキュメント化などをサポートしてくれる

本記事ではチャット機能と、Kiro スペック (spec) をさわりだけ試してみました。

Kiro の最新情報は、https://kiro.dev/ をご覧ください。

とのことなので、こちらのページにいってみます。

https://kiro.dev/

ダウンロードとインストール

Visual Studio Code で使えるのかなと思ったのですが、Download for Windows があるので一旦ダウンロードしてみましょう。

kiro-windows_1

インストーラをダウンロードしたら、インストールを開始します。利用規約に同意し、
kiro-windows_2

インストール先はデフォルトで進めます。
kiro-windows_3

kiro-windows_4

この辺りもデフォルトで進めます。
kiro-windows_5

インストールします。
kiro-windows_6

完了します。
kiro-windows_7

Kiro が起動してきました。サインインをする必要があります。私は一旦 AWS Builder ID でログインすることにしました。Q Developer と同じですね。
kiro-windows_8

kiro-windows_9

Q Developer へのアクセスを許可する画面が出ました。許可で進めます。
kiro-windows_10

許可すると、ブラウザは閉じて良いよ、となります。
kiro-windows_11

Kiro アプリに戻ります。Import from VS Code というボタンが出たのでクリックしてみます。
kiro-windows_12

Kiro を再起動するようポップアップがでました。再起動します。
kiro-windows_13

Kiro が再起動されると同じ画面に戻ってきました。再度 Import from VS Code をクリックします。
kiro-windows_14

kiro-windows_15

ダークモードかライトモードか選択できます。このままダークでいきます。
kiro-windows_16

Shell のセットアップを行います。
kiro-windows_17

終わりました。Shell のセットアップで WSL などが使えると良かったのですが、ボタンクリックでそのまま終わってしまいました。
kiro-windows_18

私のノート PC の画面全体はこんな感じです。Kiro アプリが起動していますが、見た目はまるで Visual Studio Code のようです。Visual Studio Code に入れている Terraform 拡張も見えているので、中で連携していそうです。
Clone repository で Github のリポジトリをクローンしてみます。
kiro-windows_19

今回は以下のブログで作成した、パスと IP を指定して AWS WAF のルールグループを動的に生成する Terraform コードをクローンしてみます。
https://dev.classmethod.jp/articles/terraform-dynamic-aws-waf-rules/

https://github.com/emi-ki/terraform-dynamic-aws-waf-rules
kiro-windows_20

手元の Windows 端末ローカルでコードを置く場所を指定します。
kiro-windows_21

クローンできたら、リポジトリを開きます。
kiro-windows_22

こんな画面になりました。
kiro-windows_23

Chat

https://kiro.dev/docs/chat/

下部のチャットでメッセージが入れられるようになっていたので、自然言語で聞いてみます。

このリポジトリの内容を解説してください。

kiro-windows_24

結果
Kiro
このリポジトリの内容を解説するために、まず主要なファイルとフォルダ構造を確認してみますね。

Read file(s)

README.md
Searched workspace
modulesフォルダの詳細構造を確認する
Searched workspace
sharedフォルダの詳細構造を確認する
Read file(s)

main.tf

variables.tf

outputs.tf
Read file(s)

waf_rules.tf

outputs.tf

locals.tf
このリポジトリは AWS WAF(Web Application Firewall)のルールを動的に生成するTerraformモジュール です。以下が主な内容です:

概要
目的: 特定のパスに対してIPアドレス制限を動的に設定できるAWS WAFルールグループを作成
仕組み: パスとIPアドレスのリストを指定するだけで、必要なWAFリソースを自動生成
フォルダ構成
modules/waf/
WAFの核となるTerraformモジュール:

main.tf: WAFの主要リソース(IP Set、ルールグループ、Web ACL、ログ設定)
variables.tf: 入力変数の定義
outputs.tf: 出力値の定義
locals.tf: 内部データ変換ロジック
shared/common_values/
共通設定を管理:

waf_rules.tf: アクセス制限するパスとIPアドレスの設定
outputs.tf: 設定値の出力
主な機能
動的ルール生成: 設定ファイルに記述したパス・IP組み合わせごとに自動でWAFルールを作成

IP制限ロジック:

指定パスにアクセスがあった場合
許可IPリスト以外からのアクセスをブロック
ログ機能:

CloudWatch Logsでブロック・カウント・CAPTCHAアクションを記録
30日間の保持設定
ALB連携: Application Load Balancerに自動でWAFを関連付け

設定例
現在の設定では /ristrict/sample2/ と /ristrict/sample3/ パスに対して、全IPアドレス(0.0.0.0/1, 128.0.0.0/1)からのアクセスを許可する設定になっています。

実際の運用では、これらを特定のIPアドレスに変更して使用します。

このモジュールを使うことで、複数のパスに対するIP制限を効率的に管理できる仕組みになっています。

kiro-windows_25

リポジトリの解説をするために、ステップバイステップでリポジトリの解析を行っているようです。
まず Read files アクションで Readme.md を読み、Searche Workspace アクションでモジュール文字の中身を解析し、ファイルの詳細を読んで、リポジトリを解説してくれました。

さて、画像もメッセージに添付できそうだったので貼り付けてみます。
kiro-windows_26

An unexpected error occurred, please retry.

うまくいきませんでした…私が何度か画像を貼ったり消したりしたので何か不具合が起こったのかもしれません。
kiro-windows_27

Vibe Codingをするにはどう操作したらいいですか?

kiro-windows_28

An unexpected error occurred, please retry.

kiro-windows_29

/ristrict/sample3/ というパスに対し、10.0.0.5/20 からの通信を許可するようコーディングしてください。

kiro-windows_30

An unexpected error occurred, please retry.

kiro-windows_31

うまくいかなくなってしまいました。画像の貼り付け部分で不具合が起こってしまったかもしれません。一旦ここまでにします。

Kiro スペック (spec) を試す

Kiro スペック (spec) を試してみます。
https://kiro.dev/docs/specs/

Kiro のご紹介 – プロトタイプからプロダクションまで、あなたと共に働く新しい Agentic IDE | Amazon Web Services ブログ によると、「機能を深く考える必要がある時、事前計画が必要なリファクタリング作業、システムの動作を理解したい時など、プロダクションに移行するために必要なほとんどの場面で有用な成果物です。」 と書かれています。

公式ドキュメントには英語で以下のようなことができると書かれています。

  • 要件を受け入れ基準を含むユーザーストーリーに分解する
  • シーケンス図とアーキテクチャプランを使用して設計ドキュメントを作成します
  • 個別のタスクにわたる実装の進捗状況を追跡する
  • 製品チームとエンジニアリングチーム間で効果的に連携する

やってみましょう。画面左の Kiro のお化けアイコンをクリックし、SPECS で + マークをクリックして Create a new spec をクリックします。
kiro-windows_32

仕様を書く欄が出てくるので、やりたいことを書き Enter を押下します。
kiro-windows_33

結果
パスベースのアクセス制御機能を実装するスペックを作成しましょう。まず、この機能の要件を整理します。

Error(s) while searching workspace
Check if .kiro directory exists to create specs folder structure
Created

requirements.md

パスベースのアクセス制御機能の要件書を作成しました。この機能では、/ristrict/sample3/ パスに対して 10.0.0.5/20 からの通信のみを許可する仕組みを実装します。

要件には以下の主要な機能が含まれています:

IPアドレス範囲による基本的なアクセス制御
設定可能なアクセス制御ルール管理
セキュリティ監査のためのログ機能
テスト可能性の確保
要件書の内容は適切でしょうか?もしそうであれば、設計フェーズに進むことができます。

なるほど、要件書を作成してくれました。C:\Users\kitani.emi\Documents\GitHub\terraform-dynamic-aws-waf-rules\.kiro\specs\path-based-access-control\requirements.md というファイルが作成されています。

要件書の内容が良ければ、Move to design phase をクリックし設計フェーズに進みます。
kiro-windows_34

結果
要件が承認されましたので、設計フェーズに進みます。まず、この機能を実装するための技術的な調査を行い、設計書を作成します。

現在のプロジェクト構造を確認して、どのような技術スタックを使用しているかを把握しましょう。

Read file(s)

README.md
Searched workspace
Explore the modules directory to understand the current WAF implementation
Read file(s)

main.tf

variables.tf

locals.tf

outputs.tf
Searched workspace
Check the shared directory to understand how WAF rules are configured
Read file(s)

waf_rules.tf

outputs.tf
現在のプロジェクト構造を理解しました。これはTerraformを使用してAWS WAFのルールを動的に生成するプロジェクトです。設計書を作成します。

Created

design.md

パスベースのアクセス制御機能の設計書を作成しました。この設計では、既存のTerraform AWS WAF動的ルール生成システムを活用して、/ristrict/sample3/ パスに対する 10.0.0.5/20 からのアクセス制御を実装します。

設計の主要なポイント:

既存アーキテクチャの活用: 現在の動的ルール生成システムを拡張
設定ベースの管理: waf_rules.tf での簡単な設定変更
包括的なログ記録: CloudWatch Logsでのセキュリティ監査
堅牢なエラーハンドリング: Terraform検証とAWS WAF制約への対応
段階的テスト戦略: 単体テストから機能テストまでの包括的なテスト
設計書の内容は適切でしょうか?もしそうであれば、実装計画フェーズに進むことができます。

次は設計書を作成してくれました。
kiro-windows_35

設計書の内容が良ければ、Move to implementation phase をクリックし実行計画フェーズに進みます。
kiro-windows_36

結果
設計が承認されましたので、実装計画を作成します。要件と設計に基づいて、具体的なコーディングタスクのリストを作成します。

Created

tasks.md

パスベースのアクセス制御機能の実装計画を作成しました。この計画では、既存のTerraform AWS WAFシステムに /ristrict/sample3/ パスへの 10.0.0.5/20 からのアクセス制御を追加するための具体的なコーディングタスクを定義しています。

実装計画の主要な流れ:

準備フェーズ: 既存設定の検証とバックアップ
検証ロジック: IPアドレス範囲の計算と検証機能
設定追加: WAFルールの設定ファイル更新
検証フェーズ: Terraform設定の妥当性確認
テストフェーズ: 機能テスト、ログ記録、エラーハンドリング
統合フェーズ: 実際のリソース作成と動作確認
セキュリティフェーズ: セキュリティテストの実行
ドキュメント: コメントと説明の追加
各タスクは段階的に実行でき、前のタスクの結果を次のタスクで活用する構造になっています。

実装計画は適切でしょうか?

実装計画が作成されました。Finalize task list でタスクを作成します。
kiro-windows_37

結果
実装計画が承認されました!

パスベースのアクセス制御機能のスペック作成が完了しました。以下の3つのドキュメントが作成されています:

要件書 (.kiro/specs/path-based-access-control/requirements.md): 機能要件と受け入れ基準
設計書 (.kiro/specs/path-based-access-control/design.md): アーキテクチャと技術設計
実装計画 (.kiro/specs/path-based-access-control/tasks.md): 具体的なコーディングタスク
これで設計と計画のフェーズは完了です。実際の実装を開始するには、tasks.md ファイルを開いて、各タスク項目の横にある「Start task」ボタンをクリックしてください。タスクは順番に実行することをお勧めします。

最初のタスク「既存設定の検証とバックアップ作成」から始めて、段階的に /ristrict/sample3/ パスに対する 10.0.0.5/20 からのアクセス制御機能を実装していくことができます。

要件書、設計書、実装計画(具体的なコーディングタスク)が作成されました。
kiro-windows_38

.kiro ディレクトリを開くと、作成されたファイルが確認できます。tasks.md をクリックすると、10 個のタスクが作成されています。

tasks.md
# 実装計画

- [ ] 1. 既存設定の検証とバックアップ作成

  - 現在の `shared/common_values/waf_rules.tf` の内容を確認し、既存ルールとの競合がないことを検証する
  - 設定変更前のバックアップを作成する
  - _要件: 2.2_

- [-] 2. IPアドレス範囲の計算と検証ロジック実装

  - `10.0.0.5/20` CIDR記法の正確性を検証するテストケースを作成する
  - IPアドレス範囲(10.0.0.0 - 10.0.15.255)の境界値テストを実装する
  - AWS WAF制約(/0サフィックス禁止)に対する検証ロジックを追加する
  - _要件: 4.2, 4.3_

- [ ] 3. WAFルール設定の追加
  - `shared/common_values/waf_rules.tf` の `access_ristricted_paths_ips` リストに新しいルールを追加する
  - ルール名: `access-ristrict-sample3`、パス: `/ristrict/sample3/`、IP範囲: `10.0.0.5/20` を設定する
  - 優先度の競合を避けるため適切な優先度値を設定する
  - _要件: 1.1, 1.2, 2.1_

- [ ] 4. Terraform設定の検証
  - `terraform validate` コマンドで構文エラーがないことを確認する
  - `terraform plan` コマンドで期待されるリソース変更を確認する
  - 新しいIP Set、Rule Group、Web ACLルールが正しく生成されることを検証する
  - _要件: 4.1_

- [ ] 5. アクセス制御機能のテスト実装
  - 許可範囲内IPアドレス(10.0.0.5, 10.0.8.100, 10.0.15.255)からのアクセステストケースを作成する
  - 許可範囲外IPアドレス(10.0.16.1, 192.168.1.1)からのアクセステストケースを作成する
  - 対象外パス(/other/path/)へのアクセステストケースを作成する
  - _要件: 4.1, 4.2_

- [ ] 6. ログ記録機能の検証
  - CloudWatch Logsでアクセス試行が正しく記録されることを確認するテストを作成する
  - BLOCKアクションのログ出力形式を検証する
  - ALLOWアクションのログ出力形式を検証する
  - _要件: 3.1, 3.2, 3.3_

- [ ] 7. エラーハンドリングのテスト
  - 無効なIPアドレス形式(例: 10.0.0.5/33)に対するエラーハンドリングをテストする
  - 無効なCIDR記法(例: 10.0.0.5/abc)に対するエラーハンドリングをテストする
  - 重複する優先度設定に対するエラーハンドリングをテストする
  - _要件: 4.3_

- [ ] 8. 統合テストの実行
  - `terraform apply` でリソースを実際に作成し、AWS WAFの動作を確認する
  - 作成されたIP Set、Rule Group、Web ACLの設定内容を検証する
  - ALBとの関連付けが正しく動作することを確認する
  - _要件: 1.1, 1.2, 1.3_

- [ ] 9. セキュリティテストの実行
  - 境界値IPアドレス(10.0.0.0, 10.0.15.255, 10.0.16.0)でのアクセス制御動作を検証する
  - パストラバーサル攻撃パターン(/ristrict/sample3/../admin/)に対する防御を確認する
  - IPスプーフィング対策の動作を検証する
  - _要件: 1.3, 4.2_

- [ ] 10. ドキュメントとコメントの追加
  - 新しく追加したルールに対する説明コメントを `waf_rules.tf` に追加する
  - IPアドレス範囲の計算方法と制約事項をコメントで説明する
  - 設定変更手順のドキュメントを更新する
  - _要件: 2.1, 2.2_

kiro-windows_39

Start task をクリックして、上から順番にタスクを実行していくと、コードの実装、テスト、ドキュメントの更新まで完了するようです。上からタスクをクリックしていきます。
kiro-windows_40

右のチャット欄でタスクの進行が確認できます。コマンドを実行する部分は人間が実行してやる必要があります。内容を確認し、実行します。
kiro-windows_41

ターミナルが開き、コマンドが実行されました。
kiro-windows_42

タスク 1 個目が終わりました。
kiro-windows_43

続いてタスク 2 個目を Start task で開始します。
kiro-windows_44

コマンドは人間が手動で実行します。
kiro-windows_45

…という形で進めていくのですが、私は手元の Windows 端末の開発環境がうまく整っておらず、Python を実行しようとしてエラーになったりしました。一旦 Kiro の Spec がどんなものか確認できたので、本記事はここまでにします。

その他機能

Kiroフック (hook) を使うと、開発者が見落としたことをキャッチしたり、作業中にバックグラウンドで定型業務を完了するような動きをしてくれるそうです。
https://kiro.dev/docs/hooks/

画面上に表示されていますが MCP もサポートされているので、外部 MCP サーバーを設定しておくこともできます。

プライバシーとセキュリティ

https://kiro.dev/docs/reference/privacy-and-security/

Kiro でユーザーが入力した情報は学習に利用される場合があると書かれています。
Amazon Q Developer Pro サブスクリプションを持っていて、Amazon Q Developer Pro サブスクリプションを持つ AWS アカウントを通じて Kiro にアクセスする場合は学習には利用されないそうです。
Kiro の無料利用枠を使っている場合、オプトアウトの設定を行うと、コンテンツは学習に利用されなくなるそうです。

おわりに

最初の所感と被りますが…

やりたいことを自然言語で書くと、それをもとに仕様書、設計書、実行計画を作ってくれて、実装もサポートしてくれるという感じでした。

要件の曖昧さから具体的な実装計画への橋渡しを自動化してくれる点がすごいですね。
アイデアから実装までの認知的負荷が大幅に軽減され、より本質的な問題解決に集中できるようになると思います。

が、私はまずは Kiro を WSL で動かすにはどうしたらいいのか、手元の開発環境を整えるところを頑張らないとな、と思っています。

あとは、Kiro に作ってもらった仕様書、設計書、実行計画を Claude Code に読み込ませるとうまいこと実装してくれるという技もあるようです。確かに Kiro のタスク実行は開始してから少し待つな、という印象があり、うまいこと別のツールと組み合わせると速度が向上するかもしれません。。

本記事への質問やご要望については画面下部のお問い合わせ「DevelopersIO について」からご連絡ください。記事に関してお問い合わせいただけます。

参考

https://github.com/kirodotdev/Kiro/tree/main

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.