0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

まだ間に合う!コードレビューでAWS Security Agent デビューしよう!

0
Posted at

はじめに

AWS re:Invent 2025 で発表された AWS Security Agent(以下、"Security Agent"表記のみ)のペネトレーションテスト機能がGAされました。コードレビューと設計レビューは5/25現在もpreview中のため、Security Agentを試せなかった人はまだその機能を試すことができます。私はpreview期間中にペネトレーションテストを試すことができなかった (重い腰を上げることができなかった) ので、せめてコードレビューを体験したいと思い、Security Agentデビューを果たしました!

本記事は、筆者個人の見解です。個人利用の範囲で試した結果のため、参考程度に留めてください。また、筆者はアプリ開発経験がないため、アプリ開発に関する言葉の使い方が適切ではない可能性があります。内容に間違い等がありましたらご指摘いただけますと幸いです。

本記事は、2026年5月25日現在の情報で書きました。

Security Agent とは

前述の通り、AWS re:Invent 2025の会期中に発表されたサービスです。すべての環境における開発ライフサイクル全体でアプリケーションを積極的に保護するフロンティアエージェントです(AWS公式ページより引用)。

4月にGAとなったペネトレーションテスト、設計レビュー、コードレビュー(今回の執筆対象)の3機能が備わっています。

機能名 機能概要 ステータス(2026/5/25現在)
ペネトレーションテスト 外部からシステムへの侵入を試行してセキュリティ対策の評価をする GA
設計レビュー 製品仕様書、アーキテクチャ文書、技術設計をセキュリティリスクの観点から分析する プレビュー
コードセキュリティレビュー ソースコード、リポジトリ内を検査してコードレベルの脆弱性を検出する プレビュー

コードセキュリティレビュー(以下"コードレビュー"と表記)は、Webアプリケーション診断の手法としては"SAST"(静的アプリケーションセキュリティテスト)に該当します。検証環境にて稼働する前に、開発段階でソースコードに不備が無いか確認する、コードレベルから見える脆弱性を検出するための脆弱性診断と考えています。

Security Agent コードレビューの実施

ここからは、Security Agentを有効にして、コードレビューを実行するまでの手順を書きます。

Security Agent の有効化

Security Agentを始めるには、まずSecurity Agentを有効にする必要があります。ちなみに、Security Agentを有効にしただけでは課金されません。

① [AWS Security Agentをセットアップ]をクリックします

スクリーンショット 2026-05-21 231144.png

②エージェントスペース名を入力します
③ユーザーアクセス設定を指定します

AWS Organizations を有効にしてさらにIAM Identity Center を有効にしている方は、「IAMアイデンティティセンターによるシングルサインオン(SSO)」を選択した方が良いかもしれません。私は、おひとり様Organizationsもやっているので、こちらを選びました。まだOrganizationsを有効にしていない方も、これを機に、おひとりさまOrganizationsにデビューするのもアリかもしれません。

スクリーンショット 2026-05-21 232741.png

④サービスロール名を入力します。アカウント内に利用できる適切なロールが無いならば、新しいサービスロールが作られます。
⑤KMSによる暗号化を希望する場合は、暗号化オプションのチェックボックスをONにします。デフォルトの暗号化で良い場合は、チェックボックスをOFFにします。
⑥必要に応じてタグを設定します。
⑦[AWS Security Agentをセットアップ]をクリックします
スクリーンショット 2026-05-21 233742.png

⑧「アプリケーションが正常に有効化されました。ようこそ!」と表示されたら、Security Agentの有効化完了です。
スクリーンショット 2026-05-21 233809.png

コードレビューの有効化

①「コードレビューを有効にする」をクリックします。
スクリーンショット 2026-05-21 233829.png

②「接続された統合」を追加します。「追加」をクリックします。
スクリーンショット 2026-05-21 233953.png

③「新規登録を作成」「GitHub」を選択し、「次へ」をクリックします。
スクリーンショット 2026-05-21 234540.png

④「GitHubでAWS Security Agent を開く」をクリックします。
スクリーンショット 2026-05-25 162646.png

⑤GitHubのページに遷移します。「Install」をクリックします。
スクリーンショット 2026-05-21 234615.png

⑥AWS Security Agent GitHub App をインストールするリポジトリがあるGitHubアカウントをクリックします。
スクリーンショット 2026-05-21 235250.png

