Amazon Q Detector Library の紹介
いわさです。
Amazon Q をお使いの方は多いと思いますが、Amazon Q Business, Amazon Q Developer、Q in Connect、Q in QuickSight など様々なものが存在しています。
そんな中「Amazon Q Detector Library」というものをご存知でしょうか。
これは Amazon Q 関係のサービスではなく、Amazon Q Developer でコードベースのセキュリティ脆弱性やコード品質の問題を検出する/review
機能に関する詳細情報を含むドキュメントリソースです。
/review
機能を使って Amazon Q Developer にコードレビューをしてもらうことが出来ます。
この時セキュリティの脆弱性やコード品質の問題が発見された時に、それぞれの問題の詳細情報を確認することが出来ます。
この詳細情報に Detector Library へのリンクが設定されていまして、コードの問題点と修正方法などが紹介されています。
CodeGuru Reviewer Detector Library の後継っぽい
こちらはhttps://docs.aws.amazon.com/amazonq/detector-library/
が URL なのですが、実は別のエイリアスも設定されています。
以前に CodeGuru Reviewer Detector Library というものがあって、紹介させていただいたことがあります。
どうやらこの Amazon Q Detector Library は CodeGuru Reviewer Detector Library から名前が変わったもののようです。
言語が大量に追加されていた
以前 CodeGuru Reviewer Detector Library が登場した時は Java と Python のドキュメントのみが用意されており、その後追加で確か JavaScript も追加されたような感じだったと思います。
現時点では色々と増えており次のような言語がサポートされています。
- Java
- Python
- JavaScript
- JSX
- TypeScript
- C#
- CloudFormation
- Terraform
- Go
- Ruby
- C
- C++
- PHP
- Kotlin
- Scala
- Shell
このドキュメントは Q Developer からの参考情報リンクとしてのみ使われるだけでなく、検出項目一覧が一元的に管理されているため事前に目を通しておくだけでもコードレビューで指摘される前に品質の良いコードを実装するために役立ちます。
数もそこまで多くなく、Java や Python で 130 ほど、C# や Go では 40 ほどとなっています。一通り目を通せなくは無さそうです。
さらに重大度別に項目をチェックすることが出来るので、例えば Critical だけは事前二チェックしておくとか、そういった使い方も出来そうです。
C# の Critical
上記でいうとX509Certificate2.PrivateKey
などの廃止された暗号化関連の API を利用する、サニタイズ無しでそのままRazor.Parse
に外部入力値を渡すなど紹介されています。なるほど。
知って入れば当然実装しないものの知らないとやってしまいそうなポイントを実装前に抑えておくことが出来ます。
おもしろいのは CloudFront などもありまして中身を確認してみると、ほぼ AWS リソースでチェックする項目ですね。普段 AWS インフラレイヤーを触らない方もインフラ側の実装ポイントを学ぶことが出来るのではないでしょうか。
CloudFormation | Amazon Q, Detector Library
さいごに
本日は Amazon Q Detector Library を紹介しました。
セキュアコーディングを検討されている方は事前にこのライブラリに目を通すだけでも役に立ちそうですね。
なお、CodeGuru Reviewer のドキュメントやコンソールを確認してみましたが本日時点では特に廃止の予定なども紹介されていませんでした。
CodeGuru は Amazon Q Developer と重複している機能も多く、新規で使うこともほぼ無いと思うので、近い内にこちらも動きがあるかもしれませんね。