返回更新列表
新发布Aug 18, 2026

stackrox v4.11.3-rc.4

StackRox Kubernetes安全平台对容器环境进行风险分析,提供可见性和运行时警报,并提供建议以通过加固环境来主动提高安全性。

分享

目录


StackRox Kubernetes 安全平台

StackRox Kubernetes 安全平台对容器环境进行风险分析,提供可见性和运行时告警,并通过强化环境来主动提高安全性。StackRox 集成了容器生命周期的每个阶段:构建、部署和运行时。

StackRox Kubernetes 安全平台基于原名为 Prevent 的产品构建,该产品本身曾被称为 Mitigate 和 Apollo。您可能会在代码或文档中找到对这些先前名称的引用。


社区

您可以通过 Slack (#stackrox) 联系我们。其他方式,请访问我们的社区中心 stackrox.io

有关活动更新、博客和其他资源,请关注 StackRox 社区网站 stackrox.io

关于 StackRox 行为准则

报告漏洞或错误


部署 StackRox

使用 Operator 安装

从 4.10 版本开始,可以使用 operator 安装 StackRox

[!WARNING] 以下安装方法已弃用。

使用 Helm 快速安装

StackRox 提供通过 Helm Charts 快速安装。请遵循 Helm 安装指南 在你的系统上获取 helm CLI。然后运行 helm 快速安装脚本,或前往使用 Helm 手动安装章节查看配置选项。

通过 Helm 安装脚本安装 StackRox```sh /bin/bash <(curl -fsSL https://raw.githubusercontent.com/stackrox/stackrox/master/scripts/quick-helm-install.sh) ``` StackRox的默认部署有一定的CPU和内存请求,如果资源不足,可能会在小(例如开发)集群上失败。你可以使用`--small`命令行选项在资源有限的小集群上安装StackRox。不建议在生产部署中使用此选项。```sh /bin/bash <(curl -fsSL https://raw.githubusercontent.com/stackrox/stackrox/master/scripts/quick-helm-install.sh) --small ``` 脚本会添加 StackRox Helm 仓库、生成管理员密码、安装 stackrox-central-services、创建用于配置 stackrox-secured-cluster-services 的初始化捆绑包,最后在同一集群上安装 stackrox-secured-cluster-services。

最终,脚本会自动打开浏览器并让你登录 StackRox。由于证书是自签名的,可能会显示证书警告。请参阅访问 StackRox 用户界面 (UI) 部分了解更多关于警告的信息。认证后,你可以通过 https://localhost:8000/main/dashboard 访问仪表板。

使用 Helm 手动安装

按照 Helm 安装指南 在你的系统上获取 helm CLI。

使用 Helm 部署包括 4 个步骤:

  1. 将 StackRox 仓库添加到 Helm
  2. 使用 helm 启动 StackRox Central Services
  3. 创建集群配置和服务标识(初始化捆绑包)
  4. 使用该配置和凭证部署 StackRox Secured Cluster Services(此步骤可多次执行,以向 StackRox Central Service 添加更多集群)
安装 StackRox Central Services

首先,StackRox Central Services 将被添加到你的 Kubernetes 集群中。这包括 UI 和 Scanner。首先,将 stackrox/helm-charts/opensource 仓库添加到 Helm。```sh helm repo add stackrox https://raw.githubusercontent.com/stackrox/helm-charts/main/opensource/

若要查看仓库中所有可用的 Helm Chart,请运行(可以添加 `--devel` 选项以显示非发布版本)```sh
helm search repo stackrox

要安装 stackrox-central-services,您需要一个安全密码。该密码稍后在 UI 登录和创建 init bundle 时会用到。```sh ROX_ADMIN_PASSWORD="$(openssl rand -base64 20 | tr -d '/=+')"

从这里开始,您可以安装 stackrox-central-services 以在集群中部署 Central 和 Scanner 组件。

> **注意:**
> 即使您计划保护多个集群,也只需要部署一个 stackrox-central-services 实例。

要执行安装,请根据集群大小选择以下命令之一:

#### 默认 Central 安装

如果您要在大小合适的集群中安装,请使用默认安装命令:```sh
helm upgrade --install -n stackrox --create-namespace stackrox-central-services \
  stackrox/stackrox-central-services \
  --set central.adminPassword.value="${ROX_ADMIN_PASSWORD}" \
  --set central.persistence.none="true"

在资源有限的集群中集中安装

如果您在单节点集群中安装,或者默认安装由于资源不足导致 Pod 卡在挂起状态,请改用以下命令来降低 stackrox-central-services 的资源需求。请记住,这些精简的资源设置不适合生产环境。```sh helm upgrade --install -n stackrox --create-namespace stackrox-central-services
stackrox/stackrox-central-services
--set central.adminPassword.value="${ROX_ADMIN_PASSWORD}"
--set central.persistence.none="true"
--set central.resources.requests.memory=1Gi
--set central.resources.requests.cpu=1
--set central.resources.limits.memory=4Gi
--set central.resources.limits.cpu=1
--set central.db.resources.requests.memory=1Gi
--set central.db.resources.requests.cpu=500m
--set central.db.resources.limits.memory=4Gi
--set central.db.resources.limits.cpu=1
--set scanner.autoscaling.disable=true
--set scanner.replicas=1
--set scanner.resources.requests.memory=500Mi
--set scanner.resources.requests.cpu=500m
--set scanner.resources.limits.memory=2500Mi
--set scanner.resources.limits.cpu=2000m

</details>

<details><summary>安装 StackRox 安全集群服务</summary>

接下来,需要部署安全集群组件,用于从 Kubernetes 节点收集信息。

在 `CLUSTER_NAME` shell 变量中为安全集群设置一个有意义的集群名称。该集群将在 StackRox UI 的集群列表中以此名称标识。```sh
CLUSTER_NAME="my-secured-cluster"

设置安全集群服务应与Central通信的端点。如果在与stackrox-central-services相同的集群上部署stackrox-secured-cluster-services,请保持原样,否则将值更改为Central可访问的端点。```sh CENTRAL_ENDPOINT="central.stackrox.svc:443"

生成一个包含初始化秘密的 init bundle。init bundle 将保存在 `stackrox-init-bundle.yaml` 中,你将使用它来配置安全集群,如下所示。```sh
echo "$ROX_ADMIN_PASSWORD" | \
kubectl -n stackrox exec -i deploy/central -- bash -c 'ROX_ADMIN_PASSWORD=$(cat) roxctl --insecure-skip-tls-verify \
  central init-bundles generate stackrox-init-bundle --output -' > stackrox-init-bundle.yaml

然后安装 stackrox-secured-cluster-services(使用你刚刚生成的初始化包)。

要执行安装,请根据你的集群大小选择以下命令之一。

默认的安全集群服务安装

如果你在一个规模适中的集群中安装,请使用默认的安装命令:```sh helm upgrade --install -n stackrox --create-namespace stackrox-secured-cluster-services
stackrox/stackrox-secured-cluster-services
-f stackrox-init-bundle.yaml
--set clusterName="$CLUSTER_NAME"
--set centralEndpoint="$CENTRAL_ENDPOINT"

#### 在资源受限的集群中安装安全集群服务

如果你在单节点集群中安装,或者默认安装导致 Pod 因资源不足而卡在 Pending 状态,请改用以下命令以降低 stackrox-secured-cluster-services 的资源需求。请记住,这些降低后的资源设置不适合生产环境。```sh
helm upgrade --install -n stackrox --create-namespace stackrox-secured-cluster-services \
  stackrox/stackrox-secured-cluster-services \
  -f stackrox-init-bundle.yaml \
  --set clusterName="$CLUSTER_NAME" \
  --set centralEndpoint="$CENTRAL_ENDPOINT" \
  --set sensor.resources.requests.memory=500Mi \
  --set sensor.resources.requests.cpu=500m \
  --set sensor.resources.limits.memory=500Mi \
  --set sensor.resources.limits.cpu=500m
关于 Helm Chart 的附加信息

要进一步自定义 Helm 安装,请参考以下文档:

通过脚本安装

deploy 脚本将执行以下操作:

  1. 启动 StackRox Central Services
  2. 创建集群配置和服务身份
  3. 使用该配置和凭据部署 StackRox Secured Cluster Services

您可以在 shell 中设置环境变量 MAIN_IMAGE_TAG,以确保获得您想要的版本。

如果您检出了一个提交,脚本将默认启动与该提交对应的镜像。如果需要,系统会自动拉取该镜像。

后续步骤因编排器而异。

Kubernetes 发行版(EKS、AKS、GKE)

点击展开

按照以下指南,快速将特定版本的 StackRox 部署到您的 Kubernetes 集群的 stackrox 命名空间中。如果您想安装特定版本,请确保在 MAIN_IMAGE_TAG 中定义/设置它,否则将安装最新的夜间构建版本。

在您选择的工作目录中运行以下命令:``` git clone [email protected]:stackrox/stackrox.git cd stackrox MAIN_IMAGE_TAG=VERSION_TO_USE ./deploy/deploy.sh

几分钟后,所有资源应已部署完成。

**'admin' 用户的凭据可在 `./deploy/k8s/central-deploy/password` 文件中找到。**

> **注意:**
> 密码文件以明文形式存储在本地文件系统中,但 StackRox 据此创建的 Kubernetes Secret 是加密的。运行期间无法更改密码。如果丢失密码,则必须重新部署 central。

</details>

#### OpenShift

<details><summary>点击展开</summary>

在 OpenShift 上部署之前,请确保已安装 [oc - OpenShift Command Line](https://github.com/openshift/oc)。

按照以下指南,在 `stackrox` 命名空间中快速将特定版本的 StackRox 部署到你的 OpenShift 集群。请确保将最新的标签添加到 `MAIN_IMAGE_TAG` 变量中。

在你选择的工作目录中运行以下命令:```
git clone [email protected]:stackrox/stackrox.git
cd stackrox
MAIN_IMAGE_TAG=VERSION_TO_USE ./deploy/deploy.sh

几分钟后,所有资源应该都已部署。此过程将以以下消息完成。

'admin' 用户的凭据可以在 ./deploy/openshift/central-deploy/password 文件中找到。

注意: 虽然密码文件以明文形式存储在您的本地文件系统中,但 StackRox 使用的 Kubernetes Secret 是加密的,您将无法在运行时更改该 Secret。如果您丢失了密码,将不得不重新部署 central。

Docker Desktop、Colima 或 minikube

点击展开

请在您选择的工作目录中运行以下命令:``` git clone [email protected]:stackrox/stackrox.git cd stackrox MAIN_IMAGE_TAG=latest ./deploy/deploy-local.sh

几分钟后,所有资源应部署完成。

**'admin'用户的凭据可以在 `./deploy/k8s/deploy-local/password` 文件中找到。**

</details>

## 访问 StackRox 用户界面 (UI)

<details><summary>点击展开</summary>

部署完成后(Operator、Helm 或脚本安装),应存在端口转发,因此您可以连接到 https://localhost:8000/。运行以下命令```sh
kubectl port-forward -n 'stackrox' svc/central "8000:443"

然后,在您的网页浏览器中访问 https://localhost:8000/。

用户名 = 默认用户是 admin

密码(Helm) = 密码在手动安装后位于 $ROX_ADMIN_PASSWORD 中,或在快速安装脚本末尾打印。

密码(脚本) = 密码将位于脚本安装的 /deploy/<orchestrator>/central-deploy/password.txt 文件夹中。


开发

快速开始

构建工具

以下工具对于测试代码和构建镜像来说是必需的:

点击展开
  • Make
  • Go
  • 可以使用 make reinstall-dev-tools 安装的各种 Go 代码检查工具。
  • 按照 ui/README.md 中指定的 UI 构建工具。
  • Docker
    • 注意:Docker Desktop 现在对大型企业公司需要付费订阅。
    • 一些 StackRox 开发者推荐使用 Colima
  • Xcode 命令行工具(仅 macOS)
  • Bats 用于运行某些 shell 测试。 您可以通过 brew install batsnpm install -g bats 获取它。
  • oc OpenShift CLI 工具
  • shellcheck 用于 shell 脚本的代码检查。

Xcode - 仅 macOS

通常您可能已经通过 brew 安装了这些工具。 然而,如果在构建 golang x/tools 时遇到错误, 请先确保已同意 EULA,方法如下:

  1. 启动 Xcode
  2. 新建一个空白应用项目
  3. 在模拟器中启动空白项目应用
  4. 关闭模拟器和 Xcode,然后
  5. 运行以下命令: ```bash xcode-select --install sudo xcode-select --switch /Library/Developer/CommandLineTools # Enable command line tools sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
更多信息,请参阅 <https://github.com/nodejs/node-gyp/issues/569>

</details>

#### 克隆 StackRox
<details><summary>点击展开</summary>```bash
# Create a GOPATH: this is the location of your Go "workspace".
# (Note that it is not – and must not – be the same as the path Go is installed to.)
# The default is to have it in ~/go/, or ~/development, but anything you prefer goes.
# Whatever you decide, create the directory, set GOPATH, and update PATH:
export GOPATH=$HOME/go # Change this if you choose to use a different workspace.
export PATH=$PATH:$GOPATH/bin
# You probably want to permanently set these by adding the following commands to your shell
# configuration (e.g. ~/.bash_profile)

cd $GOPATH
mkdir -p bin pkg
mkdir -p src/github.com/stackrox
cd src/github.com/stackrox
git clone [email protected]:stackrox/stackrox.git

本地开发

点击展开

为了提升体验,请事先安装工作流脚本。```bash $ cd $GOPATH/src/github.com/stackrox/stackrox $ make install-dev-tools $ make image

现在,你需要*自己*搭建一个Kubernetes集群,然后再继续。
开发可以在GCP或本地进行,使用[Docker Desktop](https://docs.docker.com/desktop/kubernetes/)、[Colima](https://github.com/abiosoft/colima#kubernetes)或[minikube](https://minikube.sigs.k8s.io/docs/start/)。

> **注意:**
> Docker Desktop和Colima更适合macOS开发,因为集群可以直接访问本地使用`make image`构建的镜像而无需额外配置。此外,Collector对这些工具的支持比minikube更好,因为minikube的驱动可能不可用。```bash
# To keep the StackRox Central's Postgres DB state between database upgrades and restarts, set:
$ export STORAGE=pvc

# To save time on rebuilds by skipping UI builds, set:
$ export SKIP_UI_BUILD=1

# To save time on rebuilds by skipping CLI builds, set:
$ export SKIP_CLI_BUILD=1

# When you deploy locally make sure your kube context points to the desired kubernetes cluster,
# for example Docker Desktop.
# To check the current context you can call a workflow script:
$ roxkubectx

# To deploy locally, call:
$ ./deploy/deploy-local.sh

# Now you can access StackRox dashboard at https://localhost:8000
# or simply call another workflow script:
$ logmein

更多信息请参阅通过脚本安装。要了解关于环境变量的更多信息,请查阅deploy/README.md

常见的Makefile目标

点击展开```bash # Build image, this will create `stackrox/main` with a tag defined by `make tag`. $ make image

Compile all binaries

$ make main-build-dockerized

Displays the docker image tag which would be generated

$ make tag

Note: there are integration tests in some components, and we currently

run those manually. They will be re-enabled at some point.

$ make test

Apply and check style standards in Go and JavaScript

$ make style

enable pre-commit hooks for style checks

$ make init-githooks

Compile and restart only central

$ make fast-central

Compile only sensor

$ make fast-sensor

Only compile protobuf

$ make proto-generated-srcs

</details>

#### 生产力

<details><summary>点击展开</summary>

[工作流仓库](https://github.com/stackrox/workflow) 包含一些帮助脚本,它们支持我们的开发工作流。使用 `roxhelp --list-all` 探索更多命令。```bash
# Change directory to rox root
$ cdrox

# Handy curl shortcut for your StackRox central instance
# Uses https://localhost:8000 by default or ROX_BASE_URL env variable
# Also uses the admin credentials from your last deployment via deploy.sh
$ roxcurl /v1/metadata

# Run quickstyle checks, faster than stackrox's "make style"
$ quickstyle

# The workflow repository includes some tools for supporting
# working with multiple inter-dependent branches.
# Examples:
$ smart-branch <branch-name>    # create new branch
    ... work on branch...
$ smart-rebase                  # rebase from parent branch
    ... continue working on branch...
$ smart-diff                    # check diff relative to parent branch
    ... git push, etc.

GoLand 配置

点击展开

如果你正在使用 GoLand 进行开发,以下内容有助于改善体验。

确保已安装 Protocol Buffers 插件。该插件默认随 GoLand 安装。 如果没有安装,请使用 Help | Find Action...,输入 Plugins 并回车,然后切换到 Marketplace,输入插件名称并安装。

该插件默认不知道在 GoLand 中何处查找 .proto 导入,因此你需要显式配置路径。参见 https://github.com/jvolkman/intellij-protobuf-editor#path-settings

  • 前往 GoLand | Preferences | Languages & Frameworks | Protocol Buffers
  • 取消勾选 Configure automatically
  • 点击 + 按钮,导航并选择仓库根目录中的 ./proto 目录。
  • 可选地,还可以添加 $HOME/go/pkg/mod/github.com/gogo/[email protected]$HOME/go/pkg/mod/github.com/gogo/[email protected]/
  • 验证:使用菜单 Navigate | File... 输入任意 .proto 文件名,例如 alert_service.proto,并检查所有导入字符串是否显示为绿色而不是红色。

运行 sql_integration 测试

点击展开

带有 //go:build sql_integration 标注的 Go 测试需要一个监听在 5432 端口的 PostgreSQL 服务器。 由于身份验证在代码中的设置方式,最简单的方法是在容器中启动 Postgres,如下所示:```bash $ docker run --rm --env POSTGRES_USER="$USER" --env POSTGRES_HOST_AUTH_METHOD=trust --publish 5432:5432 docker.io/library/postgres:15

With that running in the background, `sql_integration` tests can be triggered from IDE or command-line.

</details>

#### 调试

<details><summary>点击展开</summary>

**Kubernetes 调试器设置**

使用 GoLand,您可以在 IDE 中运行单元测试时自然地使用断点和调试器。

如果您想要调试本地甚至远程部署,请按照以下步骤操作。

1. 通过导出 `DEBUG_BUILD=yes` 在本地创建调试构建:   ```bash
   $ DEBUG_BUILD=yes make image

或者,当分支名称包含 -debug 子串时,也会创建调试构建。这在本地使用 make image 和在 CI 中均有效。 2. 使用此 README 文件中的说明部署镜像。既适用于 deploy-local.sh 也适用于 deploy.sh。 3. 在目标 Pod 中使用 workflow 仓库中的 roxdebug 命令启动调试器(以及端口转发)。 ```bash

For Central

$ roxdebug

For Sensor

$ roxdebug deploy/sensor

See usage help

$ roxdebug --help

4. 配置 GoLand 以进行远程调试(仅需完成一次):
 1. 打开 `Run | Edit Configurations …`,点击 `+` 图标添加新配置,选择 `Go Remote` 模板。
 2. 选择 `Host:` `localhost` 和 `Port:` `40000`。为此配置命名。
 3. 选择 `On disconnect:` `Leave it running`(这样可防止 GoLand 在重新连接时遗忘断点)。
5. 将 GoLand 附加到调试端口:选择 `Run | Debug…` 并选择已创建的配置。
如果一切正确,您应该会在屏幕下方的 `Debug | Debugger | Variables` 窗口中看到 `Connected` 消息。
6. 设置一些代码断点,触发相应操作,尽情调试!

更多信息,请参阅 [Debugging go code running in Kubernetes](https://github.com/stackrox/dev-docs/blob/main/docs/knowledge-base/%5BBE%5D%20Debugging-go-code-running-in-Kubernetes.md)。
</details>

## Generating Portable Installers

<details><summary>Kubernetes</summary>```bash
docker run -i --rm quay.io/stackrox-io/main:<tag> central generate interactive > k8s.zip

这将引导您完成安装程序并生成一个 k8s.zip 文件。```bash unzip k8s.zip -d k8s

\u2060```bash
bash k8s/central.sh

现在 Central 已部署完成。使用用户界面部署 Sensor。

OpenShift

注意: 如果使用主机挂载,你需要通过运行以下命令允许容器访问挂载点: sudo chcon -Rt svirt_sandbox_file_t <full volume path>

从本仓库获取 image-setup.sh 脚本并运行它,以执行拉取/推送到本地 OpenShift 仓库。这是每个新集群的前提条件。```bash bash image-setup.sh

根据提供的输入,没有实际待翻译的内容。因此,输出为空。```bash
docker run -i --rm quay.io/stackrox-io/main:<tag> central generate interactive > openshift.zip

这将引导您完成安装程序,并生成一个 openshift.zip 文件。```bash unzip openshift.zip -d openshift

(无内容,翻译结果为空)```bash
bash openshift/central.sh

运行 StackRox 的依赖与建议

点击展开

以下信息已收集用于帮助安装和运行开源 StackRox 项目。这些建议是为 Red Hat Advanced Cluster Security for Kubernetes 产品制定的,且尚未在上游的 StackRox 项目中进行测试。

推荐的 Kubernetes 发行版

以下列出了 StackRox 已部署且问题最少的 Kubernetes 平台。

  • Red Hat OpenShift Dedicated (OSD)
  • Azure Red Hat OpenShift (ARO)
  • Red Hat OpenShift Service on AWS (ROSA)
  • Amazon Elastic Kubernetes Service (EKS)
  • Google Kubernetes Engine (GKE)
  • Microsoft Azure Kubernetes Service (AKS)

如果将 StackRox 部署到上述列表之外的 Kubernetes 发行版中,可能会遇到问题。

推荐的操作系统

已知 StackRox 可以在以下操作系统的最新版本上运行。

  • Ubuntu
  • Debian
  • Red Hat Enterprise Linux (RHEL)
  • CentOS
  • Fedora CoreOS
  • Flatcar Container Linux
  • Google COS
  • Amazon Linux
  • Garden Linux

推荐的 Web 浏览器

下表列出了可以查看 StackRox Web 用户界面的浏览器。

  • Google Chrome 88.0 (64-bit)
  • Microsoft Internet Explorer Edge
    • 版本 44 及更高版本(Windows)
    • 版本 81(官方构建)(64位)
  • MacOS (Mojave) 上的 Safari - 版本 14.0
  • Mozilla Firefox 版本 82.0.2(64位)

分类