Kiro は、Spec や Hooks などの機能を備えたエージェント型のコーディングサービスです。以前の記事では Spec 機能を使った開発フローを紹介しましたが、今回は Hook 機能 に注目します。

この記事では、Terraform で AWS 環境を管理している場面を例に、Kiro Hook を使って「作業の抜け漏れ(暗黙知)」を防ぐ方法を紹介します。

新規参画時によくある「付随作業」の抜け漏れ

AWS 環境を Terraform で管理していると、1つのリソースを追加・変更した際に、付随して確認すべき作業が発生します。既存メンバーなら自然に気づけることでも、新しく案件に参画した人には、その暗黙知を把握するのは簡単ではありません。

たとえば、Secrets Manager や Systems Manager (SSM) Parameter Store の値を追加するケースを考えてみましょう。

Terraform で aws_secretsmanager_secret などを定義して terraform apply すればリソースは作られます。しかし、それを Amazon ECS のコンテナから環境変数として利用 するには、以下のような付随作業が必要です。

  • ECS タスク定義の container_definitions (secrets パラメータ) に参照設定を追記する
  • Task Execution Role に必要な IAM 権限 (secretsmanager:GetSecretValuessm:GetParameters など) を付与する
  • カスタマー管理 KMS キーを利用している場合、復号権限 (kms:Decrypt) を付与する
  • 新しい値を反映させるための再デプロイ(Force new deployment)を行う

手順書に書いてあっても、作業のたびにすべてを思い出して確認するのは大変です。Hook を使わない場合、デプロイ後に「ECS タスクから値が参照できない」と気づき、追加調査や再作業が発生しがちです。

そこで、Kiro の Hook を使い、Terraform ファイルを変更したタイミングで自動的に確認観点を提示させる仕組みを作ります。

Kiro の Hook とは

Kiro の Agent Hooks は、IDE 内で「ファイルの保存」などの特定イベントが発生した際に、自動でアクションを実行する機能です。Hook のアクションには、主に次の2種類があります。

アクション 内容 向いている用途
Agent Prompt エージェントへ自然言語の指示を送る 変更内容に応じた確認観点の提示
Shell Command 指定したシェルコマンドを実行する fmtvalidate などの定型処理

terraform fmt のように決定的な処理は Shell Command が適していますが、今回のように「この変更に付随して何を確認すべきか」をレビュー担当者のように指摘させたい場合は、Agent Prompt を使います。

検証:Terraform 作業時に確認観点を提示させる

実際に Terraform ファイルに Secret と SSM Parameter のリソースを追加し、Kiro Hook がどのように動作するかを検証しました。

Terraform ファイルに aws_secretsmanager_secretaws_ssm_parameter を定義します。

ファイルを保存して Hook が発火すると、Kiro が定義されたリソースを検知し、チャットパネルに以下のような確認観点を提示してくれました。

ECS タスク定義での参照や IAM 権限の確認が必要である旨を自動で提示してくれました。
作業中に「この変更をするなら、ここも確認してください」とアシストしてくれるため、抜け漏れを未然に防ぐことができます。

実運用に向けた Tips と注意点

Kiro Hook は非常に便利ですが、実運用で効果的に活用するためにはいくつかポイントがあります。

1. 対象ファイルを絞り込む

すべての Terraform ファイルの保存時に Hook を発火させると、VPC や RDS などの無関係な作業中にも通知が来て煩わしくなります。.kiro/hooks/ に定義する JSON ファイルでは、以下のように対象ファイルを絞り込むのが推奨されます。

**/*.tf, **/*secret*.tf, **/*ssm*.tf, **/*parameter*.tf

2. プロンプトは具体的に書く

「Terraform を確認してください」といった曖昧な指示ではなく、何を確認してほしいのかを明確にします。

プロンプトの例:
Terraform ファイルに aws_secretsmanager_secretaws_ssm_parameter の追加または変更が含まれる場合、ECS タスク定義での参照、Task Execution Role の IAM 権限、必要に応じた KMS 復号権限を確認してください。

3. Hook はあくまで「補助」である

重要な点として、Kiro Hook は Terraform の依存関係自体を制御・解決するわけではありません。最終的には、Kiro が提示した観点をもとに、作業者が Terraform の差分や既存の設計方針を確認し、判断する必要があります。

まとめ

Kiro の Hook (Agent Prompt) を活用することで、ファイルの変更に関連する確認事項を自動で作業者に提示できます。

今回のような Secret / SSM Parameter と ECS タスク・IAM 権限の関係など、チーム内の暗黙知になりがちな部分を Hook に組み込んでおくことで、新規参画者でも安全かつスムーズに開発を進められるようになります。ぜひ試してみてください。