roxctl CLI
roxctl CLI
摘要
第 1 章 安装 roxctl CLI
roxctl
是一个命令行界面 (CLI),用于在 Red Hat Advanced Cluster Security for Kubernetes (RHACS) 上运行命令。您可以通过下载二进制文件或从容器镜像运行 roxctl
CLI 来安装 roxctl
CLI。
1.1. 通过下载二进制文件安装 roxctl CLI
您可以安装 roxctl
CLI,以便从命令行界面与 RHACS 进行交互。您可以在 Linux、Windows 或 macOS 上安装 roxctl
。
1.1.1. 在 Linux 中安装 roxctl CLI
您可以按照以下流程在 Linux 上安装 roxctl
CLI 二进制文件。
用于 Linux 的 roxctl
CLI 可用于 amd64、
ppc64le
和 s390x
架构。
流程
确定目标操作系统的
roxctl
架构:$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
下载
roxctl
CLI:$ curl -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Linux/roxctl${arch}"
使
roxctl
二进制文件可执行:$ chmod +x roxctl
将
roxctl
二进制文件放到PATH
中的目录中:要查看您的
PATH
,请执行以下命令:$ echo $PATH
验证
验证您已安装的
roxctl
版本:$ roxctl version
1.1.2. 在 macOS 上安装 roxctl CLI
您可以按照以下流程在 macOS 中安装 roxctl
CLI 二进制文件。
用于 macOS 的 roxctl
CLI 可用于 amd64
架构。
流程
下载
roxctl
CLI:$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Darwin/roxctl
从二进制文件中删除所有扩展属性:
$ xattr -c roxctl
使
roxctl
二进制文件可执行:$ chmod +x roxctl
将
roxctl
二进制文件放到PATH
中的目录中:要查看您的
PATH
,请执行以下命令:$ echo $PATH
验证
验证您已安装的
roxctl
版本:$ roxctl version
1.1.3. 在 Windows 上安装 roxctl CLI
您可以按照以下流程在 Windows 上安装 roxctl
CLI 二进制文件。
amd64
架构提供了适用于 Windows 的 roxctl
CLI。
流程
下载
roxctl
CLI:$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Windows/roxctl.exe
验证
验证您已安装的
roxctl
版本:$ roxctl version
1.2. 从容器运行 roxctl CLI
roxctl
客户端是 RHACS roxctl
镜像的默认入口点。在容器镜像中运行 roxctl
客户端:
先决条件
- 您必须首先从 RHACS 门户生成身份验证令牌。
流程
登录到
registry.redhat.io
registry。$ docker login registry.redhat.io
为
roxctl
CLI 拉取最新的容器镜像。$ docker pull registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:4.3.8
安装 CLI 后,您可以使用以下命令运行它:
$ docker run -e ROX_API_TOKEN=$ROX_API_TOKEN \ -it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:4.3.8 \ -e $ROX_CENTRAL_ADDRESS <command>
在 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service), 中,当使用需要 Central 地址的 roxctl
命令时,请使用 Red Hat Hybrid Cloud Console 的 Instance Details 部分显示的 Central 实例地址。例如,使用 acs-ABCD12345.acs.rhcloud.com
而不是 acs-data-ABCD12345.acs.rhcloud.com
。
验证
验证您已安装的
roxctl
版本。$ docker run -it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:4.3.8 version
第 2 章 使用 roxctl CLI
2.1. 先决条件
您已使用以下命令配置了
ROX_ENDPOINT
环境变量:$ export ROX_ENDPOINT=<host:port> 1
- 1
- 存储在
ROX_ENDPOINT
环境变量中的主机和端口信息。
2.2. 获取身份验证信息
以下流程描述了如何使用 roxctl central whoami
命令检索有关 Central 中身份验证状态和用户配置集的信息。示例输出演示了您可以看到的数据,包括用户角色、访问权限和各种管理功能。此步骤允许您在 Central 中查看访问和角色。
流程
运行以下命令,在 Central 中获取有关当前验证状态和用户信息的信息:
$ roxctl central whoami
输出示例
UserID: <redacted> User name: <redacted> Roles: APIToken creator, Admin, Analyst, Continuous Integration, Network Graph Viewer, None, Sensor Creator, Vulnerability Management Approver, Vulnerability Management Requester, Vulnerability Manager, Vulnerability Report Creator Access: rw Access rw Administration rw Alert rw CVE rw Cluster rw Compliance rw Deployment rw DeploymentExtension rw Detection rw Image rw Integration rw K8sRole rw K8sRoleBinding rw K8sSubject rw Namespace rw NetworkGraph rw NetworkPolicy rw Node rw Secret rw ServiceAccount rw VulnerabilityManagementApprovals rw VulnerabilityManagementRequests rw WatchedImage rw WorkflowAdministration
检查输出,以确保身份验证和用户详情如预期。
2.3. 使用 roxctl CLI 进行身份验证
要进行身份验证,您可以使用 API 令牌、管理员密码或 roxctl central login
命令。
遵循以下准则来有效地使用 API 令牌:
- 在生产环境中使用 API 令牌以及持续集成 (CI)。每个令牌都被分配特定的访问权限,提供对它可以执行的操作的控制。此外,API 令牌不需要以交互的形式进行(例如通过浏览器进行登录),使其成为自动化流程的理想选择。这些令牌具有 1 年的生存时间 (TTL) 值,为无缝集成和操作效率提供更长的有效期。
- 仅使用管理员密码用于测试目的。不要在生产环境中使用它。
-
roxctl central login
命令仅适用于交互式的本地使用。
2.3.1. 创建 API 令牌
流程
- 在 RHACS 门户网站中,进入到 Platform Configuration → Integrations。
- 滚动到 Authentication Tokens 类别,然后点 API Token。
- 点 Generate Token。
- 输入令牌的名称并选择提供所需访问级别的角色(例如: Continuous Integration 或 Sensor Creator)。
点 Generate。
重要复制生成的令牌并安全地存储它。您将无法再次查看它。
2.3.2. 导出并保存 API 令牌
流程
生成身份验证令牌后,输入以下命令将其导出为
ROX_API_TOKEN
变量:$ export ROX_API_TOKEN=<api_token>
(可选):您还可以将令牌保存到文件中,并通过输入以下命令将其与
--token-file
选项一起使用:$ roxctl central debug dump --token-file <token_file>
请注意以下信息:
-
您不能同时使用
-password
(-p
) 和--token-file
选项。 -
如果您已经设置了
ROX_API_TOKEN
变量,并指定--token-file
选项,roxctl
CLI 会使用指定的令牌文件进行身份验证。 -
如果您已经设置了
ROX_API_TOKEN
变量,并指定--password
选项,roxctl
CLI 将使用指定的密码进行身份验证。
2.3.3. 使用身份验证供应商与 roxctl 进行身份验证
您可以在 Central 中配置身份验证供应商,并使用 roxctl
CLI 启动登录过程。设置 ROX_ENDPOINT
变量,使用 roxctl central login
命令启动登录过程,在浏览器窗口中选择身份验证供应商,并从 roxctl
CLI 检索令牌信息,如以下步骤所述。
前提条件
- 选择一个身份验证供应商,如带有片段或查询模式的 OpenID Connect (OIDC)。
流程
运行以下命令,将
ROX_ENDPOINT
变量设置为 Central 主机名和端口:export ROX_ENDPOINT=<central_hostname:port>
运行以下命令,将登录过程启动到 Central:
$ roxctl central login
-
在
roxctl
CLI 中,URL 包括在输出中,您会被重定向到一个浏览器窗口,您可以在其中选择您要使用的身份验证供应商。 使用您的身份验证供应商登录。
成功登录后,浏览器窗口表示身份验证成功,您可以关闭浏览器窗口。
roxctl
CLI 会显示您的令牌信息,包括访问令牌、访问令牌的过期时间、刷新令牌(如果已发布),并通知这些值存储在本地。输出示例
Please complete the authorization flow in the browser with an auth provider of your choice. If no browser window opens, please click on the following URL: http://127.0.0.1:xxxxx/login INFO: Received the following after the authorization flow from Central: INFO: Access token: <redacted> 1 INFO: Access token expiration: 2023-04-19 13:58:43 +0000 UTC 2 INFO: Refresh token: <redacted> 3 INFO: Storing these values under $HOME/.roxctl/login… 4
重要确保将环境设置为确定存储配置的目录。默认情况下,配置存储在
$HOME/.roxctl/roxctl-config
目录中。-
如果您设置了
$ROX_CONFIG_DIR
环境变量,则配置存储在$ROX_CONFIG_DIR/roxctl-config
目录中。这个选项具有最高优先级。 -
如果您设置了
$XDG_RUNTIME_DIR
环境变量,并且未设置$ROX_CONFIG_DIR
变量,则配置存储在$XDG_RUNTIME_DIR /roxctl-config
目录中。 -
如果您没有设置
$ROX_CONFIG_DIR
或$XDG_RUNTIME_DIR
环境变量,则配置存储在$HOME/.roxctl/roxctl-config
目录中。
-
如果您设置了
2.4. 在 RHACS 云服务中配置和使用 roxctl CLI
流程
运行以下命令导出
ROX_API_TOKEN
:$ export ROX_API_TOKEN=<api_token>
运行以下命令来导出
ROX_ENDPOINT
:$ export ROX_ENDPOINT=<address>:<port_number>
-
您可以使用
--help
选项获取有关命令的更多信息。 -
在 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service), 中,当使用需要 Central 地址的
roxctl
命令时,请使用 Red Hat Hybrid Cloud Console 的 Instance Details 部分显示的 Central 实例地址。例如,使用acs-ABCD12345.acs.rhcloud.com
而不是acs-data-ABCD12345.acs.rhcloud.com
。
第 3 章 管理安全集群
要保护 Kubernetes 或 OpenShift Container Platform 集群,您必须将 Red Hat Advanced Cluster Security for Kubernetes (RHACS) 服务部署到集群中。您可以通过进入到 Platform Configuration → Clusters 视图在 RHACS 门户中生成部署文件,也可以使用 roxctl
CLI。
3.1. 先决条件
您已使用以下命令配置了
ROX_ENDPOINT
环境变量:$ export ROX_ENDPOINT=<host:port> 1
- 1
- 存储在
ROX_ENDPOINT
环境变量中的主机和端口信息。
3.2. 生成 Sensor 部署文件
为 Kubernetes 系统生成文件
流程
运行以下命令,为您的 Kubernetes 集群生成所需的传感器配置,并将其与您的 Central 实例关联:
$ roxctl sensor generate k8s --name <cluster_name> --central "$ROX_ENDPOINT"
为 OpenShift Container Platform 系统生成文件
流程
运行以下命令,为 OpenShift Container Platform 集群生成所需的传感器配置,并将其与您的 Central 实例关联:
$ roxctl sensor generate openshift --openshift-version <ocp_version> --name <cluster_name> --central "$ROX_ENDPOINT" 1
- 1
- 对于
--openshift-version
选项,请指定集群的主 OpenShift Container Platform 版本号。例如,为 OpenShift Container Platform 版本3.x
指定3
,为 OpenShift Container Platform 版本4.x
指定4
。
阅读
--help
输出以查看您可能需要使用的其他选项,具体取决于您的系统架构。验证您为
--central
提供的端点是否可以从部署 Red Hat Advanced Cluster Security for Kubernetes 服务的集群中访问。重要如果您使用支持非 gRPC 的负载均衡器,如 HAProxy、AWS Application Load Balancer (ALB) 或 AWS Elastic Load Balancing (ELB),请按照以下步骤操作:
-
使用 WebSocket Secure (
ws
) 协议。要使用wss
,使用ws://
为地址添加前缀,并 在地址后添加端口号,例如:
$ roxctl sensor generate k8s --central wss://stackrox-central.example.com:443
3.3. 使用 sensor.sh 脚本安装 Sensor
当您生成 Sensor 部署文件时,roxctl
会在工作目录中创建一个名为 sensor-<cluster_name>
的目录。安装 Sensor 的脚本位于这个目录中。
流程
运行传感器安装脚本来安装 Sensor:
$ ./sensor-<cluster_name>/sensor.sh
如果您收到没有安装 Sensor 所需的权限的警告,请按照屏幕说明操作,或者联系集群管理员寻求帮助。
3.4. 为现有集群下载 Sensor 捆绑包
流程
运行以下命令,通过指定
集群名称
或ID
为现有集群下载 Sensor 捆绑包:$ roxctl sensor get-bundle <cluster_name_or_id>
3.5. 删除集群集成
流程
在删除集群前,请确定您有要从 Central 中删除的正确集群名称:
$ roxctl cluster delete --name=<cluster_name>
重要删除集群集成不会删除集群中运行的 RHACS 服务,具体取决于安装方法。您可以从 Sensor 安装捆绑包中运行
delete-sensor.sh
脚本来删除服务。
第 4 章 检查策略合规性
您可以使用 roxctl
CLI 检查部署 YAML 文件和镜像是否合规。
4.1. 先决条件
您已使用以下命令配置了
ROX_ENDPOINT
环境变量:$ export ROX_ENDPOINT=<host:port> 1
- 1
- 存储在
ROX_ENDPOINT
环境变量中的主机和端口信息。
4.2. 配置输出格式
当您使用 roxctl deployment check
或 roxctl image check
命令检查策略时,您可以使用命令的 -o
选项指定输出格式,并将格式指定为 json
、table
、csv
或 junit
。此选项决定了如何在终端中显示命令的输出。
例如,以下命令检查部署,然后以 csv
格式显示结果:
$ roxctl deployment check --file =<yaml_filename> -o csv
当您没有为输出格式指定 -o
选项时,会使用以下默认行为:
-
deployment check
和image check
命令的格式是table
。 -
image scan
命令的默认输出格式是json
。这是与 CLI 旧版本兼容的旧 JSON 格式输出。若要以新的 JSON 格式获取输出,使用格式选项,如-o json
。在收集数据以进行故障排除时,请使用旧的 JSON 格式输出。
可以不同的选项用于配置输出。下表列出了选项及其可用格式。
选项 | 描述 | 格式 |
---|---|---|
| 使用此选项以紧凑格式显示 JSON 输出。 |
|
| 使用这个选项指定自定义标头。 |
|
| 使用这个选项省略输出中的标头行。 |
|
| 使用这个选项指定 GJSON 路径,以选择输出中的特定项目。例如,若要获取部署检查的策略名称和严重性,请使用以下命令: $ roxctl deployment check --file=<yaml_filename> \ -o table --headers POLICY-NAME,SEVERITY \ --row-jsonpath-expressions="{results..violatedPolicies..name,results..violatedPolicies..severity}" |
|
| 使用此选项合并具有相同值的表单元。 |
|
| 使用这个选项在输出中将标头行包含为注释。 |
|
| 使用此选项指定 JUnit 测试套件的名称。 |
|
4.3. 检查部署 YAML 文件
流程
以下命令检查 YAML 部署文件中的安全策略的构建时间和部署时间违反情况:
$ roxctl deployment check --file=<yaml_filename>
格式在 API 引用中定义。要让 Red Hat Advanced Cluster Security for Kubernetes(RHACS) 从关联的 registry 和扫描程序中拉取镜像元数据和镜像扫描结果,请添加
--force
选项。注意要检查特定的镜像扫描结果,您必须具有
Image
资源的read
和write
权限的令牌。默认的 Continuous Integration 系统角色已具有所需的权限。此命令验证以下项目:
- YAML 文件中的配置选项,如资源限值或特权选项
- YAML 文件中使用的镜像的各个方面,如组件或漏洞
4.4. 检查镜像
流程
运行以下命令检查镜像中安全策略的构建时违反情况:
$ roxctl image check --image=<image_name>
格式在 API 引用中定义。要让 Red Hat Advanced Cluster Security for Kubernetes(RHACS) 从关联的 registry 和扫描程序中拉取镜像元数据和镜像扫描结果,请添加
--force
选项。注意要检查特定的镜像扫描结果,您必须具有
Image
资源的read
和write
权限的令牌。默认的 Continuous Integration 系统角色已具有所需的权限。
4.5. 检查镜像扫描结果
您还可以检查特定镜像的扫描结果。
流程
运行以下命令以以 JSON 格式返回镜像中发现的组件和漏洞:
$ roxctl image scan --image <image_name>
格式在 API 引用中定义。要让 Red Hat Advanced Cluster Security for Kubernetes(RHACS) 从关联的 registry 和扫描程序中拉取镜像元数据和镜像扫描结果,请添加
--force
选项。注意要检查特定的镜像扫描结果,您必须具有
Image
资源的read
和write
权限的令牌。默认的 Continuous Integration 系统角色已具有所需的权限。
4.6. roxctl image 命令概述
您可以在特定镜像中运行的命令。
使用方法
$ roxctl image [command] [flags]
命令 | 描述 |
---|---|
| 检查镜像是否有构建时间策略违反情况,并报告它们。 |
| 扫描指定的镜像,并返回扫描结果。 |
选项 | 描述 |
---|---|
|
为代表请求最长持续时间的 API 请求设置超时。默认值为 |
4.6.1. roxctl image 命令选项从父命令继承
roxctl image
命令支持从父 roxctl
命令继承的以下选项:
选项 | 描述 |
---|---|
|
为安全连接指定自定义 CA 证书文件路径。或者,您可以使用 |
|
设置 |
|
将服务的端点设置为 contact。或者,您可以使用 |
|
强制将 HTTP/1 用于所有连接。或者,通过将 |
|
启用不安全的连接选项。或者,通过将 |
|
跳过 TLS 证书验证。或者,通过将 |
|
禁用颜色输出。或者,通过将 |
|
指定基本身份验证的密码。或者,您可以使用 |
|
使用未加密的连接。或者,通过将 |
|
设置用于 SNI 的 TLS 服务器名称。或者,您可以使用 |
|
使用指定文件中提供的 API 令牌进行身份验证。另外,您可以使用 |
这些选项适用于 roxctl image
命令的所有子命令。
4.6.2. roxctl 镜像扫描
扫描指定的镜像,并返回扫描结果。
使用方法
$ roxctl image scan [flags]
选项 | 描述 |
---|---|
| 指定要将镜像扫描委派给的集群名称或 ID。 |
|
以紧凑格式显示 JSON 输出。默认值为 |
|
忽略 Central 的缓存,并强制从 Scanner 中重新拉取。默认值为 |
|
指定要在表格化输出中打印的标头。默认值包括 |
|
在 CSV 标签页化输出中将标头打印为注释。默认值为 |
|
指定镜像名称并引用扫描。例如, |
|
在扫描结果中包含 snoozed 和 unsnoozed CVE。默认值为 |
|
在 tabular 输出中合并重复单元。默认值为 |
|
不要打印表格输出的标头。默认值为 |
|
指定输出格式。输出格式包括 |
|
指定在退出作为错误前的重试次数。默认值为 |
|
设置重试之间等待的时间(以秒为单位)。默认值为 |
|
指定从 JSON 对象创建行的 JSON 路径表达式。如需了解更多详细信息,请运行 |
4.6.3. roxctl image check
检查镜像是否有构建时间策略违反情况,并报告它们。
使用方法
$ roxctl image check [flags]
选项 | 描述 |
---|---|
| 您要执行的策略类别列表。默认情况下使用所有策略类别。 |
| 定义您要用作评估上下文的集群名称或 ID。 |
|
以紧凑格式显示 JSON 输出。默认值为 |
|
绕过镜像的 Central 缓存,并强制从 Scanner 中进行新的拉取。默认值为 |
|
定义要在表格化输出中打印的标头。默认值包括 |
|
在 CSV 标签页化输出中将标头打印为注释。默认值为 |
|
指定镜像名称和引用。例如, |
|
设置 JUnit 测试套件的名称。默认值为 |
|
在 tabular 输出中合并重复单元。默认值为 |
|
不要打印表格输出的标头。默认值为 |
|
选择输出格式。输出格式包括 |
|
设置退出作为错误前的重试次数。默认值为 |
|
设置重试之间等待的时间(以秒为单位)。默认值为 |
|
使用 JSON 路径表达式从 JSON 对象创建行。如需了解更多详细信息,请运行 |
|
定义是否在出现违反情况时发送通知。默认值为 |
第 5 章 调试问题
Central 将信息保存到其容器日志中。
5.1. 先决条件
您已使用以下命令配置了
ROX_ENDPOINT
环境变量:$ export ROX_ENDPOINT=<host:port> 1
- 1
- 存储在
ROX_ENDPOINT
环境变量中的主机和端口信息。
5.2. 查看日志
您可以使用 oc
或 kubectl
命令查看 Central pod 的日志。
流程
要使用
kubectl
查看 Central pod 的日志,请运行以下命令:$ kubectl logs -n stackrox <central_pod>
要使用
oc
查看 Central pod 的日志,请运行以下命令:$ oc logs -n stackrox <central_pod>
5.3. 查看当前日志级别
您可以更改日志级别,以在 Central 日志中看到更多或较少的信息。
流程
运行以下命令来查看当前的日志级别:
$ roxctl central debug log
5.4. 更改日志级别
流程
运行以下命令来更改日志级别:
$ roxctl central debug log --level=<log_level> 1
- 1
<log_level>
可以接受的值是:Panic
,Fatal
,Error
,Warn
,Info
, 和Debug
。
5.5. 检索调试信息
流程
运行以下命令来收集调查问题的调试信息:
$ roxctl central debug dump
- 要使用 RHACS 管理员密码或 API 令牌和中央地址生成诊断捆绑包,请按照使用 roxctl CLI 生成诊断捆绑包 的步骤进行操作。
5.6. roxctl central debug 命令概述
调试中央服务。
使用方法
$ roxctl central debug [flags]
5.6.1. roxctl central debug 命令选项从父命令继承
roxctl central debug
命令支持从父 roxctl
命令继承的以下选项:
选项 | 描述 |
---|---|
|
为安全连接指定自定义 CA 证书文件路径。或者,您可以使用 |
|
设置 |
|
将服务的端点设置为 contact。或者,您可以使用 |
|
强制将 HTTP/1 用于所有连接。或者,通过将 |
|
启用不安全的连接选项。或者,通过将 |
|
跳过 TLS 证书验证。或者,通过将 |
|
禁用颜色输出。或者,通过将 |
|
指定基本身份验证的密码。或者,您可以使用 |
|
使用未加密的连接。或者,通过将 |
|
设置用于 SNI 的 TLS 服务器名称。或者,您可以使用 |
|
使用指定文件中提供的 API 令牌进行身份验证。另外,您可以使用 |
这些选项适用于 roxctl central debug
命令的所有子命令。
5.6.2. roxctl central debug db
控制数据库的调试。
使用方法
$ roxctl central debug db [flags]
选项 | 描述 |
---|---|
|
指定代表请求最长持续时间的 API 请求超时。默认值为 |
5.6.3. roxctl central debug log
检索当前的日志级别。
使用方法
$ roxctl central debug log [flags]
选项 | 描述 |
---|---|
|
指定要设置模块的日志级别。有效值包括 |
| 指定要应用命令的模块。 |
|
指定重试 API 请求超时。值为零表示整个请求持续时间都在不重试的情况下等待。默认值为 |
|
指定 API 请求的超时时间,这是请求的最长持续时间。默认值为 |
5.6.4. roxctl central debug dump
下载包含 Central 的调试信息的捆绑包。
使用方法
$ roxctl central debug dump [flags]
选项 | 描述 |
---|---|
|
如果设置为 |
| 指定捆绑包内容的输出目录。默认值是当前目录中自动生成的目录名称。 |
|
指定 API 请求的超时时间,这是请求的最长持续时间。默认值为 |
5.6.5. roxctl central debug db stats
控制 Central 数据库的统计信息。
使用方法
$ roxctl central debug db stats [flags]
5.6.6. roxctl central debug authz-trace
在 Central 中启用或禁用授权追踪以进行调试。
使用方法
$ roxctl central debug authz-trace [flags]
选项 | 描述 |
---|---|
|
指定代表请求最长持续时间的 API 请求超时。默认值为 |
5.6.7. roxctl central debug db stats reset
重置 Central 数据库的统计信息。
使用方法
$ roxctl central debug db stats reset [flags]
5.6.8. roxctl central debug download-diagnostics
下载包含平台诊断信息的快照的捆绑包。
使用方法
$ roxctl central debug download-diagnostics [flags]
选项 | 描述 |
---|---|
| 指定您要从中收集日志的 Sensor 集群的逗号分隔列表。 |
| 指定要保存诊断捆绑包的输出目录。 |
| 指定您要从 Sensor 集群收集日志的时间戳。 |
|
指定 API 请求的超时时间,指定请求的最长持续时间。默认值为 |
第 6 章 生成构建时网络策略
build-time 网络策略生成器包含在 roxctl
CLI 中。对于构建网络策略生成功能,roxctl
CLI 不需要与 RHACS Central 通信,因此您可以在任何开发环境中使用它。
6.1. 使用构建时网络策略生成器
构建网络策略生成只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
先决条件
-
build-time 网络策略生成器递归扫描您在运行命令时指定的目录。因此,在运行该命令前,您必须已具有服务清单、配置映射和工作负载清单,如
Pod
、Deployment
、ReplicaSet
、Job
、DaemonSet
和StatefulSet
作为指定目录中的 YAML 文件。 -
使用
kubectl apply -f
命令验证这些 YAML 文件是否按原样应用。build-time 网络策略生成器无法用于使用 Helm 样式模板的文件。 验证服务网络地址没有硬编码。需要连接到服务的每个工作负载都必须将服务网络地址指定为变量。您可以使用工作负载的资源环境变量或配置映射来指定此变量。
服务网络地址必须与以下官方正则表达式模式匹配:
(http(s)?://)?<svc>(.<ns>(.svc.cluster.local)?)?(:<portNum>)? 1
- 1
- 在这种模式中,
- <svc> 是服务名称。
- <ns> 是定义该服务的命名空间。
- <portNum> 是公开的服务端口号。
以下是与模式匹配的一些示例:
-
wordpress-mysql:3306
-
redis-follower.redis.svc.cluster.local:6379
-
redis-leader.redis
-
http://rating-service.
流程
运行 help 命令验证构建网络策略生成功能是否可用:
$ roxctl netpol generate -h
使用
netpol generate
命令生成策略:$ roxctl netpol generate <folder-path> 1
- 1
- 指定具有 Kubernetes 清单的文件夹路径。
roxctl netpol generate
命令支持以下选项:
| 描述 |
|
查看 |
| 将生成的策略保存到目标文件夹中。每个策略有一个文件。 |
| 将生成的策略保存并合并到单个 YAML 文件中。 |
|
在第一次遇到的错误时失败。默认值为 |
| 删除输出路径(如果已存在)。 |
|
将警告视为错误。默认值为 |
第 7 章 使用 roxctl CLI 进行镜像扫描
您可以使用 roxctl
CLI 扫描存储在镜像 registry 中的镜像,包括集群本地 registry,如 OpenShift Container Platform 集成的镜像 registry。
7.1. 使用远程集群扫描镜像
通过在委托扫描配置中指定适当的集群,或通过以下流程中描述的 cluster 参数指定适当的集群,您可以使用远程集群从集群本地 registry 中扫描镜像。
有关如何配置委派的镜像扫描的更多信息,请参阅配置委派的镜像扫描。
流程
运行以下命令扫描远程集群中的指定镜像:
$ roxctl image scan \ --image=<image_registry>/<image_name> \1 --cluster=<cluster_detail> \2 [flags] 3
- 1
- 对于
<image_registry
>,请指定镜像所在的 registry,例如image-registry.openshift-image-registry.svc:5000/
。对于<image_name
>,请指定您要扫描的镜像的名称,如default/image-stream:latest
。 - 2
- 对于
<cluster_detail
>,请指定远程集群的名称或 ID。例如,指定名称remote
。 - 3
- 可选: 对于
[flags]
,您可以指定参数来修改命令的行为。有关可选参数的更多信息,请参阅 roxctl image scan 命令选项。
输出示例
{ "Id": "sha256:3f439d7d71adb0a0c8e05257c091236ab00c6343bc44388d091450ff58664bf9", 1 "name": { 2 "registry": "image-registry.openshift-image-registry.svc:5000", 3 "remote": "default/image-stream", 4 "tag": "latest", 5 "fullName": "image-registry.openshift-image-registry.svc:5000/default/image-stream:latest" 6 }, [...]
7.2. roxctl image scan 命令选项
roxctl image scan
命令支持以下选项:
选项 | 描述 |
---|---|
| 将镜像扫描委派给特定集群。 |
|
以紧凑格式显示 JSON 输出。默认值为 |
|
忽略扫描的 Central 缓存,并强制从 Scanner 重新拉取。默认值为 |
|
以表格形式打印标头。默认值包括 |
|
在 CSV 标签页化输出中将标头显示为注释。默认值为 |
|
查看 |
| 指定镜像名称和您要扫描的引用。 |
|
返回 snoozed 和 unsnoozed 通用漏洞和暴露(CVE)。默认值为 |
|
在 tabular 输出中合并重复单元。默认值为 |
|
不要打印表格格式的标头。默认值为 |
|
指定输出格式。您可以选择自定义结果显示的格式。格式包括 |
|
在操作中止前设置重试次数,并显示错误。默认值为 |
|
设置重试之间等待的时间(以秒为单位)。默认值为 |
|
使用 JSON 路径表达式从 JSON 对象创建行。如需了解更多详细信息,请运行 |