使用 roxctl 检查策略

Alauda Security Service 提供 roxctl CLI,帮助你针对 Central 中当前的策略集评估 deployment YAML 文件和容器镜像。当你希望在不打开 web 控制台的情况下获取结果时,可以在 CI、部署前检查以及故障排查工作流中使用这些命令。

先决条件

  • 设置 ROX_ENDPOINT 环境变量:

    export ROX_ENDPOINT=<host:port>

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

输出格式

运行 roxctl deployment checkroxctl image check 时,可以使用 -o 选项指定输出格式。支持的格式包括 jsontablecsvjunit。如果未指定,deployment 和 image 检查的默认格式为 table,image 扫描的默认格式为 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}"

检查 Deployment 的策略

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

roxctl deployment check --file=<yaml_filename> \
  --namespace=<cluster_namespace> \
  --cluster=<cluster_name_or_id> \
  --verbose
  • <yaml_filename>:deployment YAML 文件的路径。你可以通过重复使用 --file 标志来指定多个文件。
  • <cluster_namespace>:(可选)用于上下文的 Namespace。默认值为 default
  • <cluster_name_or_id>:(可选)用于上下文的集群名称或 ID。
  • --verbose:(可选)显示更多信息,例如 RBAC 权限和 network policies。

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

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

权限要求:
要检查特定的镜像扫描结果,你的 token 必须对 Image 资源同时具有 readwrite 权限。默认的 Continuous Integration system role 已包含这些权限。

deployment 检查会评估以下内容:

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

检查镜像的策略

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

roxctl image check --image=<image_name>

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

权限要求:
要检查特定的镜像扫描结果,你的 token 必须对 Image 资源同时具有 readwrite 权限。默认的 Continuous Integration system role 已包含这些权限。

查看镜像扫描结果

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

roxctl image scan --image=<image_name>

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

权限要求:
要检查特定的镜像扫描结果,你的 token 必须对 Image 资源同时具有 readwrite 权限。默认的 Continuous Integration system role 已包含这些权限。