⑦「Only select repositories」をクリックし、「Select repositories」のプルダウンメニューからGitHub App をインストールするリポジトリを選択します。
スクリーンショット 2026-05-21 235319.png

⑧「Install」をクリックし、以下のような画面が出たら設定完了です。
スクリーンショット 2026-05-21 235730.png

⑨以下の画面に戻り、もう一度「追加」をクリックします。
image.png

⑩追加した統合を選択して「次へ」をクリックします。
image.png

⑪GitHubリポジトリ名を選択して、「次へ」をクリックします。
スクリーンショット 2026-05-25 163706.png

⑫有効にする機能を選択します。コードレビューを実行したい場合は「Code review comments」を有効化にします。検出された脆弱性を自動修復させたい場合は「Automatic remediation」を有効化にします。接続をクリックし、「統合リソースが追加されました」と表示されることを確認します。
スクリーンショット 2026-05-25 163846.png
image.png

⑬コードレビュー設定を選択して、「次へ」をクリックします。私はデフォルトで選択されている「セキュリティ要件と脆弱性検出結果」を選択しました。
image.png

⑭CloudWatchログにアプリケーションの動作ログを取得したい場合は、ログを格納したいロググループを選択します(あらかじめロググループを作っておく必要があります)。
⑮サービスアクセスのためのロールを作成します。あらかじめ作成している場合は、「既存のサービスロールを使用する」を、デフォルトロールでも良い場合は「デフォルトロールを作成」をクリックします。
⑯「保存」をクリックします。
image.png

今回はデフォルトロールを作成しましたが、必要なポリシー設定を吟味したロールを作成しておく必要があると思います。必要なポリシーは何か、今後調べてみたいと思います。

⑰以下のように表示され、コードレビュー欄に「準備完了」と表示されたら、コードレビュー有効化完了です。
スクリーンショット 2026-05-25 165454.png

アプリケーションユーザー設定

アプリケーションからコードレビューを実行できるよう、IAM Identity Center のユーザーを追加します。

試すだけならば、ユーザー作成しないで「管理者アクセス」でもアクセスできるため事は足りますが、通常の運用で管理者が脆弱性診断をすることはあまりないと思いますので、テスト利用とはいえユーザー設定します。

①「エージェントスペース」のトップページに戻り、「ウェブアプリ」タブから「ユーザーを追加」をクリックします。
スクリーンショット 2026-05-25 170220.png

②Security Agentのウェブアプリにアクセスさせたい、IAM Identity Center のユーザー名を選択し、「ユーザーを追加」をクリックします。
image.png

③ユーザーが追加された旨表示されたら、エージェントウェブアプリのURLをクリックします。
image.png

④以下の画面が表示されたら「Sign in」をクリックするか、少し待つとエージェントウェブアプリ画面にリダイレクトされます。
image.png

⑤以下のように表示され、作成したエージェントスペース名が表示されていることを確認します。
image.png

コードレビュー実行

いよいよコードレビューの実行をします。

①エージェントウェブアプリのホーム画面から、「コードレビューを作成する」をクリックします。
image.png

②コードレビューのタイトルを入力します。
③あらかじめ接続したGitHubリポジトリ、作成したサービスロール、CloudWatchロググループを選び、「コードレビューを作成する」をクリックします。
image.png

④コードレビューが作成された旨表示されたら、「レビューを開始する」をクリックします。確認画面が表示されますので、もう一度「レビューを開始する」をクリックします。
image.png
スクリーンショット 2026-05-22 021027.png

⑤「コードレビューが開始された」旨表示されます。画面をリロードすると、「進行中」と表示されます。
image.png
スクリーンショット 2026-05-22 021142.png

⑥作成したコードレビューをクリックすると、進行状況が分かります。完了まで待ちます。
image.png

スキャン結果

今回は1時間程度で終わりました。

①完了すると、コードレビューの結果を見ることができます。
image.png
スクリーンショット 2026-05-25 180015.png

②スキャン結果は以下のように表示されます。SQLインジェクション・クロスサイトスクリプティング・パストラバーサルなど、有名な脆弱性が検出されました。
※Completedと表示されていますが、なぜか「ファイナライズ中」と表示されたままでした。
image.png

コードレビュー結果のダウンロード

コードレビューの結果をPDFファイルにダウンロードできます。AWSアカウントを持っていない開発担当者に修正依頼や情報共有したり、証跡として保管するためのPDF出力と考えられます。

