Aqua Security Trivy插件是一项高级产品,旨在通过与行业领先的漏洞扫描器Trivy(https://github.com/aquasecurity/trivy%EF%BC%89%E6%97%A0%E7%BC%9D%E9%9B%86%E6%88%90%EF%BC%8C%E5%A2%9E%E5%BC%BA%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7%EF%BC%88https://aquasecurity.github.io/trivy%EF%BC%89%E3%80%82%E8%AF%A5%E6%8F%92%E4%BB%B6%E4%BB%85%E5%AF%B9Aqua Security客户可用,提供超越标准漏洞扫描的高级安全功能。
增强安全扫描:Aqua Security客户可使用高级功能,包括增强的秘密扫描引擎、静态应用安全测试(SAST)、可达性检查等。
更优的秘密扫描:检测代码库和配置文件中的敏感信息(如API密钥和密码),防止潜在泄露。
静态应用安全测试(SAST):分析源代码中的安全漏洞,包括可能导致潜在利用的代码模式。
可达性检查:提供更细致的分析,了解现有漏洞是否可被代码仓库中的包访问。若漏洞可达,可优先修复。
自定义安全策略:根据组织需求定制安全策略,包括严重级别阈值和合规要求。更多信息请参见Aqua官方文档。
详细报告:接收全面的安全报告,包含可操作的修复建议。
CI/CD流水线集成:无缝整合到CI/CD流水线中,确保在整个软件开发生命周期中执行严格的安全检查。
适用于需要在软件开发周期中加强代码仓库安全的Aqua Security客户,特别是希望在CI/CD流程中集成自动化安全检查,防止敏感信息泄露、识别代码漏洞并优先修复关键安全问题的组织。
要开始使用Aqua Security Trivy集成保护代码仓库,请联系我们的销售或支持团队,了解更多优势和访问方式。
必填
唯一明确需要的环境变量如下:
| 变量名 | 用途 |
|---|---|
| AQUA_KEY | 通过CSPM UI生成 |
| AQUA_SECRET | 通过CSPM UI生成 |
可选
| 变量名 | 用途 |
|---|---|
| CSPM_URL | Aqua CSPM URL(默认:us-east-1 CSPM) |
| AQUA_URL | Aqua平台URL(默认:us-east-1 Aqua平台) |
Trivy将尝试从可用环境变量中解析以下详细信息:
以下是用于覆盖默认值和行为的环境变量:
| 变量名 | 用途 |
|---|---|
| OVERRIDE_REPOSITORY | 显式指定Trivy使用的仓库名称 |
| FALLBACK_REPOSITORY | 当未找到其他仓库环境变量时作为备份 |
| OVERRIDE_BRANCH | 显式指定Trivy使用的分支 |
| FALLBACK_BRANCH | 当未找到其他分支环境变量时作为备份 |
| OVERRIDE_BUILDSYSTEM | 显式指定构建系统 |
| IGNORE_PANIC | 当CLI发生panic错误时返回退出码0 |
| OVERRIDE_REPOSITORY_URL | 显式指定Trivy使用的仓库链接(用于结果的Web链接) |
| OVERRIDE_REPOSITORY_SOURCE | 显式指定Trivy使用的仓库源 |
| HTTP_PROXY/HTTPS_PROXY | 用于代理配置 |
| XDG_DATA_HOME | 指定存储用户特定数据的基本目录 |
| XDG_CACHE_HOME | 设置缓存目录 |
| SAST_LOGS | 设置为true时将SAST日志写入文件(文件名:${REPOSITORY_NAME}-sast-logs.txt,位于SAST_LOGS_DIR目录下) |
| SAST_LOGS_DIR | 显式指定日志文件写入位置(默认:/tmp/.trivy/plugins/aqua) |
| TRIVY_QUIET | 禁用日志中的Trivy输出报告 |
| AQUA_ASSURANCE_EXPORT | 策略结果导出路径(JSON格式) |
| OVERRIDE_AUTHOR | 覆盖扫描的作者(默认:提交推送者) |
| OVERRIDE_RUN_ID | 覆盖运行ID(默认:SCM运行构建号) |
| OVERRIDE_BUILD_ID | 覆盖作业/构建ID(默认:SCM构建ID) |
| OVERRIDE_TARGET_BRANCH | 覆盖PR扫描的目标分支(默认:SCM目标分支) |
| OVERRIDE_SOURCE_BRANCH | 覆盖PR扫描的源分支(默认:SCM源分支) |
| OVERRIDE_COMMIT | 覆盖提交以丰富SCM链接 |
| OVERRIDE_REPOSITORY_NAME | 覆盖仓库名称(默认:SCM仓库名称) |
| OVERRIDE_REPOSITORY_ID | 覆盖仓库ID(默认:SCM仓库ID) |
| OVERRIDE_PROJECT_NAME | 覆盖项目名称(默认:SCM项目名称 - 在Azure中很重要) |
| OVERRIDE_PULL_REQUEST_ID | 覆盖PR扫描的拉取请求ID(默认:SCM目标拉取请求ID) |
| 参数 | 环境变量 | 用途 | 示例用法 |
|---|---|---|---|
--debug | DEBUG | 获取Trivy运行时的详细输出 | --debug / DEBUG=true |
--severities | TRIVY_SEVERITY | 指定关注的严重级别 | --severities CRITICAL,HIGH,UNKNOWN / TRIVY_SEVERITY=CRITICAL,HIGH,UNKNOWN |
--skip-pipelines | SKIP_PIPELINES | 跳过扫描仓库流水线文件 | --skip-pipelines / SKIP_PIPELINES=true |
--sast | SAST | 启用静态应用安全测试(SAST)扫描 | --sast / SAST=true |
--reachability | REACHABILITY | 启用可达性扫描 | --reachability / REACHABILITY=true |
--package-json | PACKAGE_JSON | 扫描无锁文件的package.json文件 | --package-json / PACKAGE_JSON=true |
--dotnet-proj | DOTNET_PROJ | 扫描无锁文件的dotnet proj文件 | --dotnet-proj / DOTNET_PROJ=true |
--gradle | GRADLE | 扫描无锁文件的gradle构建文件 | --gradle / GRADLE=true |
--skip-policies | TRIVY_SKIP_POLICIES | 跳过策略检查 | --skip-policies / TRIVY_SKIP_POLICIES=true |
--skip-result-upload | TRIVY_SKIP_RESULT_UPLOAD | 禁用将扫描结果上传到Aqua平台 | --skip-result-upload / TRIVY_SKIP_RESULT_UPLOAD=true |
--skip-policy-exit-code | TRIVY_SKIP_POLICY_EXIT_CODE | 当保障策略失败时防止非零退出码 | --skip-policy-exit-code / TRIVY_SKIP_POLICY_EXIT_CODE=true |
--file-patterns | TRIVY_FILE_PATTERNS | 指定用于查找文件的正则表达式模式(例如,当Dockerfile文件名不匹配默认模式时) | --file-patterns="dockerfile:.*.docker" / TRIVY_FILE_PATTERNS="dockerfile:.*.docker" 前缀列表参见https://github.com/aquasecurity/trivy/blob/6ccc0a554b07b05fd049f882a1825a0e1e0aabe1/pkg/fanal/analyzer/const.go |
GitHub Action集成示例
以下示例展示如何将Aqua Security Trivy集成无缝整合到开发工作流中,可由推送(全量扫描)或拉取请求创建(扫描Git差异)触发:
yamlname: 代码仓库安全扫描 on: pull_request: push: branches: - main jobs: security_scan: runs-on: ubuntu-latest steps: - name: 检出代码 uses: actions/checkout@v2 - name: 运行Aqua扫描器 uses: docker://aquasec/aqua-scanner with: args: trivy fs --scanners misconfig,vuln,secret . env: AQUA_KEY: ${{ secrets.AQUA_KEY }} AQUA_SECRET: ${{ secrets.AQUA_SECRET }} GITHUB_TOKEN: ${{ github.token }} TRIVY_RUN_AS_PLUGIN: "aqua" # 在此处使用其他环境变量
手动使用Docker命令运行
bashAQUA_KEY=${AQUA_KEY} AQUA_SECRET=${AQUA_SECRET} TRIVY_RUN_AS_PLUGIN=aqua docker run -it -e AQUA_KEY -e AQUA_SECRET -e TRIVY_RUN_AS_PLUGIN -e INPUT_WORKING_DIRECTORY=/scanning -v "${YOUR_WORKSPACE}":"/scanning" aquasec/aqua-scanner trivy fs --scanners misconfig,vuln,secret .
bashpodman run --rm \ -e AQUA_KEY=${AQUA_KEY} \ -e AQUA_SECRET=${AQUA_SECRET} \ -e TRIVY_RUN_AS_PLUGIN='aqua' \ -e SAST='true' \ -e INPUT_WORKING_DIRECTORY='/scanning' \ -v ${WORKSPACE}:/scanning \ docker.io/aquasec/aqua-scanner \ git config --global --add safe.directory /scanning && trivy fs --scanners='misconfig,vuln,secret' .
在CI环境中,重要的是包含源代码管理(SCM)令牌以处理拉取请求。有关各SCM的更多指导和详细信息,请参阅Aqua平台文档。
"aqua-scanner"镜像可从Docker Hub的aquasec仓库获取。该镜像用于扫描与具有管理员级别权限的CI构建系统关联的代码仓库。如果需要扫描与具有非root用户权限的CI构建系统关联的代码仓库,请使用带有latest-limited标签的Aqua扫描器镜像,即aquasec/aqua-scanner:latest-limited。此镜像兼容AMD64和ARM64 Linux平台。
以下是在Azure流水线脚本中使用"Push"选项和aqua-scanner:latest-limited的示例代码块。仅当在Azure流水线脚本中添加此代码块时,确保包含选项:-u 0。如果要使用带limited标签的aqua-scanner,并将Aqua UI中的代码块添加到其他仓库托管平台的流水线脚本中,请将aqua-scanner替换为aqua-scanner:latest-limited。
yamltrigger: - main container: image: aquasec/aqua-scanner:latest-limited options: -u 0 env: AQUA_KEY: $(AQUA_KEY) AQUA_SECRET: $(AQUA_SECRET) AZURE_TOKEN: $(AZURE_TOKEN) TRIVY_RUN_AS_PLUGIN: aqua steps: - checkout: self fetchDepth: 0 - script: | trivy fs --scanners misconfig,vuln,secret . displayName: Aqua扫描器
该插件设计用于Docker环境,兼容Linux容器。对Gradle无锁文件扫描的支持从Gradle 7.0.0开始,支持Groovy和Kotlin DSL。
本GitHub仓库采用Apache License 2.0许可证。它仅对Aqua Security客户开放,并非开源软件。有关许可详情,请联系Aqua Security。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务