×

您可以使用 `roxctl` CLI 检查部署 YAML 文件和镜像的策略合规性。

前提条件

  • 您已使用以下命令配置了 `ROX_ENDPOINT` 环境变量

    $ export ROX_ENDPOINT=<host:port> (1)
    1 您想要存储在 `ROX_ENDPOINT` 环境变量中的主机和端口信息。

配置输出格式

使用 `roxctl deployment check` 或 `roxctl image check` 命令检查策略合规性时,您可以使用命令的 `-o` 选项指定输出格式,并将格式指定为 `json`、`table`、`csv` 或 `junit`。此选项决定命令的输出如何在终端中显示。

例如,以下命令检查部署,然后以csv格式显示结果

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

如果不指定输出格式的-o选项,则使用以下默认行为

  • deployment checkimage check命令的格式为table

  • image scan命令的默认输出格式为json。这是旧版JSON格式输出,与旧版CLI兼容。要以新的JSON格式获取输出,请使用格式选项,例如-o json。收集数据进行故障排除时,请使用旧版JSON格式输出。

可以使用不同的选项来配置输出。下表列出了可用的选项和格式。

选项 描述 格式

--compact-output

使用此选项以紧凑格式显示JSON输出。

json

--headers

使用此选项指定自定义标题。

tablecsv

--no-header

使用此选项可省略输出中的标题行。

tablecsv

--row-jsonpath-expressions

使用此选项指定GJSON路径以从输出中选择特定项目。例如,要获取部署检查的策略名称严重性,请使用以下命令

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

tablecsv

--merge-output

使用此选项合并具有相同值的表格单元格。

table

headers-as-comment

使用此选项可在输出中包含标题行作为注释。

csv

--junit-suite-name

使用此选项指定JUnit测试套件的名称。

junit

检查部署YAML文件

步骤
  • 运行以下命令以检查YAML部署文件中安全策略的构建时和部署时违规。

    $ roxctl deployment check --file=<yaml_filename> \(1)
    --namespace=<cluster_namespace> \(2)
    --cluster=<cluster_name_or_id> \(3)
    --verbose (4)
    1 对于<yaml_filename>,请指定包含一个或多个要发送到Central进行策略评估的部署的YAML文件。您还可以使用--file标志指定多个要发送到Central进行策略评估的YAML文件,例如--file=<yaml_filename1>--file=<yaml_filename2>等等。
    2 对于<cluster_namespace>,请指定一个命名空间,以使用上下文信息(如网络策略、基于角色的访问控制(RBAC)和服务)来增强其规范中没有命名空间的部署。规范中定义的命名空间不会更改。默认值为default
    3 对于<cluster_name_or_id>,请指定要作为评估上下文使用的集群名称或ID,以使用集群特定信息启用扩展部署。
    4 启用--verbose标志后,您会在策略检查期间收到每个部署的其他信息。扩展信息包括RBAC权限级别和应用的网络策略的完整列表。

    无论是否启用--verbose标志,您都可以在JSON输出中看到每个部署的其他信息。

    格式在API参考中定义。要使Red Hat Advanced Cluster Security for Kubernetes (RHACS)从关联的注册表和扫描程序重新提取映像元数据和映像扫描结果,请添加--force选项。

    要检查特定的图像扫描结果,您必须拥有对Image资源具有readwrite权限的令牌。默认的持续集成系统角色已拥有所需的权限。

    此命令验证以下项目:

    • YAML文件中的配置选项,例如资源限制或权限选项

    • YAML文件中使用的映像的方面,例如组件或漏洞

检查镜像

步骤
  • 运行以下命令以检查镜像中安全策略的构建时违规。

    $ roxctl image check --image=<image_name>

    格式在API参考中定义。要使Red Hat Advanced Cluster Security for Kubernetes (RHACS)从关联的注册表和扫描程序重新提取映像元数据和映像扫描结果,请添加--force选项。

    要检查特定的图像扫描结果,您必须拥有对Image资源具有readwrite权限的令牌。默认的持续集成系统角色已拥有所需的权限。

其他资源

检查镜像扫描结果

您还可以检查特定镜像的扫描结果。

步骤
  • 运行以下命令以JSON格式返回镜像中发现的组件和漏洞

    $ roxctl image scan --image <image_name>

    格式在API参考中定义。要使Red Hat Advanced Cluster Security for Kubernetes (RHACS)从关联的注册表和扫描程序重新提取映像元数据和映像扫描结果,请添加--force选项。

    要检查特定的图像扫描结果,您必须拥有对Image资源具有readwrite权限的令牌。默认的持续集成系统角色已拥有所需的权限。

其他资源