Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
aws-security-assessment-solution — 一个AWS工具,帮助您使用Prowler创建对您AWS账户的时间点评估。 | Kitploit
工具/GitHubGitHub/awslabs/aws-security-assessment-solution
云基础设施安全漏洞扫描器配置审计云安全DevSecOps
GitHubawslabs/aws-security-assessment-solution

aws-security-assessment-solution

一个AWS工具,帮助您使用Prowler创建对您AWS账户的时间点评估。

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
61511857天前Kitploit 审核通过

自助安全评估解决方案 (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 包安装程序提供的最新版本。

📕 如需更详细的分步说明,请访问 SHIP 研讨会 中的模块 2。

目录

  • 概述
  • 参数
  • 部署
  • 单账户扫描
    • AWS CloudShell
      • 部署解决方案
    • AWS 控制台
      • 部署解决方案
  • 多账户扫描
    • AWS CloudShell
      • 步骤 1:部署先决条件角色
      • 步骤 2:部署 SATv2 解决方案
    • AWS 控制台
      • 步骤 1:部署先决条件角色
      • 步骤 2:为 AWS Organizations 启用委托管理员
      • 步骤 3:部署 SATv2 解决方案
  • 查看结果
    • SATv2 仪表板(推荐)
    • Prowler 仪表板
  • 扫描类型
    • 基础扫描
    • 中级扫描
    • 完全扫描
  • 通知
  • 报告摘要
  • 常见问题 (FAQ)
  • 清理
  • 安全性
  • 许可证

概述

该解决方案使用 AWS CloudFormation 进行部署。部署后,会创建一个 AWS CodeBuild 项目和一个 Amazon S3 存储桶,用于存储 Prowler 生成的报告。然后使用 AWS Lambda 函数启动 AWS CodeBuild 项目。

参数(用户输入)的默认值将在单个账户中运行基础扫描。但是,您可以选择不同的参数来运行更广泛的扫描或扫描多个账户。部署过程需要不到 5 分钟即可完成。该解决方案的 AWS CloudFormation 模板已提供在此 GitHub 存储库中供审查。

模板部署后,CodeBuild 项目将运行。默认评估大约需要 5 分钟才能完成。安全评估完成的时间将取决于资源数量和所选的扫描选项。评估结束后,报告将传送到所创建的 S3 存储桶。

架构图

参数

SATv2 可以通过更新 CloudFormation 参数进行自定义。本节总结了可用选项,并提供了包含更多信息的章节链接。

部署

您可以使用此项目在 AWS Organization 中跨多个账户运行 Prowler,也可以在单个账户中运行。我们提供了使用 AWS CloudShell 或 AWS 控制台的说明。选择一个选项开始。

部署类型AWS CloudShellAWS 控制台
单账户链接链接
多账户链接链接

单账户扫描

要针对单个账户运行自助安全评估解决方案(SATv2),请按照以下说明操作。您可以选择使用 AWS CLI 或 AWS 控制台。

AWS CloudShell

显示步骤

部署解决方案

  1. 登录您的 AWS 账户。

  2. 在导航栏中,选择 AWS CloudShell。

  3. 要下载 CloudFormation 模板,请输入以下命令。

    root@kitploit:~
    wget https://raw.githubusercontent.com/awslabs/aws-security-assessment-solution/main/2-sat2-codebuild-prowler.yaml
    
  4. 要部署 CloudFormation 模板,请输入以下命令。

    root@kitploit:~
    aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml --stack-name sat2 --capabilities CAPABILITY_NAMED_IAM
    

AWS 控制台

显示步骤

部署解决方案

  1. 下载 2-sat2-codebuild-prowler.yaml CloudFormation 模板。
  2. 导航到 AWS CloudFormation 控制台。
  3. 在导航窗格中,选择 Stacks。
  4. 选择 Create stack。
  5. 在 Specify template 下,选择 Upload a template file。
  6. 选择您在步骤 1 中下载的 2-sat2-codebuild-prowler.yaml。
  7. 选择 Next。
  8. 对于 Stack name,输入 sat2。
  9. 选择 Next。
  10. 在 Configure stack options 页面中,选择 Next。
  11. 在 Review SAS 页面中,选中 I acknowledge that AWS CloudFormation might create IAM resources. 复选框,然后选择 Submit。

多账户扫描

自助安全评估解决方案(SAT)也支持多账户扫描。您必须在要执行扫描的每个账户中部署一个先决条件角色。要运行 SATv2 进行多账户扫描,请按照以下说明操作。您可以选择使用 AWS CLI 或 AWS 控制台。

这些说明假设您已经具备执行堆栈集操作的先决条件。有关更多信息,请访问 AWS CloudFormation 用户指南。

注意:StackSets 不适用于管理账户。要评估管理账户,请将 1-sat2-member-role 作为 CloudFormation Stack 部署。

AWS CloudShell

显示步骤

步骤 1:部署先决条件角色

  1. 登录您的 AWS 管理账户。

  2. 在导航栏中,选择 AWS CloudShell。

  3. 确定您将从哪个账户运行 Prowler 扫描。客户通常使用安全工具账户或审计账户。记下用于 ProwlerAccountID 参数的账户 ID。

  4. 要下载 CloudFormation 模板,请输入以下命令。

    root@kitploit:~
    wget https://raw.githubusercontent.com/awslabs/aws-security-assessment-solution/main/1-sat2-member-roles.yaml
    
  5. 通过 CloudFormation StackSets 部署 CloudFormation 模板。更新以下参数:

    • 将 <aws-account-id> 替换为您将运行 Prowler 的账户 ID。
    • 将 <region> 替换为您要部署模板的区域。
    root@kitploit:~
    aws cloudformation create-stack-set --template-body file://1-sat2-member-roles.yaml \
    --stack-set-name sat2-member-roles \
    --permission-model SERVICE_MANAGED \
    --auto-deployment Enabled=true,RetainStacksOnAccountRemoval=false \
    --capabilities CAPABILITY_NAMED_IAM \
    --parameters ParameterKey=ProwlerAccountID,ParameterValue=<aws-account-id> \
    --region <region>
    
  6. 使用以下命令为组织中的每个账户创建堆栈实例。您可以针对特定的 OU 或根 OU。更新以下参数:

    • 将 <root-ou> 替换为 组织根 ID。
    • 将 <region> 替换为您要部署模板的区域。
    root@kitploit:~
    aws cloudformation create-stack-instances --stack-set-name sat2-member-roles \
    --deployment-targets OrganizationalUnitIds='["<root-ou>"]' \
    --regions '["<region>"]' \
    --operation-preferences FailureTolerancePercentage=100,MaxConcurrentPercentage=100 \
    --region <region>
    

AWS 控制台

显示步骤

步骤 1:部署先决条件角色

  1. 下载 1-sat2-member-roles.yaml 和 2-sat2-codebuild-prowler.yaml 文件。

  2. 通过 CloudFormation StackSets 部署 CloudFormation 模板。更新以下参数:

    • 将 <aws-account-id> 替换为您将运行 Prowler 的账户 ID。
    • 将 <region> 替换为您要部署模板的区域。
  3. 导航到 AWS CloudFormation 控制台。

  4. 在导航窗格中,选择 StackSets。

  5. 选择 Create StackSet。

  6. 对于 Permissions,保留 Service-managed permissions 选中状态。

  7. 在 Specify template 下,选择 Upload a template file。

  8. 选择您在步骤 1-1 中下载的 1-sat2-member-roles.yaml。

  9. 选择 Next。

  10. 对于 Stack name,输入 sat2-member-role。

  11. 对于 Parameters,输入以下内容:

    • ProwlerAccountID - 您将运行 Prowler 的账户 ID。
  12. 选择 Next。

  13. 在 Configure StackSet options 页面中,选择 Next。

  14. 在 Set deployment options 中,输入以下内容:

    1. 对于 Deployment targets,保留 Deploy to organization 选中状态。
    2. 对于 Specify regions,选择 us-east-1。
    3. 对于 Region Concurrency,选择 Parallel。
  15. 选择 Next。

  16. 在 Review 页面中,选中 I acknowledge that AWS CloudFormation might create IAM resources. 复选框,然后选择 Submit。

步骤 2:为 AWS Organizations 启用委托管理员

确定您要在其中部署 Prowler 的账户是否已有委托管理员或资源策略。建议从您的安全工具(审计)账户运行 Prowler。要更新或验证审计账户是否具有 ListAccounts 权限,请按照以下步骤操作。

查看结果

部署解决方案后,Lambda 函数会启动 CodeBuild 项目。CodeBuild 项目构建完成后,Prowler 结果将上传到所创建的 Amazon S3 存储桶。如果您配置了通知,当 Prowler 扫描完成时,您将收到一封电子邮件。如果您配置了报告,您将在 /reports 文件夹中获得一个整合后的 csv 文件。

如果您没有配置电子邮件提醒,则可以从 CodeBuild 控制台 监控进度。

要查看结果,请按照以下步骤操作。

  1. 在您部署 Prowler 的账户中,导航到 Amazon S3 控制台。

  2. 选择以 sat2-prowler-prowlerfindingsbucket- 开头的存储桶。

  3. 选择包含扫描日期和时间的文件夹。

  4. 对于每个账户,将有 4 种文件类型(csv、html、json、json-ocsf),格式为 prowler-output-<aws-account-id>-<datetime>。

  5. 选择其中一个 html 对象。

  6. 选择 打开。

    Prowler 输出

  7. 新窗口将打开,显示您的报告。您可以使用过滤器来识别并确定发现的优先级。

    Prowler 发现

SATv2 仪表板(推荐)

如果您启用了报告功能,则报告文件夹中将包含一个静态 html 仪表板。

  1. 选择 satv2-dashboard.html 对象,然后选择 打开。
  2. 选择整合后的 csv 文件,选择 操作,然后选择 使用预签名 URL 共享。

    注意:请勿与任何人共享您的预签名 URL。预签名 URL 使用安全凭证授予限时下载对象的权限。该 URL 可以在浏览器中输入,也可以由程序用于下载对象。预签名 URL 使用的凭证是生成该 URL 的 AWS 用户的凭证。有关更多信息,请参阅使用预签名 URL 共享对象。

  3. 对于 分钟数,输入 1。
  4. 将 URL 粘贴到 satv2-dashboard.html 页面中。
  5. 在 img/satv2-dashboard.png 中查看仪表板示例输出。

Prowler 仪表板

Prowler 内置了一个仪表板,用于查看结果。要使用 Prowler 仪表板,必须在本地安装 Prowler,并且必须将 Prowler 的结果下载到本地。

您必须拥有 AWS 命令行界面 (CLI) 和有效的凭证。有关更多信息,请参阅 AWS 命令行界面用户指南。

  1. 安装 Prowler。有关更多信息,请参阅 Prowler 安装说明。

    root@kitploit:~
    pip install prowler
    
  2. 获取 Amazon S3 存储桶的名称。存储桶的名称可以在 CloudFormation 控制台中作为 ProwlerFindingsBucket 资源找到。或者,导航到 S3 控制台,查找格式为 {stack_name}-prowlerfindingsbucket-{ID} 的存储桶。

  3. 从 S3 下载 CSV 和合规性数据。如果您未进行完整扫描,可能没有合规性数据。将 {bucket_name} 替换为您存储桶的名称。

    root@kitploit:~
    aws s3 sync s3://{bucket_name}/compliance/ output/compliance/
    aws s3 sync s3://{bucket_name}/csv/ output/
    
  4. 运行仪表板。使用以下命令运行仪表板。默认情况下,它将在 http://127.0.0.1:11666/ 上启动。

    root@kitploit:~
    prowler dashboard
    

扫描类型

默认情况下,SAT2 将运行包含 13 个检查项的基本扫描。您可以通过选择不同的 ProwlerScanType 参数值来选择运行中级或完整检查。

例如,使用中级扫描选项对单个账户进行扫描的命令如下:```bash aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml
--stack-name sat2-prowler
--capabilities CAPABILITY_NAMED_IAM
--parameter-overrides ProwlerScanType=Intermediate

root@kitploit:~
检查项会频繁添加,要查看最新检查项,请运行 `prowler aws --list-checks` 命令。以下为每个检查级别提供了一个示例。

### 基础扫描
要查看检查项列表,请查阅[基础检查](https://github.com/awslabs/aws-security-assessment-solution/blob/main/checks/basic_checks.txt)。

- 手动检查 - 维护当前的联系人详情。
- 查找过时的 Lambda 运行时。
- 确保在所有区域启用 CloudTrail
- 确保在所有区域启用 AWS Config。
- 确保没有安全组允许来自 0.0.0.0/0 或 ::/0 的入站流量到任何端口。
- 检查 GuardDuty 是否已启用
- 确保 IAM 密码策略要求至少一个小写字母
- 确保 IAM 密码策略要求至少一个数字
- 确保 IAM 密码策略要求至少一个符号
- 确保 IAM 密码策略要求至少一个大写字母
- 确保为根账户启用 MFA
- 确保访问密钥每 90 天或更短时间轮换
- 确保没有 S3 存储桶对 Everyone 或任何 AWS 用户开放。

### 中级扫描
要查看检查项列表,请查阅[中级检查](https://github.com/awslabs/aws-security-assessment-solution/blob/main/checks/intermediate_checks.txt)。

此扫描将向 Prowler 扫描选项添加 `--severity critical high`。选中此选项后,Prowler 将运行所有结果为严重或高严重性的安全检查。

### 全面扫描
要查看检查项列表,请查阅[全面检查](https://github.com/awslabs/aws-security-assessment-solution/blob/main/checks/full_checks.txt)。

此选项不会向 Prowler 扫描添加任何额外参数。它将使 Prowler 运行 500 多项检查。

您也可以使用全面扫描按需自定义扫描。

对于 **ProwlerScanType**,选择 **Full**。

对于 **ProwlerOptions**,附加检查项。例如,要仅检查 GuardDuty 是否已启用,请输入:

`aws --ignore-exit-code-3 -c guardduty_is_enabled`

## 通知

您可以选择在部署 CloudFormation 模板时在 EmailAddress 参数中指定电子邮件地址。这将创建一个 SNS 主题,并在 CodeBuild 工作完成时发送电子邮件。

在运行较长时间扫描或跨多个账户时,这可能会很有帮助。

例如,带电子邮件通知的单账户扫描将使用以下命令:```bash
aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml \
--stack-name sat2-prowler \
--capabilities CAPABILITY_NAMED_IAM \
--parameter-overrides [email protected]

无论是否设置了可选的 EmailAddress 参数,您都可以在 CodeBuild 控制台中查看进度。

  1. 导航到 CodeBuild 控制台。
  2. 在导航窗格中,在 构建 下,选择 构建项目。
  3. 选择以 ProwlerCodeBuild- 开头的构建项目。
  4. 在构建历史记录下,您将看到最近一次运行。 CodeBuild 项目
  5. 可选地,您可以选择 开始构建,使用部署解决方案时选择的选项来运行另一次扫描。

报告摘要

您可以选择启用报告功能,将多个 Prowler 扫描 csv 文件汇总为一个文件。这在跨 AWS 组织中的多个账户运行 Prowler 时可能很有用。报告摘要功能默认关闭。要启用报告,请在部署 CloudFormation 模板时将 Reporting 参数设置为 true。这将创建一个 Athena WorkGroup、一个 Glue 表,并自动运行查询以合并结果。汇总后的 csv 文件位于与 Prowler 结果相同的 S3 存储桶的 /reports 文件夹中。

如果在启用报告时指定了电子邮件地址,则当 Athena 查询完成时,您将收到第二封电子邮件。

例如,启用了报告和电子邮件警报的多账户扫描将使用以下命令:

root@kitploit:~
aws cloudformation deploy \
--stack-name ProwlerStack \
--template-file ProwlerSASTemplate.yaml \
--capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM \
--parameter-overrides \
EnableReporting=true \
[email protected]```bash

aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml
--stack-name sat2-prowler
--capabilities CAPABILITY_NAMED_IAM
--parameter-overrides MultiAccountScan=true Reporting=true EmailAddress=[email protected]

root@kitploit:~
![reporting architecture diagram](https://assets.kitploit.com/production/public/readmes/5740/dec216293979361dd2f4945bdd6b8bfda3622096d3ceebefe140a62c6806e336.png)

示例创建了一个已保存查询,该查询统计所有被评估账户中未通过的检查项。如需查看并运行此查询,请执行以下步骤:

1. 导航至 Amazon Athena 控制台。
2. 选择以 `sat2-prowler-*` 开头的工作组。
3. 选择 **已保存查询** 选项卡。
4. 通过选择 **ID** 来选中要运行的查询。

    ![Athena 已保存查询](https://assets.kitploit.com/production/public/readmes/5740/1fb2b968b921f29ad790143986537266ea02ce42b454d997aa0f42171937b08f.png)

5. 选择 **运行** 以执行查询。

    ![Athena 已保存查询结果](https://assets.kitploit.com/production/public/readmes/5740/e8f75e80b66ffec78796072e0f6a85f9b7f5716b21f24a21d3a568c0c8bdbb5b.png)

## 常见问题解答 (FAQ)

1. 是否产生费用?
    + 此解决方案旨在 [AWS 免费套餐](https://aws.amazon.com/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all) 内运行。
    + 对于 [Amazon CodeBuild](https://aws.amazon.com/free/devops/?p=ft&z=subnav&loc=3),客户每月可获得 100 分钟的构建时长。
    + 对于已经超出 CodeBuild、S3 和 Lambda 免费套餐的客户,运行此解决方案的成本低于 1 美元。
2. 这是否是一个持续监控和报告工具?
    + 不是。这是一次性评估,我们建议客户使用 [AWS Security Hub](https://aws.amazon.com/security-hub/) 进行持续评估。
3. 是否与 GuardDuty、Security Hub、CloudWatch 等集成?
    + 不集成。您可以按照 [此博客](https://aws.amazon.com/blogs/security/use-aws-fargate-prowler-send-security-configuration-findings-about-aws-services-security-hub/) 中的说明将 Prowler 与 Security Hub 集成。
4. 如何修复报告中的问题?
    + 通常,报告中会描述问题并附带易于识别的修正方法。同时请参考每个工具(例如 Prowler)的公开文档。如果仍不足够,请联系您的 AWS 账户团队或 [AWS Support](https://aws.amazon.com/contact-us/),以帮助您理解报告并解决问题。
5. Prowler 针对 SATv2 报告哪些发现项?
    | 检查项                                                                             | 缓解措施                                                                                                                                                                                                                              |
    | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | 检查 Lambda 函数的 API 调用是否被 CloudTrail 记录。                               | CloudTrail 是 AWS 账户级别的配置。应独立于 SATv2 启用 CloudTrail。                                                                                                                                    |
    | 为 CloudFormation 堆栈启用终止保护。                                               | SATv2 旨在某个时间点运行,然后删除。如果堆栈被终止,发现项仍会保留在 S3 存储桶中。                                                                                        |
    | 检查 CloudWatch 日志组是否受 AWS KMS 保护。                                      | 日志组数据在 CloudWatch Logs 中始终加密。默认情况下,CloudWatch Logs 使用服务器端加密保护静态日志数据。未配置客户管理的 KMS 密钥以节省成本。                                   |
    | 检查 CloudWatch 日志组是否设置了特定天数的保留策略。                              | 日志组保留期设计为 7 天。此检查会查找保留期少于一年的日志组。                                                                                                                        |
    | 检查 S3 存储桶是否启用了 KMS 加密。                                              | 所有 Amazon S3 存储桶默认配置加密,对象通过使用 Amazon S3 托管密钥(SSE-S3)的服务器端加密自动加密。未配置客户管理的 KMS 密钥以节省成本。 |
    | 检查 S3 存储桶是否未启用 MFA 删除。                                               | Prowler 评估结果可以重新生成,不需要 MFA 删除。                                                                                                                                                            |
    | 检查 S3 存储桶是否启用了对象锁定。                                                | Prowler 评估结果可以重新生成,不需要 S3 对象锁定。                                                                                                                                                        |
    | 检查 S3 存储桶是否启用了服务器访问日志记录。                                      | Prowler 评估结果不需要服务器访问日志记录。                                                                                                                                                        |

## 清理
运行解决方案后,您应删除 CloudFormation 堆栈以移除不再需要的资源。包含 Prowler 扫描结果的 S3 存储桶将保留。

要从您的账户中移除安全评估解决方案,请执行以下步骤。

1. 在您运行工具(ProwlerAccountID)的账户中,导航至 [AWS CloudFormation 控制台](https://console.aws.amazon.com/cloudformation)。
2. 在导航窗格中,选择 **堆栈**。
3. 选择 **sat2-prowler** 堆栈。
4. 选择 **删除**。

如果您部署了成员角色 StackSet 以扫描多个账户,请执行以下步骤。

1. 在您创建成员角色 StackSet 的账户中,导航至 [AWS CloudFormation 控制台](https://console.aws.amazon.com/cloudformation)。
2. 在导航窗格中,选择 **StackSets**。
3. 选择 **sat2-member-roles** StackSet。
4. 选择 **操作**,然后选择 **从 StackSet 删除堆栈**。
5. 指定创建 StackSet 时使用的相同 **AWS OU ID**。
6. 对于 **指定区域**,选择 **添加所有区域**。
7. 选择 **下一步**,然后选择 **提交**。

更改完成后,您可以删除 StackSet。

1. 选择 **sat2-member-roles** StackSet。
2. 选择 **操作**,然后选择 **删除 StackSet**。

如果要移除包含扫描结果的 Amazon S3 存储桶,请按照 [Amazon S3 用户指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) 中的步骤删除对象和存储桶。如果您再次运行解决方案,将会创建一个新的 S3 存储桶来存放结果。

## 安全

请参阅 [CONTRIBUTING](https://github.com/awslabs/aws-security-assessment-solution/blob/main/CONTRIBUTING.md#security-issue-notifications) 了解更多信息。

## 许可证

本项目采用 Apache-2.0 许可证授权。
下载工具
参数描述更多信息
ProwlerScanType指定要执行的扫描类型。选择 full 且不指定不同的 ProwlerOptions 将进行完全扫描。要执行特定检查,请选择 Full 并在 ProwlerOptions 中追加 -c <检查项>。扫描类型
MultiAccountScan如果要扫描组织中的所有账户,请将此参数设置为 true。您必须已部署先决条件模板以预置角色,或者指定具有适当权限的其他 ProwlerRole。多账户扫描
Reporting如果要将 Prowler 报告汇总为单个 csv,请将此参数设置为 true。这在扫描多个账户时很有帮助。报告摘要
EmailAddress如果希望在评估完成时接收电子邮件,请指定一个地址。通知
高级参数
ConcurrentAccountScans对于多账户扫描,指定要同时扫描的账户数量。这对于拥有大量账户的大型组织很有用。选择超过三个会改变 CodeBuild 实例的大小,并可能产生额外费用。
CodeBuildTimeout设置 CodeBuild 作业的超时时间。默认值为 300 分钟(5 小时)。
MultiAccountListOverride指定一个以空格分隔的账户列表进行扫描。留空将扫描组织中的所有账户。如果您想扫描特定账户,请确保将上面的 MultiAccountScan 参数设置为 true。如果您无法提供委托的 ListAccount 访问权限,则可以提供 MultiAccountListOverride 参数。多账户扫描
ProwlerOptions指定 Prowler 的参数。--role 和 ARN 将自动附加到您指定的参数末尾。此参数也可用于指定单个检查。完全扫描
ProwlerRoleProwler 执行扫描时应扮演的角色。如果您想指定自己的角色并具有不同权限,请更改此参数。
  • 确定您的 Prowler 账户是否已有委托管理员或资源策略。只需要一种选择,建议使用资源策略,因为它更精细。

    注意:资源策略在 GovCloud 中不可用,因此您需要使用委托管理员。

    7a. 您的 Prowler 账户可能已有委托。您可以使用以下命令进行检查:

    root@kitploit:~
    aws organizations list-delegated-administrators
    

    7b. 您的 Prowler 账户可能已有资源策略。您可以使用以下命令进行检查:

    root@kitploit:~
    aws organizations describe-resource-policy
    
  • 如果您没有委托管理员或资源策略,可以使用以下命令添加适当的访问权限。

    注意:如果您无法提供委托的 ListAccount 访问权限,您可以在 2-sat2-codebuild-prowler 模板 中提供 MultiAccountListOverride 参数。

    注意:如果您正在使用 GovCloud,请使用步骤 8a 创建委托管理员。如果您使用的是商业区域,请使用步骤 8b 提供对 ListAccounts 的最小权限访问。

    8a. 如果您尚未委托管理员,请使用以下命令进行委托。将 <aws-account-id> 替换为您将运行 Prowler 的账户 ID。

    root@kitploit:~
    aws organizations register-delegated-administrator <aws-account-id>
    

    8b. 使用以下命令添加资源策略。

    • 将 <aws-account-id> 替换为您将运行 Prowler 的账户 ID。

      root@kitploit:~
      aws organizations put-resource-policy --content \
      '{
          "Version": "2012-10-17",
          "Statement": [
          {
              "Sid": "Statement",
              "Effect": "Allow",
              "Principal": {
              "AWS": "arn:aws:iam::<aws-account-id>:root"
              },
              "Action": [
                  "organizations:ListAccounts",
                  "organizations:DescribeAccount",
                  "organizations:ListTagsForResource"
      	    ],
              "Resource": "*"
          }
          ]
      }'
      
  • 步骤 2:部署 SATv2 解决方案

    注意:确保您已切换到您指定将运行 Prowler 的账户。

    1. 要下载模板,请在 Prowler 账户 中打开 AWS CloudShell 并输入以下命令。

      root@kitploit:~
      wget https://raw.githubusercontent.com/awslabs/aws-security-assessment-solution/main/2-sat2-codebuild-prowler.yaml
      
    2. 在 Prowler 账户中部署模板。将 MultiAccountScan 设置为 true 以扫描组织中的所有账户。

      root@kitploit:~
      aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml \
      --stack-name sat2-prowler \
      --capabilities CAPABILITY_NAMED_IAM \
      --parameter-overrides MultiAccountScan=true
      

    导航到 AWS Organization 控制台。

  • 在导航窗格中,选择 Settings。

  • 对于 Delegated administrator for AWS Organizations,包含以下语句。

    root@kitploit:~
    {
        "Version": "2012-10-17",
        "Statement": [
        {
            "Sid": "Statement",
            "Effect": "Allow",
            "Principal": {
            "AWS": "arn:aws:iam::<aws-account-id>:root"
            },
            "Action": [
                    "organizations:ListAccounts",
                    "organizations:DescribeAccount",
                    "organizations:ListTagsForResource"
    		    ],
            "Resource": "*"
        }
        ]
    }
    ```#### 第三步:部署 SATv2 解决方案
    
    
  • 在将运行该工具的账户(ProwlerAccountID)中,导航到 AWS CloudFormation 控制台。

  • 在导航窗格中,选择 堆栈。

  • 选择 创建堆栈。

  • 在“指定模板”下,选择 上传模板文件。

  • 选择您在步骤 1-1 中下载的 2-sat2-codebuild-prowler.yaml。

  • 选择 下一步。

  • 对于堆栈名称,输入 sat2-prowler。

  • 在“参数”部分,为 MultiAccountScan 选择 true。

  • 您可以选择启用报告功能,以将所有账户的摘要汇总到一个 csv 文件中。对于 Reporting,选择 true。

  • 选择 下一步。

  • 在“配置堆栈选项”页面上,选择 下一步。

  • 在“审核 SAS”页面上,勾选 我确认 AWS CloudFormation 可能会创建 IAM 资源。 复选框,然后选择 提交。