
stackrox v4.11.2
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 个步骤:
- 将 StackRox 仓库添加到 Helm
- 使用 helm 启动 StackRox Central Services
- 创建集群配置和服务标识(初始化捆绑包)
- 使用该配置和凭证部署 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 脚本将执行以下操作:
- 启动 StackRox Central Services
- 创建集群配置和服务身份
- 使用该配置和凭据部署 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
几分钟后,所有资源应已部署完成。