クラウド AI 元SEママの情シスなりきりAWS奮闘記

Amazon Q Developer活用法●ソフトウェア開発での“セキュリティチェック”にも!

2025年7月18日掲載

こんにちは、シイノキです。あまりに暑い、でも冷房をつけると冷えてしまう、というなかで、自宅でどうすれば快適かを模索した結果、「エアコンの自動モードで冷やしたリビングにひとりでいる」がベストという結論になりました。なんとも環境にやさしくない罪悪感があります。

AWS Summit Tokyo 2025のレポート第2弾は前回に引き続き、ソフトウェア開発での生成AI活用を取り上げます。セッションテーマは「セキュアなソフトウェア開発ライフサイクルのための⽣成AI」、生成AIは開発効率の向上だけじゃなくて、コーディング段階でセキュリティリスクや脆弱性が入らないようにする、という観点でも有効だよ、という話です。

そもそも最近「シフトレフト」という話をよく聞くようになりました。開発のなるべく上流でセキュリティの観点をもとう、というもので、言われてみれば当然のこと。開発最後のテスト工程で、設計から紛れ込んだリスクが見つかった日には、影響範囲を考えるだけでクラクラします。

というなかで、ここでも生成AIです。じゃあ実際、Amazon Q Developerはどう使えるのでしょうか。

上流工程でも!開発の各フェーズでAmazon Q Developerはどう使えるか?

シフトレフトにも有効……というだけあって、Amazon Q Developerは実装フェーズ以外、アイデアや企画などの上流工程でも使えます。セッションでは開発工程を「Plan」「Create」「Test & secure」「Operate」「Maintain & modernize」の5つのプロセスに分けて、使い方について解説がありました。

●Plan

システムを改修したい、新しいシステムを構築したい、というときはセキュリティを考慮しながら新しいアーキテクチャを検討しなければなりません。Amazon Q Developerだと会話ベースで確認しながら、ベストプラクティスを模索できる、ということですが、特にすごいのは、Amazon Q Developerが自社アカウントのコンテキストを理解しながら会話してくれるということ。すでに起動しているEC2インスタンスやコンテナ、AWS Lambdaの状況などを踏まえて、新しいアーキテクチャをどうすればよいかを提案してくれるというのは、かなり魅力的だなと思いました。

●Create

続いては実装フェーズですが、ここもエージェントと会話しながら作業できます。このあたりは前回のコラム(GitLabとAmazon Qで開発はどう変わる?気になる導入効果をレポート)でも紹介したところですが、おもしろいなと思ったのは、「既存コードの全体像把握にも便利ですよ」というあたり。本来は、各コードにつけられたReadMeを読んだりして全体を把握して開発するわけですが、ReadMeが必ず最新とは限らず、現状とは乖離していることもありがち……というわけで、Amazon Q Developerを使ってGitリポジトリの概要を生成させたりもできるのだとか。セキュリティに直結する感じではないかもしれませんが、「古い情報を参照してコーディングしていた」といった事態はなくせそうですし、きちんと最新の状況を踏まえて開発できるのは、リスクを避けるためにも結構大事なところなのかも、という印象です。

●Test & secure

Amazon Q Developerのレビュー機能、というのは前回コラムでも触れましたが、ここでセキュリティ観点でのチェックも可能です。コードスキャンをおこない、致命的なクラッシュを起こすものから、「for文が多くて分かりにくい」のようなものまで指摘してくれるのだとか。セッションでは例として、ログインジェクションのリスクがあるコードが指摘されているケースが紹介されていました。Amazon Q Developerでは問題点の説明として、どのようなリスクがあるかとあわせて、コードの修正案(エスケープしてログインジェクションを回避する)まで提示されていて、この修正案に問題がなければFIXを選んで終了です。

ちなみにこのセキュリティチェックの裏側で動いているのが、「Amazon CodeGuru Security」。これは、コードの脆弱性を可視化する静的アプリケーションセキュリティ検査(SAST)ツールで、たとえば「機密情報がコードに記載されている」みたいなことも検知できる、ということでした。

●Operate

運用は大きく2つのテーマがあり、まずはデプロイに失敗したときのトラブルシューティングに使えますよというもの。

もうひとつは、運用調査機能として、運用中にトラブルが発生したときに、Amazon CloudWatchと連携して根本原因を分析して、教えてくれる機能があります。ログをひとつずつチェックして、怪しいところを深堀調査してとか、必要とはいえ結構手間がかかるので、Amazon Q Developerである程度、目途をつけられるなら、かなり便利そうです。

●Maintain & modernize

ここで紹介されたのは、「AWS Transform」というサービスでして、これはモダナイズをサポートするエージェント型AIサービス。Amazon Q Developerじゃないじゃん!という感じではあるのですが、AWS Transform自体は基調講演でも触れられていて、たぶん今注目のサービスなのかと思われます。

