

# SEC11-BP04 手動のコードレビュー
<a name="sec_appsec_manual_code_reviews"></a>

作成するソフトウェアについて、手動のコードレビューを実施します。このプロセスは、コードを記述した人物が、コードの品質を確認する唯一のユーザーでないことを検証するうえで役立ちます。

**期待される成果:** 開発に手動のコードレビューステップを含めることで、開発中のソフトウェアの品質を改善したり、経験の浅いチームメンバーのスキルアップを支援したり、自動化を使用できる領域を識別したりすることができます。手動のコードレビューは、自動化ツールやテストによってサポートすることができます。

**一般的なアンチパターン:**
+  デプロイ前にコードレビューを実施していない。 
+  コードの作成とレビューを同じ担当者が行っている。 
+  コードレビューの支援と調整に自動化を使用していない。 
+  コードレビューの前に、アプリケーションセキュリティについてビルダーをトレーニングしていない。 

**このベストプラクティスを活用するメリット:**
+  コード品質の向上。 
+  共通のアプローチの再利用によるコード開発の一貫性の向上。 
+  ペネトレーションテストや後工程において検知される問題数の低減。 
+  チーム内での知識の移転の改善。 

 **このベストプラクティスが確立されていない場合のリスクレベル:** 中 

## 実装のガイダンス
<a name="implementation-guidance"></a>

 全体的なコード管理フローの一部として、レビューステップを実装します。詳細は、分岐、プルリクエスト、マージで使用するアプローチによって異なります。それらのアプローチでは AWS CodeCommit、または GitHub、GitLab、Bitbucket のようなサードパーティソリューションを使用する場合があります。使用する手法にかかわらず、プロセスを本稼働環境にデプロイする前に、プロセスのレビューが必要であることを認識することが重要です。[Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) などのツールを使用すると、コードレビュープロセスを簡単に調整することができます。 

### 実装手順
<a name="implementation-steps-required-field"></a>
+  コード管理フローの一部として手動のレビューステップを実装し、次に進む前にこのレビューを実施します。 
+  コードレビューの管理と支援のために [Amazon CodeGuru Reviewer](https://aws.amazon.com/codeguru/) の使用を検討します。 
+  コードを次のステージに進める前にコードレビューの完了を必須とする承認フローを実装します。 
+  手動のコードレビューで発見された問題を自動的に検知するプロセスがないか確認します。 
+  コード開発プラクティスに沿って手動のコードレビューを統合します。 

## リソース
<a name="resources-required-field"></a>

 **関連するベストプラクティス:**
+  [SEC11-BP02 開発およびリリースライフサイクル全体を通じてテストを自動化する](sec_appsec_automate_testing_throughout_lifecycle.md) 

 **関連するドキュメント:**
+  [Working with pull requests in AWS CodeCommit repositories](https://docs.aws.amazon.com/codecommit/latest/userguide/pull-requests.html) (AWS CodeCommit でのプルリクエストの使用) 
+  [Working with approval rule templates in AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/approval-rule-templates.html) (AWS CodeCommit での承認ルールテンプレートの使用) 
+  [About pull requests in GitHub](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) (GitHub でのプルリクエストについて) 
+  [ Automate code reviews with Amazon CodeGuru Reviewer](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/) (Amazon CodeGuru Reviewer を使用したコードレビューの自動化) 
+  [Automating detection of security vulnerabilities and bugs in CI/CD pipelines using Amazon CodeGuru Reviewer CLI](https://aws.amazon.com/blogs/devops/automating-detection-of-security-vulnerabilities-and-bugs-in-ci-cd-pipelines-using-amazon-codeguru-reviewer-cli/) (Amazon CodeGuru Reviewer CLI を使用した CI/CD パイプラインでのセキュリティ脆弱性とバグの検知の自動化) 

 **関連動画:**
+  [Continuous improvement of code quality with Amazon CodeGuru](https://www.youtube.com/watch?v=iX1i35H1OVw) (Amazon CodeGuru を使用したコード品質の継続的な改善) 

 **関連する例:** 
+  [Security for Developers workshop](https://catalog.workshops.aws/sec4devs) (開発者のためのセキュリティワークショップ) 