
toniblyx/prowlerProwler 是一款开源安全工具,用于执行AWS、GCP和Azure云平台的安全最佳实践评估、审计、事件响应、持续监控、加固以及取证准备。它包含数百项安全控制检查,覆盖CIS、NIST 800、NIST CSF、CISA、RBI、FedRAMP、PCI-DSS、GDPR、HIPAA、FFIEC、SOC2、GXP、AWS架构完善框架安全支柱等合规标准,以及自定义安全框架。
Prowler适用于以下场景:
可运行环境包括:工作站、EC2实例、Fargate或其他容器、Codebuild、CloudShell和Cloud9。
Prowler提供以下Docker镜像标签:
latest:与主分支同步(不稳定版本)<x.y.z>:特定发布版本(稳定版)stable:指向最新发布版本可从以下仓库获取镜像:
toniblyx/prowlerpublic.ecr.aws/prowler-cloud/prowlerAWS基本扫描
bashdocker run -it --rm \ -e AWS_ACCESS_KEY_ID="ASXXXXXXX" \ -e AWS_SECRET_ACCESS_KEY="XXXXXXXXX" \ -e AWS_SESSION_TOKEN="XXXXXXXXX" \ toniblyx/prowler aws
使用AWS配置文件
bashdocker run -it --rm \ -v ~/.aws:/root/.aws \ toniblyx/prowler aws --profile custom-profile
指定区域扫描
bashdocker run -it --rm \ -v ~/.aws:/root/.aws \ toniblyx/prowler aws --profile custom-profile -f us-east-1 eu-south-2
Azure使用服务主体认证
bashdocker run -it --rm \ -e AZURE_CLIENT_ID="XXXXXXXXX" \ -e AZURE_TENANT_ID="XXXXXXXXX" \ -e AZURE_CLIENT_SECRET="XXXXXXX" \ toniblyx/prowler azure --sp-env-auth
GCP指定项目ID扫描
bashdocker run -it --rm \ -v /path/to/gcp-credentials.json:/credentials.json \ toniblyx/prowler gcp --credentials-file /credentials.json --project-ids my-project-id
Kubernetes扫描
bashdocker run -it --rm \ -v ~/.kube/config:/kubeconfig \ toniblyx/prowler kubernetes --kubeconfig-file /kubeconfig
bashdocker run -it --rm \ -v ~/.aws:/root/.aws \ -v $(pwd)/prowler-output:/prowler/output \ toniblyx/prowler aws --output-directory /prowler/output
yamlversion: '3' services: prowler: image: toniblyx/prowler:stable volumes: - ~/.aws:/root/.aws - ./prowler-output:/prowler/output environment: - AWS_DEFAULT_REGION=us-east-1 command: ["aws", "--profile", "security-audit", "-M", "html", "json", "--output-directory", "/prowler/output"]
-h, --help: 显示帮助信息-v, --version: 显示版本信息-M, --output-modes: 指定输出格式,多个格式用空格分隔(csv, json, html, json-asff)-c, --checks: 指定要执行的检查项,多个检查项用空格分隔-e, --excluded-checks: 指定要排除的检查项-s, --services: 指定要检查的服务--excluded-services: 指定要排除的服务--list-checks: 列出所有可用检查项--list-services: 列出所有可用服务--output-directory: 指定报告输出目录-p, --profile: 指定AWS配置文件-f, --filter-region: 指定要检查的区域,多个区域用空格分隔--sp-env-auth: 使用环境变量中的服务主体认证--az-cli-auth: 使用az cli存储的凭据--browser-auth: 使用交互式浏览器认证--managed-identity-auth: 使用托管身份认证--tenant-id: 指定租户ID(用于浏览器认证)--credentials-file: 指定应用凭据JSON文件路径--project-ids: 指定要扫描的项目ID,多个项目用逗号分隔--kubeconfig-file: 指定kubeconfig文件路径--context: 指定要使用的Kubernetes上下文--namespaces: 指定要扫描的命名空间AWS_ACCESS_KEY_ID: AWS访问密钥IDAWS_SECRET_ACCESS_KEY: AWS密钥AWS_SESSION_TOKEN: AWS会话令牌(可选)AWS_DEFAULT_REGION: 默认AWS区域AZURE_CLIENT_ID: Azure客户端IDAZURE_TENANT_ID: Azure租户IDAZURE_CLIENT_SECRET: Azure客户端密钥多个Prowler检查项有用户可配置的变量,可通过修改配置文件进行调整:
/prowler/config/config.yaml
在Docker中使用自定义配置文件:
bashdocker run -it --rm \ -v ~/.aws:/root/.aws \ -v $(pwd)/custom-config.yaml:/prowler/config/config.yaml \ toniblyx/prowler aws
需要以下AWS托管策略:
arn:aws:iam::aws:policy/SecurityAuditarn:aws:iam::aws:policy/job-function/ViewOnlyAccess以及自定义策略:
如果要发送结果到AWS Security Hub,还需附加:
Directory.Read.All、Policy.Read.AllSecurity Reader、Reader角色需要为服务账号添加Viewer角色
Prowler采用Apache License 2.0许可证,详情参见:<[***]>
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务