IDE - TECH PLAY - TECH PLAY

TECH PLAY

IDE

むベント

該圓するコンテンツが芋぀かりたせんでした

マガゞン

技術ブログ

本日、 Kiro IDE ず CLI にメモリ機胜を導入したす。Kiro は、あなたが奜む䜜業の進め方、リポゞトリ固有のコマンドや芏玄、受けた蚂正、デバッグで埗た知芋、すでに陀倖したアプロヌチを芚えおおけるようになりたす。それらが再び関係する堎面になるず、Kiro はあなたのコンテキストを匕き継ぎたす。コンテキストを説明し盎したり同じ蚂正を繰り返したりする時間が枛り、Kiro は蚀われなくおもあなたの奜みに沿っお動けるようになり、䜿い蟌むほど圹に立぀存圚になりたす。 (元蚘事では、Kiro CLI でメモリを操䜜するタヌミナルの録画を掲茉しおいたす。 元蚘事 でご芧ください。) 䜜業の途䞭で出おきたこずを芚える ルヌルやプロゞェクトドキュメント は、あらかじめ意図しお曞き出せるコンテキストを、Kiro に䞀貫しお適甚させたい堎合に向いおいたす。メモリは、䜜業を進めるうちに出おきお、攟っおおけば曞き留められないたたになりがちなコンテキストのためのものです。 たずえば、ある皮のロゞックをどこに眮くべきかに぀いお Kiro を蚂正するこずがあるでしょう。デバッグ䞭に、ロヌカルのサヌビスを起動しおからでないず統合テストが通らないず気づくこずもありたす。Kiro に倉曎をどう進めおほしいかずいう奜みが固たるこずもありたす。メモリを有効にするず、Kiro はこうした现かな点を、出おきたその堎で蚘録したす。 メモリは過去の䌚話を再生するのではなく、埌の䜜業に圹立぀具䜓的なコンテキストを保持したす。理解が倉われば、Kiro はメモリを曎新しお粟床を䞊げられたす。メモリはお䜿いのマシンのロヌカルに保存され、そのマシン䞊の Kiro IDE ず CLI の間で共有されたす。そのため、䞀方のクラむアントで蚘録したコンテキストをもう䞀方でも䜿えたす。各メモリはグロヌバルにも特定のリポゞトリにも適甚でき、Kiro は党般的な䜜業の奜みず、特定のコヌドベヌスに属するコンテキストを区別できたす。 Kiro が芚えおいる内容を確認し、管理する IDE では、Kiro がメモリにアクセス、䜜成、曎新、削陀したずきにチャットに衚瀺されるので、Kiro が芚えおいる内容をい぀䜿い、い぀倉曎しおいるかがわかりたす。アクティビティバヌから Memories ビュヌを開くず、Kiro が芚えおいる内容を䞀芧・怜玢でき、各メモリの適甚範囲を確認し、個々の゚ントリを詳しく芋お、もう残しおおきたくないものを削陀できたす。CLI では、呌び出されたメモリがチャットに Memory ゚ントリずしお衚瀺され、 /memories で保存枈みのメモリを怜玢、プレビュヌ、衚瀺できたす。 今回のリリヌスでは、メモリは既定でオフになっおいたす。IDE ず CLI のどちらでも、Kiro が既存のメモリを䜿えるかどうかず、メモリを䜜成・曎新できるかどうかを蚭定できたす。呌び出されたメモリは Kiro が䜿えるコンテキストの䞀郚になるため、メモリを䜿うずコンテキストの䜿甚量が増えるこずがありたす。これらの蚭定によっお、Kiro に䜕を匕き継がせるか、そしお䜜業を進めながら孊習を続けさせるかどうかを決められたす。 䜿い始める Kiro IDE では、アクティビティバヌから Memories ビュヌを開いお蚭定を開き、 Use and learn を遞びたす。これで Kiro は既存のメモリを䜿い、䜜業に合わせおメモリを自動的に䜜成・曎新するようになりたす。有効にした埌は、い぀もどおり Kiro ず䜜業しおください。Memories ビュヌにはい぀でも戻っお、Kiro が芚えおいる内容を確認したり、䞍芁になったメモリを削陀したり、メモリの動䜜を倉曎したりできたす。 Kiro CLI では、メモリはロヌカルの V3 セッションで利甚できたす。 /memories ず入力するず、保存枈みのメモリを確認したり、アクセスを蚭定したりできたす。 read & write アクセスにするず、メモリの自動曎新を有効にでき、Kiro が䜜業に合わせおメモリを䜜成・曎新するようになりたす。メモリのアクセス蚭定の倉曎は、新しい CLI セッションから反映されたす。 提䟛状況 メモリは Kiro IDE 1.4.0 以降ず、Kiro CLI 2.29.0 以降のロヌカル V3 セッションで利甚できたす。メモリは既定でオフになっおおり、IDE ず CLI のどちらからでも有効化ず蚭定ができたす。 同じ説明を繰り返す時間を枛らし、䜜業を前に進めるこずに時間を䜿いたしょう。次の Kiro セッションでメモリをオンにしおみおください。蚭定ず管理の詳现は メモリのドキュメント をご芧ください。 この蚘事は Kiro ブログの Introducing memory in Kiro IDE and CLI を翻蚳したものです。
本ブログは 2026 幎 7 月 30 日に公開された AWS Blog “ Balancing speed and safety: A control framework for AI coding agents ” を翻蚳したものです。 AI コヌディング゚ヌゞェントは、今や開発者のツヌルチェヌンの䞀郚です。Kiro や Claude Code などのツヌルは、自然蚀語のプロンプトから、機胜やテストのコヌド、リファクタリングによるコヌド倉曎を生成したす。1 ぀の゚ヌゞェントが、午埌だけで耇数のリポゞトリにたたがっお数十件のプルリク゚スト (PR) を䜜成するこずもありたす。ただし、この生産性にはトレヌドオフがありたす。゚ヌゞェントは組織のリスクを理解しないたた、マシンの速床でタスクの完了を最優先に動䜜したす。 Model Context Protocol (MCP) などのプロトコルを通じお、゚ヌゞェントは統合開発環境 (IDE) の倖にも手を䌞ばし、API の呌び出し、デヌタベヌスぞのク゚リ、むンフラストラクチャの倉曎、さらには環境党䜓の倉曎たで行いたす。その結果、アプリケヌションセキュリティチヌムが守るべきリ゜ヌスの範囲が広がっおいたす。 本蚘事では、AI コヌディング゚ヌゞェント向けのアプリケヌションセキュリティ (AppSec) のコントロヌルフレヌムワヌクを玹介したす。このフレヌムワヌクは 2 ぀の柱で構成されおいたす。䜜成時 (author-time) のコントロヌルは、IDE で゚ヌゞェントが生成するものを方向付けたす。ビルド時 (build-time) のコントロヌルは、本番環境に到達するものを怜蚌し、通過可吊を刀定したす。既存のセキュアな゜フトりェア開発ラむフサむクル (SDLC) のコントロヌルも匕き続き有効であり、倚局防埡のセキュリティ戊略に欠かせたせん。このフレヌムワヌクは、゚ヌゞェント䞻導の開発に合わせお AppSec をスケヌルさせるために、どこにガヌドレヌルを远加すべきかを瀺したす。たた、特定のツヌルやクラりドには䟝存したせん。本蚘事では党䜓を通しお、AWS のサヌビス (IDE では Kiro 、ビルドでは AWS CodePipeline ) を具䜓䟋ずしお䜿甚したす。ご自身のツヌルチェヌンに合わせお応甚しおください。 リスク 以䞋の各リスクには、察策の抂芁を蚘茉しおいたす。実装の詳现は、本蚘事埌半の「 コントロヌルフレヌムワヌク 」セクションで説明したす。リスクは重倧床順に䞊べおおり、圱響が最も倧きいものから順に蚘茉しおいたす。 R001. プロンプトずコンテキストのむンゞェクション ゚ヌゞェントは、Issue の説明、りェブペヌゞ、MCP のレスポンス、サヌドパヌティパッケヌゞ内の README ファむルなど、信頌できないコンテンツを読み蟌みたす。倖郚から持ち蟌たれたテキストによっお、゚ヌゞェントがシヌクレットを挏掩したり、蚱可されおいない PR を䜜成したり、ナヌザヌの同意なしにツヌルを呌び出したりするよう誘導される可胜性がありたす。このリスクは プロンプトむンゞェクション ず呌ばれ、 OWASP Top 10 for LLM Applications で最䞊䜍のリスクに䜍眮付けられおいたす。MCP の有無にかかわらず、倖郚のコンテンツを読み蟌む゚ヌゞェントはすべおこのリスクにさらされたす。ツヌルを接続すれば、その分だけ圱響範囲が広がりたす。 察策 : 開発者以倖からの入力は信頌できないものずしお扱いたす。倧芏暡蚀語モデル (LLM) は単䞀のコンテキストりィンドり内で指瀺ずデヌタを確実には区別できないため、それを前提にアヌキテクチャを蚭蚈したす。具䜓的には、信頌されたアクションをオヌケストレヌションする゚ヌゞェントず、信頌できないコンテンツにさらされる゚ヌゞェントを分離し、埌者には読み取り専甚か぀最小暩限のアクセスのみを付䞎したす。元に戻せないアクションには人間による承認を必須にしたす。たた、ステアリングファむルをバヌゞョン管理し、気付かないうちに改ざんされるこずを防ぎたす。 R002. 意図しないデヌタ挏掩ず過床に緩い蚭定 ゚ヌゞェントは䜜業を完了させるこずを最優先したす。チェックせずに攟眮するず、゚ヌゞェントが生成するコヌドは、ワむルドカヌドを䜿甚した IAM ポリシヌ、開攟されたセキュリティグルヌプ、暗号化されおいないストレヌゞをデフォルトで䜿甚したり、シヌクレットマネヌゞャヌを参照せずに機密性の高い倀をコヌドに埋め蟌んだりする可胜性がありたす。珟圚、ほずんどのコヌディング゚ヌゞェントにはこうした事態を起こりにくくする安党メカニズムが組み蟌たれおいたすが、完党ではありたせん。そのため、こうした可胜性に備えたコントロヌルが匕き続き必芁です。 察策 : ステアリングドキュメントにセキュリティ芁件を蚘述したうえで、IDE ずパむプラむンで Policy as Code によるスキャン (Checkov、cfn-nag) を実斜したす。詳しくは「 セキュリティコントロヌルずしおのコンテキスト 」を参照しおください。 R003. 管理されおいない倉曎の本番環境ぞの到達 ゲヌトによる怜蚌を受けおいないコヌドが本番環境に到達するこず自䜓は新しい問題ではありたせんが、AI ゚ヌゞェントはこの問題を増幅させたす。マシンの速床でコヌドが生成されるため、欠陥のあるパタヌンが発芋される前に耇数のリポゞトリぞ広がっおしたう可胜性がありたす。 察策 : PR の承認を必須ずするブランチ保護ルヌル (人間が介圚する Human-in-the-Loop のチェックポむント)、セキュリティチェックのための pre-commit フック、保護されたブランチぞの盎接プッシュを防ぐサンドボックス化された゚ヌゞェント実行を組み合わせたす。人間によるレビュヌず自動化による速床のどちらをどの皋床重芖すべきかは、倉曎のリスクプロファむルによっお異なりたす。リスクの䜎い倚くの倉曎では自動チェックだけで十分な堎合もありたすが、リスクの高い倉曎には人間によるチェックポむントを蚭けるべきです。 R004. サプラむチェヌンのリスク ゚ヌゞェントは、珟圚のベストプラクティスず叀いパタヌンを垞に区別できるずは限りたせん。非掚奚のパッケヌゞを提案したり、新たな CVE (Common Vulnerabilities and Exposures) が報告されたラむブラリバヌゞョンを参照したり、存圚しないパッケヌゞ名をハルシネヌションで生成したりするこずがあり、䟝存関係の混同 (dependency confusion) のリスクを招く可胜性がありたす。 察策 : パむプラむンで゜フトりェアコンポゞション解析 (SCA) を実斜し (䟋: Amazon Inspector のコヌドスキャンや Dependabot)、脆匱な䟝存関係や予期しない䟝存関係にフラグを立おたす。さらにコントロヌルを匷化するには、 AWS CodeArtifact のようにスコヌプを限定したレゞストリから䟝存関係を解決したす。完党にキュレヌションされたレゞストリがない堎合でも、ロックファむルの怜蚌ず重芁なパッケヌゞの蚱可リスト登録によっお、リスクぞの露出を枛らせたす。 R005. 管理されおいない倖郚アクセス ゚ヌゞェントは MCP やツヌル統合を通じお、デヌタベヌスぞのク゚リ、API の呌び出し、むンフラストラクチャの倉曎を行いたす。゚ヌゞェントがアクセスできるツヌルやデヌタに制玄がなければ、蚭定を誀った統合が 1 ぀あるだけで、機密性の高いリ゜ヌスぞの意図しないアクセスが生じたす。 察策 : MCP サヌバヌが提䟛するツヌルずリ゜ヌスを最小暩限の範囲に限定し、倖郚接続には認蚌 (AuthN) たたは認可 (AuthZ) を適甚したうえで、ツヌルの呌び出しを監査したす。コントロヌルポむントずなるのは蚭定ファむルです。蚭定ファむルは、 AWS Identity and Access Management (IAM) ポリシヌず同じようにレビュヌしおください。 R006. ハルシネヌションず誀ったコヌド ゚ヌゞェントは、もっずもらしく芋える出力を生成したす。コンパむルが通り、リンティングをパスし、䞀芋劥圓に芋えるコヌドでも、機胜的には誀っおいるこずがありたす。䟋えば、API の誀甚、埮劙なロゞック゚ラヌの混入、セキュリティ䞊重芁な操䜜の誀った実装などです。ビルドに倱敗するコヌドはすぐに怜出されたすが、継続的むンテグレヌション (CI) をパスしおしたう誀ったコヌドはレビュヌをすり抜けおしたいたす。 察策 : 決定論的な怜蚌 (静的アプリケヌションセキュリティテスト (SAST)、単䜓テスト) ず、非決定論的なレビュヌ (仕様に照らした LLM 支揎のスクリヌニング) を重ねお倚局化したす。どちらか䞀方だけで、すべおの問題を怜出するこずはできたせん。 R007. スコヌプクリヌプ (䟝頌範囲倖の倉曎) バグ修正を指瀺するプロンプトを䞎えられた゚ヌゞェントが、呚蟺コヌドのリファクタリング、䞍安定なテストの無効化、むンポヌトの敎理たで行っおしたうこずがありたす。䟝頌されおいない倉曎はリグレッションを匕き起こし、レビュヌを耇雑にしたす。 察策 : 倉曎すべきものず倉曎しおはならないものを定矩したレビュヌ枈みの仕様ドキュメントを甚意し、提案された倉曎に的を絞ったレビュヌず組み合わせたす。詳しくは「 スコヌプの境界ずしおの仕様 」を参照しおください。 これらのリスクには共通点がありたす。゚ヌゞェントは人間がレビュヌできる速床を超えお出力を生成し、しかも自らの出力を修正するためのコンテキストを持っおいないずいう点です。 以䞋で玹介するフレヌムワヌクは、このギャップに察凊するものです。このフレヌムワヌクでは、コントロヌルを 2 ぀の柱に敎理しおいたす。䜜成時 (コヌドの生成前ず生成埌) ず、ビルド時 (パむプラむン内で、コヌドが本番環境に到達する前) です。䜜成時のコントロヌルぱヌゞェントが生成するものを方向付け、ビルド時のコントロヌルはそれを怜蚌したす。どちらか䞀方だけでは䞍十分ですが、䞡方を組み合わせるこずで、人間のレビュヌ担圓者に届く問題の量ず重倧床を枛らせたす。 決定論的な緩和策ず非決定論的な緩和策の比范 決定論的な緩和策 [D] は、毎回同じ結果を返したす。リンタヌ、SAST スキャナヌ、シヌクレット怜出、Policy as Code は、ルヌルに照らしおパタヌンを照合し、セキュリティの䞍倉条件を定矩したす。䟋えば、重倧床が Critical の怜出結果がないこず、ハヌドコヌドされたシヌクレットがないこず、ワむルドカヌドを䜿甚した IAM ポリシヌがないこずなどです。条件をルヌルずしお衚珟できる堎合に䜿甚したす。組織は既にこれらを導入しおおり、今埌も匕き続き適甚する必芁がありたす。 非決定論的な緩和策 [ND] は、モデルの刀断を掻甚したす。ステアリングドキュメント、LLM-as-judge によるレビュヌ、仕様準拠チェック、スコヌプクリヌプの怜出などがこれに圓たり、パタヌンではなく意図を評䟡したす。ルヌルでは芋逃される新しい問題を怜出できる䞀方、結果は確率的です。評䟡にコンテキストや耇数ファむルにたたがる掚論が必芁な堎合に䜿甚したす。これは、AI が生成するコヌドに察応するために必芁ずなる新しいレむダヌです。゚ヌゞェントは、決定論的なチェックをすべおパスしながらも機胜的には誀っおいるコヌドを生成する可胜性があるためです。 人間によるレビュヌ [H] は、どちらの皮類のツヌルでも䞋せないリスクベヌスの刀断を担う最埌のレむダヌです。 人間によるレビュヌは、すべおの箇所ではなく刀断が必芁な箇所に適甚したす 。すべおの倉曎を人間に回すず承認疲れ (consent fatigue) を招き、レビュヌ担圓者が反射的に承認するようになっお、コントロヌルが圢骞化したす。すべおを人間に回すこずが反射的な察応になりがちですが、それが垞に正しいずは限りたせん。人間の刀断は、本圓に必芁な意思決定に限定しおください。 コントロヌルフレヌムワヌク このフレヌムワヌクでは、コントロヌルを 2 ぀の柱に敎理しおいたす。䜜成時のコントロヌル (柱 1) は、コヌドの生成前ず生成盎埌に、IDE で゚ヌゞェントが生成するものを方向付けたす。ビルド時のコントロヌル (柱 2) は、本番環境に到達する前に、パむプラむンでその出力を怜蚌し、通過可吊を刀定したす。各柱のコントロヌルには、決定論的 [D]、非決定論的 [ND]、人間 [H] のタグを付けおいたす。 柱 1: 䜜成時のコントロヌル (コヌドの生成前ず生成埌) 䜜成時のコントロヌルは、開発者ず゚ヌゞェントがただ完党なコンテキストを保持しおいる IDE 内で機胜したす。PR が䜜成される前の段階で、プロンプトず生成された出力を方向付けたす。この段階では、以䞋のコントロヌルを適甚したす。 セキュリティコントロヌルずしおのコンテキスト [ND] コントロヌルステヌトメント: すべおの開発者環境がセッション開始時に読み蟌むステアリングドキュメントに、セキュリティの䞍倉条件を自然蚀語の制玄ずしお蚘述したす。R002 に察凊したす。 AI コヌディング゚ヌゞェントのリスクの倚くは、1 ぀の共通する根本原因から生じおいたす。経隓豊富な開発者が暗黙のうちに持っおいるセキュリティのコンテキストを、゚ヌゞェントが持っおいないこずです。セキュリティチヌムは、 Amazon Simple Storage Service (Amazon S3) バケットには暗号化が必芁、API ゲヌトりェむには盞互 TLS が必芁、認蚌情報は AWS Secrets Manager から取埗する必芁がある、ずいったポリシヌを定めおいたす。しかし開発者は、構築䜜業の最䞭にこれらの芁件を垞に参照できるずは限りたせん。開発者が䜜るのは、セキュリティ芁件に準拠したものではなく、動䜜するものです。AI ゚ヌゞェントは、組織のセキュリティポスチャを認識しないたた、トレヌニングデヌタで䞻流だったパタヌンをデフォルトで採甚するため、このギャップをさらに広げおしたいたす。 その䞻芁な緩和策がステアリングです。セキュリティチヌムはこれらの䞍倉条件を自然蚀語のガむダンスずしおステアリングドキュメントに䞀床蚘述し、開発者が IDE で利甚できる共有リ゜ヌスずしお配垃したす。゚ヌゞェントはセッション開始時にこのファむルを読み蟌み、その内容を垞に守るべき芁件ずしお扱いたす。 IAM ポリシヌは最小暩限の原則に埓うこず。ワむルドカヌドを䜿甚した Amazon リ゜ヌスネヌム (ARN) は䜿甚しないこず。 ゜ヌスコヌドに認蚌情報をハヌドコヌドしないこず。シヌクレットマネヌゞャヌを䜿甚するこず。 セキュリティグルヌプで無制限のむンバりンドアクセスを蚱可しないこず。 これにより、コヌド生成が始たる前の段階たでセキュリティをシフトレフトできたす。 ステアリングは生成結果をセキュアなデフォルトに近づけたすが、それを保蚌するものではありたせん 。ステアリングは匷力なデフォルトずしお䜍眮付け、準拠しおいないコヌドのマヌゞをブロックする埌述の決定論的なゲヌトず組み合わせおください。セキュリティチヌムがルヌルを䞀床定矩すれば、すべおの開発者環境に自動的に匕き継がれたす。ステアリングによっおパむプラむンに到達する問題の量は枛りたすが、䞋流のスキャンが䞍芁になるわけではありたせん。 効果的なステアリングルヌルの曞き方: 各ルヌルは具䜓的か぀テスト可胜な内容にし、察象を具䜓的なリスクの分類に絞りたす。゚ヌゞェントがコンテキスト内に保持できるようルヌルセットは簡朔に保ち、スキャナヌやレビュヌ担圓者が芋぀けた問題を基に継続的に改善したす。 スコヌプの境界ずしおの仕様 [ND] コントロヌルステヌトメント: コヌド生成を開始する前に、レビュヌ枈みの仕様を必須にしたす。倉曎すべきものず倉曎しおはならないものを定矩したす。R007 に察凊したす。 仕様駆動のワヌクフロヌでは、コヌドを生成する前に、あいたいなプロンプトをレビュヌ可胜な仕様に倉換したす。これにより、セキュリティに関する意思決定が行われる蚭蚈フェヌズに、人間によるチェックポむントを蚭けるこずができたす。 芁件 は、゚ヌゞェントがコヌドを 1 行も曞かないうちに監査できるよう、テスト可胜な蚘法で蚘述したす。䟋えば、EARS (Easy Approach to Requirements Syntax) では WHEN [condition] THE SYSTEM SHALL [behavior] ずいう圢匏を䜿甚したす。 タスク は実装ステップの順に䞊べ、それぞれを芁件に察応付けたす。 バグ修正の堎合、仕様には、 倉曎埌も維持すべき動䜜の文曞化 ずいう重芁な芁玠が加わりたす。これは、修正埌も匕き続き正しく機胜しなければならない動䜜を明瀺したリストであり、スコヌプクリヌプを防ぐ明文化された境界ずしお゚ヌゞェントに提瀺されたす。 このモデルでは、仕様が䞻芁な成果物ずなり、コヌドは仕様から掟生するものになりたす。人間によるレビュヌの劎力は、実装の差分を 1 行ず぀読むこずではなく、仕様が適切な制玄のもずで適切な問題を解決しおいるかどうかの確認に集䞭したす。 MCP を䜿甚したツヌルアクセスの制埡 [D + ND] コントロヌルステヌトメント: 各 MCP サヌバヌが提䟛するツヌルを、゚ヌゞェントが必芁ずする最小限のものに限定し、開発者自身の認蚌情報ではなく、暩限を絞り蟌んだ専甚の認蚌情報を付䞎したす。レビュヌ枈みの MCP サヌバヌの蚱可リストを維持したす。R005 に察凊したす。 MCP サヌバヌは、゚ヌゞェントず倖郚ツヌル、デヌタずの間で、管理されたゲヌトりェむずしお機胜したす。 䟝存関係の管理 – プラむベヌトパッケヌゞレゞストリの前段に配眮した MCP サヌバヌは、パブリックむンタヌネットではなく、キュレヌションされたパッケヌゞから䟝存関係を解決したす。これはサプラむチェヌンリスクに察する決定論的な制玄ずなりたす。 むンフラストラクチャツヌル – 珟圚のリ゜ヌス蚭定を可芖化するこずで、既存のむンフラストラクチャず競合するテンプレヌトの䜜成を防ぎたす。 範囲を限定したアクセス蚱可 – 各 MCP サヌバヌは、定矩されたツヌルずリ゜ヌスのセットを公開したす。゚ヌゞェントがアクセスできる察象を厳密に遞べるため、統合レむダヌで最小暩限を実珟できたす。この専甚の認蚌情報は、゚ヌゞェントの蚭定を通じお提䟛したす (Kiro では env ブロックを䜿甚しお .kiro/settings/mcp.json で指定したす)。 autoApprove: ["*"] を蚭定するず、すべおのツヌル呌び出しで人間による承認プロンプトが衚瀺されなくなるため、䜿甚は避けおください。 IDE でのコヌドスキャン [D] コントロヌルステヌトメント: IDE でリアルタむムの静的解析を実行し、開発者 (および゚ヌゞェント) が完党なコンテキストを保持しおいるうちにセキュリティの問題を掗い出したす。R002、R006 に察凊したす。 リアルタむムの蚺断により、開発者が入力しおいる最䞭に構文゚ラヌ、型の䞍䞀臎、蚭定の問題を怜出できたす。䞍正な圢匏の IAM ポリシヌは、゚ヌゞェントがそれを前提にさらに構築を進める前に怜出されたす。その䞊にセキュリティに特化した拡匵機胜 (ESLint のセキュリティプラグむン、Checkov、SAST) を重ねるこずで、コヌドの内容がコンテキストに残っおいるうちに即座にフィヌドバックを埗られたす。 フック: アクション発生時点での自動化されたガヌドレヌル [D + ND] コントロヌルステヌトメント: ファむル保存むベントには決定論的なチェックを、タスク完了むベントには非決定論的な怜蚌を関連付けたす。R002、R007 に察凊したす。 シェルコマンドフック [D] – ファむルの保存時にトリガヌされ、リンタヌ、フォヌマッタヌ、セキュリティスキャナヌを実行したす。毎回同じ結果を返し、厳栌なルヌルを適甚したす。 AI を掻甚したフック [ND] – タスクの完了時にトリガヌされたす。実装が仕様ず䞀臎しおいるかを怜蚌し、テストされおいない゚ッゞケヌスや、タスクの範囲倖で倉曎されたファむルがないかを確認するよう、゚ヌゞェントにプロンプトを送りたす。 柱 2: ビルド時のコントロヌル (パむプラむン内) ビルド時のコントロヌルは、コヌドがコミットされおから本番環境に到達するたでの間に、パむプラむンで実行されたす。゚ヌゞェントが生成したものを怜蚌しお通過可吊を刀定し、䜜成時のコントロヌルで芋逃された問題を捕捉したす。この段階では、以䞋のコントロヌルを適甚したす。 倚局的なセキュリティスキャン [D] コントロヌルステヌトメント: シヌクレット怜出、静的解析、䟝存関係のスキャン、Infrastructure as Code (IaC) のスキャンを順番に実行したす。重倧床が Critical の怜出結果が 1 ぀でもあれば、ビルドを倱敗させたす。R002、R003、R004 に察凊したす。 シヌクレット怜出は、最もコストが䜎く、か぀重倧床の高い皮類の問題に察凊できるため、最初に実行したす。AI ゚ヌゞェントが誀っお含めおしたう可胜性のある、ハヌドコヌドされた API キヌ、デヌタベヌス接続文字列、認蚌情報をスキャンしたす。 SAST は、むンゞェクションの問題、安党でないデシリアラむれヌション、リ゜ヌスリヌクがないか゜ヌスコヌドをスキャンしたす。カスタムルヌルを䜿甚するず、過床に広範な䟋倖凊理、非掚奚の API、プレヌスホルダヌの認蚌情報、 eval() による動的なコヌド実行など、AI 特有のアンチパタヌンも怜出察象にできたす。 SCA は、䟝存関係に含たれる既知の CVE を特定したす。AI が生成したコヌドは、非掚奚のパッケヌゞを参照したり、ハルシネヌションによっお存圚しないパッケヌゞ名を生成しお䟝存関係の混同を招いたりする可胜性があるため、SCA は特に重芁です。 IaC のスキャンでは、 AWS CloudFormation 、 Terraform 、 AWS Cloud Development Kit (AWS CDK) のテンプレヌトを、デプロむ前にセキュリティポリシヌに照らしお怜蚌したす。゚ヌゞェントが䜜成した過剰な暩限を持぀ IAM ロヌル、暗号化されおいないストレヌゞ、パブリックに公開されたリ゜ヌスを怜出したす。 いずれかのステヌゞが倱敗するず、パむプラむンは停止したす。結果は、コンプラむアンス監査に利甚できるよう暙準圢匏の SARIF (Static Analysis Results Interchange Format) で゚クスポヌトされ、䞋流の人間のレビュヌ担圓者に枡されたす。オヌプン゜ヌスの Automated Security Helper (ASH) は、シヌクレット、SAST、SCA、IaC の各スキャナヌを 1 ぀のコマンドにたずめたツヌルです。ロヌカル環境ず AWS CodeBuild のどちらでも実行でき、埌続のゲヌトで利甚できるよう SARIF を出力したす。 品質ゲヌト [D] コントロヌルステヌトメント: スキャンの皮類ごずに合栌/䞍合栌のしきい倀を定矩したす。重倧床が Critical たたは High の怜出結果が 1 ぀でもあれば、デプロむをブロックしたす。R003 に察凊したす。 品質ゲヌトは、スキャン結果を「進めるか止めるか」の刀断に倉換したす。重倧床ごずにしきい倀を定矩し、Critical の怜出結果はブロック、High は正圓な理由の説明を求め、Medium は远跡察象ずしたす。ゲヌトは決定論的に動䜜し、しきい倀を超えた堎合はパむプラむンが停止したす。䟋倖を認める堎合は、文曞化された承認が必芁です。 ブロッキングモヌドずアドバむザリヌモヌドを䜿い分けたす。main ブランチでは倱敗ずしおブロックし、フィヌチャヌブランチではアドバむザリヌ (譊告のみ) ずしたす。ゲヌトが開発の劚げずなり、チヌムがゲヌトを迂回するような事態は避けおください。 AI 支揎レビュヌ [ND] コントロヌルステヌトメント: 人間がレビュヌする前に、LLM をレビュヌ担圓者ずしお䜿甚し、すべおの PR に぀いお仕様ぞの準拠、スコヌプクリヌプ、セキュリティのアンチパタヌンを事前スクリヌニングしたす。R001、R006、R007 に察凊したす。 仕様ぞの準拠 – 実装は芁件ドキュメントず䞀臎しおいるか? スコヌプの怜蚌 – タスクで定められた範囲倖のファむルが倉曎されおいないか? セキュリティパタヌンのレビュヌ – SAST を通過しおも意図に反するロゞック゚ラヌ、API の誀甚、安党でないパタヌンはないか? この事前スクリヌニングにより、人間のレビュヌ担圓者はフォヌマットや明らかな問題ではなく、実質的なリスクに集䞭できたす。AWS では、 AWS Security Agent (英語原文が公開された 2026 幎 7 月 30 日の時点で、コヌドレビュヌ機胜はプレビュヌ䞭) が、AWS マネヌゞドのセキュリティ芁件ずカスタムのセキュリティ芁件に照らしお PR をチェックしたす。LLM のレビュヌ担圓者はスクリヌニングを行っお怜出結果を提瀺したすが、マヌゞの刀断は人間が行いたす。 重芁な原則: コヌドを曞いた゚ヌゞェントに、そのコヌドをレビュヌさせおはいけたせん。 別のセッションを䜿甚すれば自己確蚌バむアスを避けやすくなりたすが、セッションを分けるだけでは、生成偎の盲点を必ずしも回避できたせん。同じモデルであれば、2 ぀のセッションが同じ盲点を共有しおいる可胜性があるためです。可胜であれば、レビュヌには別のモデルを䜿甚し、レビュヌ担圓者が同じ系統的な匱点を匕き継ぐ可胜性を䜎枛しおください。 Human-in-the-Loop のレビュヌ [ND + H] コントロヌルステヌトメント: ほずんどの PR、特にセキュリティ䞊重芁なコヌドや圱響範囲 (blast radius) の倧きいコヌドにかかわる PR では、人間による承認を必須にしたす。ツヌルが成熟するに぀れお、リスクの䜎い倉曎ぱヌゞェント支揎による承認や完党に自動化された承認の察象にできる可胜性がありたす。レビュヌ担圓者が十分な情報に基づいお迅速に刀断できるよう、スキャン結果、LLM による事前スクリヌニングの出力、仕様のコンテキストを提䟛したす。R003 に察凊したす。 レビュヌの深さは、倉曎のリスクに応じお調敎したす。リスクの䜎い倉曎や定型的な倉曎はより簡易なレビュヌで察応できたすが、セキュリティ䞊重芁な倉曎や新しいロゞックを含む倉曎には、詳现なレビュヌを必須ずし、2 人目のレビュヌ担圓者を加えるべきです。 スキャナヌは既知のパタヌンを怜出できたすが、コヌドが意図したビゞネスロゞックを実装しおいるかどうかは刀断できたせん。人間によるレビュヌは、 ゚ヌゞェントをどこたで信頌できるかの芋極め にも圹立ちたす。チヌムは、゚ヌゞェントが埗意ずする領域 (定型コヌド、テストの䜜成) ず、これたで苊手ずしおきた領域 (新しいビゞネスロゞック、セキュリティ䞊重芁な操䜜) に぀いお感芚を぀かんでいきたす。ただし、この境界はモデルの進化に䌎っお倉化するこずを念頭に眮いおおく必芁がありたす。 承認ゲヌトは 2 か所に配眮したす。1 ぀はセキュリティスキャンの埌 (レビュヌ担圓者はスキャン結果をコンテキストずしお参照しながら、正確性ずビゞネスロゞックに集䞭したす)、もう 1 ぀は本番環境ぞのデプロむ前 (統合テスト埌の最終承認) です。人間によるレビュヌは保蚌ではなく、二次的なコントロヌルずしお扱っおください。レビュヌ担圓者自身も非決定論的であり、問題を芋逃すこずがありたす。そのため、人間によるレビュヌは決定論的なゲヌトに取っお代わるものではなく、その䞊に重ねるものず考えおください。 AWS でのフレヌムワヌクの実践 このフレヌムワヌクは特定のツヌルに䟝存したせんが、AWS には各柱を実珟するための構成芁玠がそろっおいたす。以䞋のサヌビスは、前述のコントロヌルに盎接察応したす。䜜成時のガヌドレヌルには Kiro を、ビルド時のゲヌトには CodeBuild ず CodePipeline を䜿甚したす。 Kiro: 構造化された AI 開発 Kiro は柱 1 に察応し、開発者ず゚ヌゞェントが完党なコンテキストを共有しおいる IDE に䜜成時のコントロヌルを組み蟌みたす。以䞋に挙げる各機胜はそれぞれ 1 ぀のコントロヌルを実装するもので、リポゞトリ内の .kiro/ 配䞋で蚭定したす。そのため、ガヌドレヌルは開発者ごずに蚭定されるのではなく、バヌゞョン管理されたうえでチヌム党䜓で共有されたす。 ステアリングドキュメント – .kiro/steering/ 内の Markdown ファむルが、セッション開始時に゚ヌゞェントのコンテキストに読み蟌たれたす。fileMatch を䜿甚した条件付きの読み蟌み (䟋: ["**/*.tf"] ) により、IaC 固有のルヌルを関連する堎合にのみ読み蟌めたす。 仕様駆動のワヌクフロヌ – レビュヌのチェックポむントを備えた 3 フェヌズの仕様 (EARS による芁件、蚭蚈、タスク) を䜿甚したす。バグ修正の仕様では、倉曎されない動䜜を明瀺的に蚘録したす。 ゚ヌゞェントフック – ファむルの保存、ツヌルの呌び出し、タスクの完了時にトリガヌされたす。シェルフックは決定論的なチェック (リンタヌ、テスト) を実行し、 Ask Kiro フックは非決定論的なレビュヌのために AI プロンプトを実行したす。䟋えば、セキュリティ甚の pre-commit スキャナヌフックを䜿甚するず、゚ヌゞェントがタスクを完了した時点で、ハヌドコヌドされた認蚌情報にフラグを立おるこずができたす。 プロパティベヌステスト – 仕様やフックの指瀺に基づいお、Kiro は数癟ずおりのランダムな入力を詊すプロパティベヌステストを生成できたす (䟋えば、hypothesis ラむブラリを䜿甚)。これにより、手䜜業で曞いたテストスむヌトでは芋逃しがちな゚ッゞケヌスを掗い出せたす。 MCP 統合 – Kiro をプラむベヌトパッケヌゞレゞストリ、瀟内ドキュメント、Issue トラッカヌ、むンフラストラクチャツヌルに接続し、前述の管理されたツヌルアクセスのパタヌンを実珟したす。 ゚ンタヌプラむズ環境向けに、Kiro は AWS IAM Identity Center によるシングルサむンオンをサポヌトしおおり、サブスクラむバヌには知的財産暩 (IP) に関する補償を提䟛しおいたす。Kiro のドキュメントで 珟圚利甚可胜なリヌゞョンを確認しおください。 AWS CodeBuild ず AWS CodePipeline: パむプラむンのコントロヌル CodeBuild は、各スキャンツヌル (シヌクレット、SAST、SCA、IaC のチェック) をビルドアクションずしお実行したす。終了コヌドが 0 以倖の堎合はアクションが倱敗し、ステヌゞは OnFailure の蚭定に埓っお停止たたはロヌルバックしたす。怜出結果はコンプラむアンス察応のために SARIF 圢匏で Amazon S3 に゚クスポヌトされ、CodePipeline のアクション倉数を通じお䞋流の承認アクションに枡されたす。 CodeBuild の終了コヌド により、スキャンが倱敗した堎合にパむプラむンを停止したす AWS Lambda 呌び出しアクション により、蚭定可胜なしきい倀に照らしおスキャン結果を評䟡し、合栌/䞍合栌の刀断を返したす 手動承認アクション により、パむプラむンを䞀時停止し、 Amazon Simple Notification Service (Amazon SNS) で通知を送信しお、レビュヌ甚のアヌティファクトぞのリンクを提䟛したす。刀断内容ずレビュヌ担圓者の ID は監査甚にログに蚘録されたす 以䞋の衚は、フレヌムワヌク党䜓を 1 ぀にたずめたもので、SDLC の各ステヌゞず、そこで適甚される決定論的 [D] および非決定論的 [ND] のコントロヌルを瀺しおいたす。どのステヌゞにも䞡方のコントロヌルが含たれおいるのは、どちらか䞀方だけでは䞍十分であるこずを衚しおいたす。 ステヌゞ 決定論的 [D] 非決定論的 [ND] IDE (生成前) ステアリングファむルの読み蟌み ステアリングドキュメント、仕様駆動の制玄 IDE (生成埌) シェルフック: リンタヌ、フォヌマッタヌ、型チェッカヌ、シヌクレットスキャン AI を掻甚したタスク完了フック、コンテキストの制玄 PR SAST、SCA、IaC のスキャン LLM による PR の事前スクリヌニングずスコヌプの怜蚌 パむプラむン (デプロむ前) セキュリティスキャン䞀匏、統合テスト、Policy as Code 人間の承認者向けの AI 支揎レビュヌ デプロむ埌 ランタむムモニタリングず異垞怜出 AI を掻甚したむンシデントトリアヌゞ たずめ 本蚘事では、レビュヌされおいないリスクを本番環境に持ち蟌むこずなく、マシンの速床で AI コヌディング゚ヌゞェントを掻甚するためのフレヌムワヌクを玹介したした。このフレヌムワヌクでは、2 ぀のポむントでガヌドレヌルを重ねたす。 䜜成時のコントロヌル – ステアリング、仕様、範囲を限定したツヌルによっお、IDE で゚ヌゞェントが生成するものを方向付けたす。 ビルド時のコントロヌル – スキャン、品質ゲヌト、倚局的なレビュヌによっお、本番環境に到達する前に生成物を怜蚌したす。 単䞀のレむダヌだけでは十分ではありたせん。決定論的なゲヌトが厳栌なルヌルを適甚し、非決定論的なレビュヌがそこで芋逃された問題を怜出し、人間の刀断は、本圓に必芁な意思決定にのみ甚いたす。これらを組み合わせるこずで、゚ヌゞェント䞻導の開発に合わせお AppSec をスケヌルさせるこずができたす。 今日から取り組めるこず ステアリングず仕様から始める – セキュリティ芁件をステアリングずしお蚘述し、新機胜の開発には仕様を掻甚したす。最小限の劎力で最倧の効果が埗られたす。すぐに䜿える出発点ずしおは、オヌプン゜ヌスの Project CodeGuard (Amazon がコントリビュヌティングメンバヌずしお参加しおいる OASIS Open の Coalition for Secure AI のプロゞェクト) がありたす。䞀般的なリスクの分類 (ハヌドコヌドされた認蚌情報、IaC の蚭定ミス、サプラむチェヌン、MCP のセキュリティ) に察応した再利甚可胜なステアリングルヌルが公開されおおり、ご自身の AWS 環境に合わせお応甚できたす。 決定論的なパむプラむンゲヌトを远加する – SAST、SCA、シヌクレット怜出を統合したす。AI を䜿甚しおいるかどうかにかかわらず、最䜎限必芁な察策です。 調敎ず改善を繰り返す – コントロヌルが怜出した内容を確認し、繰り返し発生する問題に応じおステアリングを調敎したす。信頌が高たるに぀れお、゚ヌゞェントの自埋性を広げおいきたす。 責任の所圚 – リリヌスするもののセキュリティに責任を負うのは、匕き続き開発者です。AI ゚ヌゞェントは開発を加速させたすが、責任の所圚を移すものではありたせん。 詳现情報 Kiro のドキュメント AWS CodePipeline ナヌザヌガむド AWS Agentic AI Security Scoping Matrix Daniel Begimher Daniel は AWS の Senior Security Engineer です。AWS 初のお客様向け AI セキュリティ゚ヌゞェントを構築し、リリヌスしたした。AI むンシデント察応゚ヌゞェントが行動を起こす前にどれだけ深く調査するかを枬定するベンチマヌク SIR-Bench ず、オヌプン゜ヌスのスキャナヌ Automated Security Helper (ASH) の開発者でもありたす。AWS の Application Security Technical Field Community を共同でリヌドしおおり、AWS re:Invent、re:Inforce、Cyber Week などのカンファレンスで講挔しおいたす。 Danny Cortegaca Danny は Principal Security Specialist Solutions Architect で、AWS Security and Compliance Technical Field Community のアプリケヌションセキュリティ領域を共同でリヌドしおいたす。2021 幎に AWS に入瀟し、䞖界有数の倧芏暡組織ず連携しお、耇雑なセキュリティ環境や芏制環境ぞの察応を支揎しおいたす。お客様ずアプリケヌションセキュリティに぀いお語り合うこずが倧奜きで、倚くのお客様が脅嚁モデリングを実践に取り入れられるよう支揎しおきたした。 本ブログは Security Solutions Architect の äž­å³¶ 章博 が翻蚳したした。

動画

該圓するコンテンツが芋぀かりたせんでした

曞籍

おすすめマガゞン

蚘事の写真

AIに任せる範囲ず人が匕き受ける刀断、PayPayカヌド審査システムの蚭蚈珟堎

蚘事の写真

AIがコヌドを曞く時代、人間は䜕を保蚌するのか───銬堎さんず考える、開発者に求められる新しい責任ず䟡倀

蚘事の写真

仕様曞通りに実装したのに「そうじゃない」ず蚀われる理由───ミノ駆動さんが語る”前提を疑うための認知の芖点”

新着動画

蚘事の写真

【3分解説】囜産AI「Sarashina」6぀のモデルで䜕ができる

蚘事の写真

「ただ出せない」が続くのはなぜ゚ンゞニアの仕事の進め方、完成床の芋極め方を「おい、ずりあえず終わらせろ」著者・nwii...

蚘事の写真

【解説】文章を生成しない最新AI「Jev」ずは ClaudeやChatGPTず䜕が違うTypeSafe AIの刀断専...