①コードレビュー結果画面の右上にある「レポートを生成」をクリックします。
image.png

②抽出条件を編集して、「生成してダウンロード」をクリックすると、PCのダウンロードフォルダにPDFファイルでコードレビュー結果が出力されます。
スクリーンショット 2026-05-22 030544.png

検出された脆弱性の自動修正

検出された脆弱性は修正する必要があります。手動ではなく自動で修正することも可能です。

①自動修正したい脆弱性を選択し、「コードを修正」をクリックします。
スクリーンショット 2026-05-26 011203.png

②コード修正が開始します。
スクリーンショット 2026-05-25 212423.png

「Automatic remediation」を有効化にしていないと以下のようなエラーが出ます。統合しているGitHubリポジトリの機能の管理で「Automatic remediation」のトグルボタンをONにして保存します。
スクリーンショット 2026-05-25 212256.png

image.png

③選択した脆弱性の検出結果を画面下までスクロールすると、コード修正のステータスが表示されます。修正が完了してステータスが"COMPLETED"になったら、GitHubにプルリクエストが送られます。
image.png
image.png

④プルリクを開くと、Security Agentが自動で作成したこと、変更点などが分かります。内容に問題が無ければ、マージします。
image.png

Security Agent コードレビューを実施した所感

SASTの重要さを認識

今回のコードレビューで、多くの種類の脆弱性を検出できました。おそらく、人のコードレビューだけで脆弱性をすべて洗い出すのは困難だと思います。脆弱性の残存という観点で検査をして人のコードレビューを補完する大切なサービスではないかと思いました。また、Webアプリケーション診断はDAST (Dynamic Application Security Testing)のような外部攻撃想定の診断手法だけでなく、コードレベルで脆弱性に気づいて修正のきっかけとなるSASTも実施した方が良い、重要な診断手法だと認識しました。

人によるレビューを完全に無くすことはまだできない

Security Agentが、人によるコードレビューのすべてを補完するものではないと思いました。

今回自動修正を実行した後に再度コードレビューを実行したところ、修正し脆弱性は再検出されませんでしたが、新たな脆弱性が複数検出されました。たまたま最初のコードレビューから検出手法が追加されたのか、誤検知の可能性もありますが、一か所修正したことでコード全体、またはリポジトリ全体に影響を及ぼしたことも考えられます。

このように、レビューの結果や脆弱性の推奨される修正が全体最適になるとは限りません。また、安易に自動修正を適用してアプリ全体が動かなくなる恐れもあります。まだまだ人が修正内容を精査して自動修正 or 手動修正の判断をしなければ、余計な工数を増やす原因になりかねないと思いました。

CodeCommitと連携できると良いのでは?

2026年5月21日時点ではCodeCommitのリポジトリをコードレビュー対象にできません 。S3をコードレビュー対象にすることができて、CodeCommitを対象にできないのは本当に意外でした。CodeCommitを使っているユーザーがSecurity Agentでコードレビューしたい場合は現状、

  • ソースコードファイルをS3に保管してコードレビューを実施
  • リポジトリをGitHubに移行

のいずれかをしないとならないと思われます。S3にファイルを置くのも手間ですし、GitHubに移行するのも現実的ではないと思われます。CodeCommitと連携できれば楽にコードレビューをできて良いのではないかと思いました。

CodeCommitは一度サービス終了からGAに戻った程のサービスですし、CodeCommitと連携できないのはちょっともったいないと思いました。今後のAWSのアップデートを期待するしかないかなと思います。

最後に

re:Invent 2025からもう半年経とうとしていますが、ようやくSecurity Agentを触ることができました。GAされたペネトレーションテストは、個人レベルでは手を出しづらくなってしまいました。プレビュー期間はいつまでも続かない。可能な限り発表後すぐに触るべきだと痛感しました。

まだプレビュー期間中のコードレビューならば比較的気軽にSecurity Agentを体験できますので、今からならばまだ間に合います!コードレビューからSecurity Agentデビューして、Webアプリケーションセキュリティを学ぶきっかけにしてみてはいかがでしょうか?

また、設計レビューもまだプレビュー期間中のため、設計レビューも近日に試してみようと思います。

この記事がどなたかの参考になれば幸いです。最後まで読んでいただきありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?