

# SEC11-BP07 パイプラインのセキュリティ特性を定期的に評価する
<a name="sec_appsec_regularly_assess_security_properties_of_pipelines"></a>

 アクセス許可の分離に特に注意しながら、Well-Architected セキュリティの柱の原則をパイプラインに適用します。パイプラインインフラストラクチャのセキュリティ特性を定期的に評価します。パイプライン*の*セキュリティを効率的に管理することにより、パイプラインを*通過する*ソフトウェアのセキュリティを確保することができます。 

**期待される成果:** ソフトウェアの構築とデプロイに使用するパイプラインは、環境内の他のワークロードと同じ推奨プラクティスに従う必要があります。パイプラインに実装されるテストは、テストを使用するビルダーによって編集できないようにする必要があります。パイプラインへのアクセス許可は、実施するデプロイに必要なものだけに制限し、誤った環境へのデプロイを防ぐための安全対策を実装する必要があります。パイプラインは長期的な認証情報に依存せず、構築環境の整合性を検証できるようにステータスを送信する必要があります。

**一般的なアンチパターン:**
+  ビルダーが回避可能なセキュリティテスト。 
+  デプロイパイプラインへの広範すぎるアクセス許可。 
+  入力を検証するように設定されていないパイプライン。 
+  CI/CD インフラストラクチャに関連付けられているアクセス許可を定期的にレビューしていない。 
+  長期的な認証情報、またはハードコード化された認証情報の使用。 

**このベストプラクティスを活用するメリット:**
+  パイプラインをとおして構築およびデプロイされるソフトウェアの整合性についての信頼性の向上。 
+  不審なアクティビティが存在するデプロイを停止する能力。 

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

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

 IAM ロールをサポートするマネージド CI/CD サービスから始めることで、認証情報の流出リスクを低減することができます。セキュリティの柱の原則を CI/CD パイプラインインフラストラクチャに適用すると、セキュリティの改善が可能な領域を判断するのに役立ちます。[AWS デプロイパイプラインリファレンスアーキテクチャ](https://aws.amazon.com/blogs/aws/new_deployment_pipelines_reference_architecture_and_-reference_implementations/)に沿うことは、CI/CD 環境の構築の良い起点となります。パイプラインの実装を定期的にレビューし、予期しない動作のログを分析すると、ソフトウェアのデプロイで使用されているパイプラインの使用パターンの理解に役立ちます。 

### 実装手順
<a name="implementation-steps"></a>
+  [AWS デプロイパイプラインリファレンスアーキテクチャ](https://aws.amazon.com/blogs/aws/new_deployment_pipelines_reference_architecture_and_-reference_implementations/)を起点とします。 
+  [AWSIAM Access Analyzer](https://docs.aws.amazon.com//latest/UserGuide/what-is-access-analyzer.html) を使用して、プログラム的にパイプラインの最小特権の IAM ポリシーを生成することを検討します。 
+  予期しないアクティビティや異常なアクティビティを検知するために、監視と警告をパイプラインに実装します。AWS のマネージドサービスである [Amazon EventBridge](https://aws.amazon.com/eventbridge/) を使用すると、[AWS Lambda](https://aws.amazon.com/lambda/) や [Amazon Simple Notification Service](https://aws.amazon.com/sns/) (Amazon SNS) などのターゲットにデータをルーティングすることができます。 

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

 **関連するドキュメント:** 
+  [AWS Deployment Pipelines Reference Architecture](https://aws.amazon.com/blogs/aws/new_deployment_pipelines_reference_architecture_and_-reference_implementations/) (AWS デプロイパイプラインリファレンスアーキテクチャ) 
+  [Monitoring AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/monitoring.html) (AWS CodePipeline のモニタリング) 
+  [Security best practices for AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-best-practices.html) (AWS CodePipeline のセキュリティのベストプラクティス) 

 **関連する例:** 
+  [DevOps monitoring dashboard](https://github.com/aws-solutions/aws-devops-monitoring-dashboard) (DevOps モニタリングダッシュボード) (GitHub) 