
Prowler 是一款开源安全工具,用于执行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/prowlerDocker Run命令示例
AWS基本扫描
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
Docker Compose示例
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: 指定报告输出目录AWS特定参数
-p, --profile: 指定AWS配置文件-f, --filter-region: 指定要检查的区域,多个区域用空格分隔Azure特定参数
--sp-env-auth: 使用环境变量中的服务主体认证--az-cli-auth: 使用az cli存储的凭据--browser-auth: 使用交互式浏览器认证--managed-identity-auth: 使用托管身份认证--tenant-id: 指定租户ID(用于浏览器认证)GCP特定参数
--credentials-file: 指定应用凭据JSON文件路径--project-ids: 指定要扫描的项目ID,多个项目用逗号分隔Kubernetes特定参数
--kubeconfig-file: 指定kubeconfig文件路径--context: 指定要使用的Kubernetes上下文--namespaces: 指定要扫描的命名空间AWS认证变量
AWS_ACCESS_KEY_ID: AWS访问密钥IDAWS_SECRET_ACCESS_KEY: AWS密钥AWS_SESSION_TOKEN: AWS会话令牌(可选)AWS_DEFAULT_REGION: 默认AWS区域Azure认证变量
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权限
需要以下AWS托管策略:
arn:aws:iam::aws:policy/SecurityAuditarn:aws:iam::aws:policy/job-function/ViewOnlyAccess以及自定义策略:
如果要发送结果到AWS Security Hub,还需附加:
Azure权限
Directory.Read.All、Policy.Read.AllSecurity Reader、Reader角色GCP权限
需要为服务账号添加Viewer角色
Prowler采用Apache License 2.0许可证,详情参见:<[***]>
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务