具体的には、言語のバージョンアップや、フレームワークのモダナイズができる、ということで、確かに新しいものを使った方がセキュリティリスクも減らせるとはいえ、地道に変換するのはなかなか厄介、ということでそこを生成AIでよしなにやってくれるなら、それはぜひお願いしたいところ。「開発者が競争力を生むための作業ではない部分を支援する」と言っていて、それもおもしろいなと感じました。

コードの脆弱性診断も継続的にチェックする「Amazon Inspector」

……と、ここまで開発ライフサイクルの各フェーズでセキュリティをどう担保するかを解説してきましたが、それとは別に、開発が完了したコードが本当に安全なのかを“継続的に”チェックする必要もあります。

ちょっと前になりますが、かなり使われている有名なライブラリに致命的な脆弱性が見つかって、結構な騒動になったのを覚えていますが、新しい脆弱性は次々見つかるものですし、見つかったらきちんと対応して、「ソフトウェアがセキュリティ要件を継続的に満たしている」状態を担保しなければなりません。

そしてそのために使えるのが、Amazon Inspectorです。Amazon Inspectorは確かに脆弱性診断のサービスとは思っていたのですが、コードの脆弱性まで診断してくれるとは……!Amazon EC2、AWS Lambda、Amazon Elastic Container Service(Amazon ECS)、Amazon Elastic Kubernetes Service(Amazon EKS)などさまざまな環境で有効化しておけば、どのアカウント、どのリージョン、どのリソースで脆弱性があったのか、その重大性とあわせて可視化してくれるのだそう。もちろん、利用したいリソースだけオンにすることも可能ですし、それぞれモードがあったりするので、そのあたりは自社の環境や要件にあわせて検討するのがよいのかなと。

Amazon Inspectorのスキャン対象・モード
Amazon EC2<エージェントベース・エージェントレス(ハイブリッドスキャンモード)>、Amazon ECR<基本スキャン(Amazon ECRに付属)・拡張スキャン(Amazon Inspectorと統合)>、AWS Lambda<標準スキャン(パッケージの脆弱性のみ)・コードスキャン(ソフトウェアの脆弱性も検出)>

Amazon Inspectorの便利機能「SBOM(ソフトウェア部品表)の自動生成」

そしてもうひとつ!Amazon Inspectorの便利機能がSBOM(Software bill of materials/ソフトウェア部品表)を自動で作成できること!SBOMは、ソフトウェアでどんなライブラリを使っているかなどを依存関係含めて一覧化したもの。全体を把握するためにも重要……とはいえ、常に最新の状態を維持するのはなかなか大変。ライブラリに脆弱性が見つかったから、急遽それを使っている箇所を洗い出して!とか、そういうときのために更新しないといけないのは分かってる……分かってるんですけどねぇ。

と、それをAmazon Inspectorなら、アカウント単位でSBOMを生成できる、しかもAmazon AthenaやAmazon QuickSightでの分析もできると。こうなると検索して影響範囲の特定とかもかなりラクになりそうですし、相当便利なのではないでしょうか。

生成AIをうまく活用して、全員がセキュリティを意識できることを目指す

ソフトウェア開発でもセキュリティは大事なんて、重々承知ですが、セキュリティ対策的なところって、正直、あまり面白みがあるところではないような気がして(個人の感想です)、対処方法などもある程度定まっているものではありますし、こういうところはどんどん生成AIに任せられるといいのかなと思いました。

今回のセッション自体は、ライフサイクル全体でいろいろ活用できるよという紹介ではありましたが、まとめとして「全部いきなりやるのではなく、肝になるところからやるとよい」というメッセージもありました。「“ツールを入れたから安心”ではない。たくさんエラーが検出された結果、無視、というのもよくあるが、それでは対策できたとは言えない」とのことで、なんだか耳が痛い……。「生成AIで理解しやすい環境にしながら、セキュリティは全員の責任であるという理念に向けて踏み出す一歩になれば」ということで、生成AIはあくまでもツール、それをどう使って、使う人がどう考えていくかが重要になるのだと改めて感じました。

次回は少しテーマを変えて、Amazon Connect周りの生成AI活用について、紹介したいと思います。

このコラムに関連する製品

  • 生成AI活用「社内FAQボット」

    社内ヘルプデスクや問い合わせ窓口の対応品質向上や業務改革に!

    詳細はこちら

  • AWSセキュリティ強化支援サービス

    AWSのセキュリティが不安な方へ
    運用負荷をおさえた効果的な対策強化を支援します

    詳細はこちら

  • 運用内製化支援~セキュリティ改善サービス

    ベストプラクティスに沿った改善案を提案し、運用の内製化を支援します。


    詳細はこちら

関連コラム

このコラムに関連する
導入事例

このコラムに関連する
セミナー・イベント

このコラムに関連する
セミナーアーカイブ動画

ランサムウェア最新動向と今すぐできる3つの対策例

SHARE
シェアシェア ポストポスト
ランサムウェア最新動向と今すぐできる3つの対策例
SHARE
ポスト シェア