使用 roxctl 检查策略合规性

Alauda Container Security 提供了 roxctl CLI,帮助您检查部署 YAML 文件和容器镜像的策略合规性。本指南介绍如何使用 roxctl 进行这些检查并解读结果。

目录

前提条件

  • 设置 ROX_ENDPOINT 环境变量:

    export ROX_ENDPOINT=<host:port>

    <host:port> 替换为您的 Alauda Container Security Central 实例地址。

输出格式

运行 roxctl deployment checkroxctl image check 时,可以使用 -o 选项指定输出格式。支持的格式有 jsontablecsvjunit。如果未指定,部署和镜像检查默认使用 table,镜像扫描默认使用 json

示例

roxctl deployment check --file=<yaml_filename> -o csv

输出选项

下表总结了可用的输出选项:

选项说明格式
--compact-output以紧凑格式显示 JSON 输出。json
--headers指定自定义表头。table, csv
--no-header输出中省略表头行。table, csv
--row-jsonpath-expressions使用 GJSON paths 选择特定数据。table, csv
--merge-output合并表格中相同值的单元格。table
headers-as-comment在输出中以注释形式包含表头行。csv
--junit-suite-name指定 JUnit 测试套件名称。junit

示例:自定义表头和 JSONPath

roxctl deployment check --file=<yaml_filename> \
  -o table --headers POLICY-NAME,SEVERITY \
  --row-jsonpath-expressions="{results..violatedPolicies..name,results..violatedPolicies..severity}"

检查部署的策略合规性

要检查部署 YAML 文件中的构建时和部署时策略违规,请运行:

roxctl deployment check --file=<yaml_filename> \
  --namespace=<cluster_namespace> \
  --cluster=<cluster_name_or_id> \
  --verbose
  • <yaml_filename>:部署 YAML 文件路径。可通过重复使用 --file 标志指定多个文件。
  • <cluster_namespace>:(可选)上下文命名空间,默认值为 default
  • <cluster_name_or_id>:(可选)上下文集群名称或 ID。
  • --verbose:(可选)显示额外信息,如 RBAC 权限和网络策略。

注意: 无论是否使用 --verbose 标志,JSON 输出中都会包含额外的部署信息。

若要强制 Alauda Container Security 重新拉取镜像元数据和扫描结果,请添加 --force 选项。

权限要求: 要检查特定镜像扫描结果,您的令牌必须对 Image 资源同时具有 readwrite 权限。默认的 Continuous Integration 系统角色包含这些权限。

部署检查会验证:

  • YAML 文件中的配置选项(如资源限制、特权设置)
  • 镜像相关内容(如组件、漏洞)

检查镜像的策略合规性

要检查镜像中的构建时策略违规,请运行:

roxctl image check --image=<image_name>

若要强制 Alauda Container Security 重新拉取镜像元数据和扫描结果,请添加 --force 选项。

权限要求: 要检查特定镜像扫描结果,您的令牌必须对 Image 资源同时具有 readwrite 权限。默认的 Continuous Integration 系统角色包含这些权限。

查看镜像扫描结果

要以 JSON 格式查看镜像中发现的组件和漏洞,请运行:

roxctl image scan --image=<image_name>

若要强制 Alauda Container Security 重新拉取镜像元数据和扫描结果,请添加 --force 选项。

权限要求: 要检查特定镜像扫描结果,您的令牌必须对 Image 资源同时具有 readwrite 权限。默认的 Continuous Integration 系统角色包含这些权限。