使用 roxctl 检查政策合规性

Alauda 容器安全提供了 roxctl CLI,帮助您检查部署 YAML 文件和容器镜像的政策合规性。本指南将解释如何使用 roxctl 进行这些检查以及如何解读结果。

目录

前提条件

  • 设置 ROX_ENDPOINT 环境变量:

    export ROX_ENDPOINT=<host:port>

    <host:port> 替换为您的 Alauda 容器安全中央实例的地址。

输出格式

在运行 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 路径 选择特定数据。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 容器安全重新拉取镜像元数据和扫描结果,请添加 --force 选项。

权限要求:
要检查特定的镜像扫描结果,您的令牌必须对 Image 资源具有 readwrite 权限。默认的 持续集成 系统角色包括这些权限。

部署检查验证:

  • YAML 文件中的配置选项(例如,资源限制、权限设置)
  • 镜像方面(例如,组件、漏洞)

检查镜像的政策合规性

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

roxctl image check --image=<image_name>

要强制 Alauda 容器安全重新拉取镜像元数据和扫描结果,请添加 --force 选项。

权限要求:
要检查特定的镜像扫描结果,您的令牌必须对 Image 资源具有 readwrite 权限。默认的 持续集成 系统角色包括这些权限。

查看镜像扫描结果

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

roxctl image scan --image=<image_name>

要强制 Alauda 容器安全重新拉取镜像元数据和扫描结果,请添加 --force 选项。

权限要求:
要检查特定的镜像扫描结果,您的令牌必须对 Image 资源具有 readwrite 权限。默认的 持续集成 系统角色包括这些权限。