3.4. Clair for Red Hat Quay


Clair v4 (Clair)是一个开源应用程序,它利用静态代码分析来解析镜像内容和报告影响内容的漏洞。Clair 与 Red Hat Quay 打包,并可用于独立和 Operator 部署。它可以在高度可扩展的配置中运行,其中组件可根据企业环境单独扩展。

3.4.1. 在独立的 Red Hat Quay 部署上设置 Clair

对于独立的 Red Hat Quay 部署,您可以手动设置 Clair。

流程

  1. 在 Red Hat Quay 安装目录中,为 Clair 数据库数据创建新目录:

    $ mkdir /home/<user-name>/quay-poc/postgres-clairv4
    Copy to Clipboard Toggle word wrap
  2. 输入以下命令为 postgres-clairv4 文件设置适当的权限:

    $ setfacl -m u:26:-wx /home/<user-name>/quay-poc/postgres-clairv4
    Copy to Clipboard Toggle word wrap
  3. 输入以下命令部署 Clair Postgres 数据库:

    $ sudo podman run -d --name postgresql-clairv4 \
      -e POSTGRESQL_USER=clairuser \
      -e POSTGRESQL_PASSWORD=clairpass \
      -e POSTGRESQL_DATABASE=clair \
      -e POSTGRESQL_ADMIN_PASSWORD=adminpass \
      -p 5433:5433 \
      -v /home/<user-name>/quay-poc/postgres-clairv4:/var/lib/pgsql/data:Z \
      {postgresimage}
    Copy to Clipboard Toggle word wrap
  4. 为您的 Clair 部署安装 Postgres uuid-ossp 模块:

    $ podman exec -it postgresql-clairv4 /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\"" | psql -d clair -U postgres'
    Copy to Clipboard Toggle word wrap

    输出示例

    CREATE EXTENSION
    Copy to Clipboard Toggle word wrap

    注意

    Clair 需要将 uuid-ossp 扩展添加到其 Postgres 数据库中。对于具有适当权限的用户,Clair 将自动添加扩展。如果用户没有正确的权限,则必须在启动 Clair 前添加扩展。

    如果没有扩展,当 Clair 尝试启动时会显示以下错误: ERROR: Please load the "uuid-ossp" 扩展。(SQLSTATE 42501).

  5. 如果 Quay 容器正在运行,并在配置模式中重启它,将现有配置载入为卷:

    $ sudo podman run --rm -it --name quay_config \
      -p 80:8080 -p 443:8443 \
      -v $QUAY/config:/conf/stack:Z \
      {productrepo}/{quayimage}:{productminv} config secret
    Copy to Clipboard Toggle word wrap
  6. 登录到配置工具,再单击 UI 的 Security Scanner 部分中的 Enable Security Scanning
  7. 使用 quay-server 系统上尚未使用的端口设置 Clair 的 HTTP 端点,例如 8081
  8. 使用 Generate PSK 按钮创建预共享密钥(PSK)。

    安全扫描器 UI

    Security Scanner

  9. 验证并下载 Red Hat Quay 的 config.yaml 文件,然后停止运行配置编辑器的 Quay 容器。
  10. 将新配置捆绑包提取到 Red Hat Quay 安装目录中,例如:

    $ tar xvf quay-config.tar.gz -d /home/<user-name>/quay-poc/
    Copy to Clipboard Toggle word wrap
  11. 为您的 Clair 配置文件创建一个文件夹,例如:

    $ mkdir /etc/opt/clairv4/config/
    Copy to Clipboard Toggle word wrap
  12. 进入 Clair 配置文件夹:

    $ cd /etc/opt/clairv4/config/
    Copy to Clipboard Toggle word wrap
  13. 创建 Clair 配置文件,例如:

    http_listen_addr: :8081
    introspection_addr: :8088
    log_level: debug
    indexer:
      connstring: host=quay-server.example.com port=5433 dbname=clair user=clairuser password=clairpass sslmode=disable
      scanlock_retry: 10
      layer_scan_concurrency: 5
      migrations: true
    matcher:
      connstring: host=quay-server.example.com port=5433 dbname=clair user=clairuser password=clairpass sslmode=disable
      max_conn_pool: 100
      run: ""
      migrations: true
      indexer_addr: clair-indexer
    notifier:
      connstring: host=quay-server.example.com port=5433 dbname=clair user=clairuser password=clairpass sslmode=disable
      delivery_interval: 1m
      poll_interval: 5m
      migrations: true
    auth:
      psk:
        key: "MTU5YzA4Y2ZkNzJoMQ=="
        iss: ["quay"]
    # tracing and metrics
    trace:
      name: "jaeger"
      probability: 1
      jaeger:
        agent_endpoint: "localhost:6831"
        service_name: "clair"
    metrics:
      name: "prometheus"
    Copy to Clipboard Toggle word wrap

    有关 Clair 的配置格式的更多信息,请参阅 Clair 配置参考

  14. 使用容器镜像启动 Clair,从您创建的文件中挂载在配置中:

    $ sudo podman run -d --name clairv4 \
    -p 8081:8081 -p 8088:8088 \
    -e CLAIR_CONF=/clair/config.yaml \
    -e CLAIR_MODE=combo \
    -v /etc/opt/clairv4/config:/clair:Z \
    registry.redhat.io/quay/clair-rhel8:v3.8.15
    Copy to Clipboard Toggle word wrap
    注意

    也有可能运行多个 Clair 容器,但对于单一容器以外的部署场景,我们强烈建议使用 Kubernetes 或 OpenShift Container Platform 等容器编配器。

3.4.2. 测试 Clair

使用以下步骤在一个独立 Red Hat Quay 部署或基于 OpenShift Container Platform Operator 的部署中测试 Clair。

前提条件

  • 您已部署了 Clair 容器镜像。

流程

  1. 输入以下命令拉取示例镜像:

    $ podman pull ubuntu:20.04
    Copy to Clipboard Toggle word wrap
  2. 输入以下命令将镜像标记到 registry:

    $ sudo podman tag docker.io/library/ubuntu:20.04 <quay-server.example.com>/<user-name>/ubuntu:20.04
    Copy to Clipboard Toggle word wrap
  3. 输入以下命令将镜像推送到 Red Hat Quay registry:

    $ sudo podman push --tls-verify=false quay-server.example.com/quayadmin/ubuntu:20.04
    Copy to Clipboard Toggle word wrap
  4. 通过 UI 登录您的 Red Hat Quay 部署。
  5. 单击存储库名称,如 quayadmin/ubuntu
  6. 在导航窗格中,点 Tags

    报告概述

    Security scan information appears for scanned repository images

  7. 点镜像报告(如 45 个介质 )以显示更详细的报告:

    报告详情

    See all vulnerabilities or only those that are fixable

3.4.3. CVE 国家漏洞数据库中的评级

从 Clair v4.2 开始,Red Hat Quay UI 现在可以查看通用漏洞评分系统(CVSS)增强数据。另外,Clair v4.2 从国家漏洞数据库中添加 CVSS 分数。

在这个版本中,如果漏洞在发布分数的 2 级内有一个 CVSS 分数,Red Hat Quay UI 默认会给出发行版的分数。例如:

Clair v4.2 data display

这与前面的接口不同,后者只显示以下信息:

Clair v4 data display

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat