
aws-security-assessment-solution v3.0.0
一个AWS工具,帮助您使用Prowler创建对您AWS账户的时间点评估。
自助安全评估解决方案 (v2.0)
网络安全仍然是许多 CIO、CISO 及其客户非常关注的重要议题和关切点。为了应对这些重要关切,AWS 开发了一套客户应使用的主要服务,以帮助保护其账户。Amazon GuardDuty、AWS Security Hub、AWS Config 和 AWS Well-Architected 审查可帮助客户在其 AWS 账户上维持强大的安全态势。随着越来越多的组织部署到云端,尤其是在快速部署的情况下,如果他们尚未实施推荐的 AWS 服务,可能需要对云环境进行快速安全评估。
我们开发了一种低成本、易于部署、安全且快速的解决方案,为客户提供安全评估报告。这些报告使用开源项目 Prowler 生成。Prowler 基于 AWS 最佳实践执行时间点安全评估,可帮助快速识别客户已部署环境中的任何潜在风险领域。如果您有兴趣持续进行这些评估,AWS 建议启用 Security Hub 的基础安全最佳实践标准。如果您有兴趣将 Prowler 评估结果与 Security Hub 集成,可以按照 Prowler 文档中的说明进行操作。
注意:Prowler 不是 AWS 拥有的解决方案。客户应在运行此解决方案之前独立审查 Prowler。与 Prowler 相关的任何依赖项都应保持最新。此解决方案从 pip 包安装程序安装固定版本的 Prowler(当前为 5.41.0),这样 Prowler 输出格式的更改就不会在无预警的情况下破坏扫描。要迁移到更新的版本,请编辑
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 | 指定要执行的扫描类型。选择 full 而不指定不同的 ProwlerOptions 将执行完整扫描。要执行特定检查,请选择 Full 并在 ProwlerOptions 后附加 -c 。 | 扫描类型 |
| ExcludeSecretsChecks | 默认为 true,这会跳过 Prowler 搜索资源内容中硬编码密钥的检查。设置为 false 以运行它们。 | 密钥检查 |
| MultiAccountScan | 如果要扫描组织中的所有账户,请将此设置为 true。您必须已部署先决条件模板以配置角色,或指定具有适当权限的其他 ProwlerRole。 | 多账户扫描 |
| Reporting | 如果要将 Prowler 报告汇总为单个 csv,请将此设置为 true。这在扫描多个账户时很有帮助。 | 报告摘要 |
| EmailAddress | 如果希望在评估完成时收到电子邮件,请指定一个地址。 | 通知 |
| 高级参数 | ||
| ConcurrentAccountScans | 对于多账户扫描,指定要并发扫描的账户数量。这对于拥有许多账户的大型组织很有用。选择超过三个会更改 CodeBuild 实例的大小,并可能产生额外费用。 | |
| CodeBuildTimeout | 设置 CodeBuild 作业的超时时间。默认值为 300 分钟(5 小时)。 | |
| MultiAccountListOverride | 指定要扫描的账户的空格分隔列表。留空将扫描组织中的所有账户。如果要扫描特定账户,请确保已将上面的 MultiAccountScan 参数设置为 true。如果您无法提供委派的 ListAccount 访问权限,可以提供 MultiAccountListOverride 参数。 | 多账户扫描 |
| ProwlerOptions | 指定 Prowler 的参数。--role 和 ARN 将自动添加到您指定的参数末尾。这也可用于指定单个检查。 | 完整扫描 |
| ProwlerRole | Prowler 应代入以执行扫描的角色。如果您想指定具有不同权限的自定义角色,请更改此项。 |
部署
您可以使用此项目在 AWS Organization 中的多个账户或单个账户中运行 Prowler。我们提供了使用 AWS CloudShell 或 AWS 控制台的说明。选择一种方式开始。
| 部署类型 | AWS CloudShell | AWS 控制台 |
|---|---|---|
| 单账户 | 链接 | 链接 |
| 多账户 | 链接 | 链接 |
单账户扫描
要对单个账户运行自助安全评估解决方案 (SATv2),请按照以下说明操作。您可以选择使用 AWS CLI 或 AWS 控制台。
AWS CloudShell
显示步骤
部署解决方案
-
登录您的 AWS 账户。
-
在导航栏中,选择 AWS CloudShell。
-
要下载 CloudFormation 模板,请输入以下命令。
wget https://raw.githubusercontent.com/awslabs/aws-security-assessment-solution/main/2-sat2-codebuild-prowler.yaml -
要创建一个 S3 存储桶来暂存模板,请输入以下命令。模板大于 51,200 字节,因此 CloudFormation 要求将其上传到 S3,而不是内联传递。
TEMPLATE_BUCKET=sat2-cfn-templates-$(aws sts get-caller-identity --query Account --output text)-$AWS_REGION aws s3 mb s3://$TEMPLATE_BUCKET --region $AWS_REGION