
Prowlerを使用してAWSアカウントの特定時点のアセスメントを作成するためのAWSツール。
サイバーセキュリティは、多くのCIO、CISO、およびその顧客にとって非常に重要かつ懸念されるトピックであり続けています。こうした重要な懸念に対応するため、AWSはお客様がアカウントの保護に活用すべき主要なサービスセットを開発しました。Amazon GuardDuty、AWS Security Hub、AWS Config、およびAWS Well-Architectedレビューは、お客様がAWSアカウント全体にわたって強固なセキュリティ態勢を維持するのに役立ちます。より多くの組織がクラウドにデプロイするにつれて、特にそれを迅速に行っている場合、まだ推奨されるAWSサービスを実装していない場合には、クラウド環境の迅速なセキュリティ評価を実施する必要があるかもしれません。
私たちは、お客様にセキュリティ評価レポートを提供するための、低コストでデプロイが容易、安全かつ高速なソリューションを開発しました。これらのレポートは、オープンソースプロジェクトProwlerを使用して生成されます。ProwlerはAWSのベストプラクティスに基づいた時点でのセキュリティ評価を実行し、お客様のデプロイ済み環境における潜在的なリスク領域を迅速に特定するのに役立ちます。これらの評価を継続的に実施することに関心がある場合、AWSはSecurity HubのFoundational Security Best Practices標準を有効化することを推奨します。Prowlerの評価結果をSecurity Hubと統合することに関心がある場合は、Prowlerドキュメントの手順に従うことができます。
注: ProwlerはAWSが所有するソリューションではありません。お客様はこのソリューションを実行する前に、Prowlerを独自にレビューする必要があります。Prowlerに関連する依存関係は最新の状態に保つ必要があります。このソリューションは、Prowlerの出力形式の変更が警告なしにスキャンを壊すことがないよう、pipパッケージインストーラーから固定バージョンのProwler(現在5.41.0)をインストールします。新しいリリースに移行するには、
2-sat2-codebuild-prowler.yaml内のpip3 install prowler==の行を編集してください。
📕 より詳細なステップバイステップの手順については、SHIP Workshopのモジュール2をご覧ください。
このソリューションはAWS CloudFormationでデプロイされます。デプロイされると、AWS CodeBuildプロジェクトと、Prowlerが生成したレポートを保存するためのAmazon S3バケットが作成されます。次に、AWS Lambda関数を使用してAWS CodeBuildプロジェクトを開始します。
パラメータ(ユーザー入力)のデフォルトでは、単一アカウントで基本スキャンが実行されます。ただし、異なるパラメータを選択して、より広範なスキャンを実行したり、複数のアカウントをスキャンしたりできます。デプロイプロセスは完了までに5分もかかりません。このソリューションのAWS CloudFormationテンプレートは、レビュー用にこのGithubリポジトリで提供されています。
テンプレートがデプロイされると、CodeBuildプロジェクトが実行されます。デフォルトの評価は完了までに約5分かかります。セキュリティ評価の完了にかかる時間は、リソースの数と選択したスキャンオプションによって異なります。評価の最後に、レポートが作成されたS3バケットに配信されます。

SATv2はCloudFormationパラメータを更新することでカスタマイズできます。このセクションでは、利用可能なオプションを要約し、詳細情報が記載されたセクションへのリンクを提供します。
| パラメータ | 説明 | 詳細情報 |
|---|---|---|
| ProwlerScanType | 実行するスキャンの種類を指定します。異なるProwlerOptionsを指定せずにfullを選択すると、フルスキャンが実行されます。特定のチェックを実行するには、Fullを選択し、ProwlerOptionsに-c を追加します。 | スキャンの種類 |
| ExcludeSecretsChecks | デフォルトはtrueで、ハードコードされたシークレットについてリソースコンテンツを検索するProwlerチェックをスキップします。これらを実行するにはfalseに設定します。 | シークレットチェック |
| MultiAccountScan | 組織内のすべてのアカウントをスキャンする場合は、これをtrueに設定します。ロールをプロビジョニングするための前提条件テンプレートをデプロイしているか、適切な権限を持つ別のProwlerRoleを指定する必要があります。 | マルチアカウントスキャン |
| Reporting | Prowlerレポートを単一のcsvに要約する場合は、これをtrueに設定します。これは複数のアカウントをスキャンする場合に役立ちます。 | レポートサマリー |
| EmailAddress | 評価が完了したときにメールを受信する場合は、アドレスを指定します。 | 通知 |
| 詳細パラメータ | ||
| ConcurrentAccountScans | マルチアカウントスキャンの場合、同時にスキャンするアカウント数を指定します。これは多くのアカウントを持つ大規模な組織に役立ちます。3つを超えて選択するとCodeBuildインスタンスのサイズが変更され、追加コストが発生する可能性があります。 | |
| CodeBuildTimeout | CodeBuildジョブのタイムアウトを設定します。デフォルトは300分(5時間)です。 | |
| MultiAccountListOverride | スキャンするアカウントのスペース区切りリストを指定します。これを空白のままにすると、組織内のすべてのアカウントがスキャンされます。特定のアカウントをスキャンする場合は、上記のMultiAccountScanパラメータをtrueに設定していることを確認してください。委任されたListAccountアクセスを提供できない場合は、MultiAccountListOverrideパラメータを指定できます。 | マルチアカウントスキャン |
| ProwlerOptions | Prowlerのパラメータを指定します。--roleとARNは、指定したパラメータの末尾に自動的に追加されます。これは単一のチェックを指定するためにも使用できます。 | フルスキャン |
| ProwlerRole | Prowlerがスキャンを実行するために引き受けるロール。異なる権限を持つ独自のロールを指定する場合は、これを変更します。 |