
stackrox v4.11.4-rc.1
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
/bin/bash <(curl -fsSL https://raw.githubusercontent.com/stackrox/stackrox/master/scripts/quick-helm-install.sh)
StackRox 的默认部署具有特定的 CPU 和内存请求,如果资源不足,可能会在小型(例如开发)集群上失败。你可以使用 --small 命令行选项,以便在资源有限的小型集群上安装 StackRox。不建议在生产部署中使用此选项。
/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 创建 init bundle,最后在同一集群上安装 stackrox-secured-cluster-services。
最后,脚本会自动打开浏览器并将你登录到 StackRox。由于证书是自签名的,可能会显示证书警告。请参阅 访问 StackRox 用户界面 (UI) 一节以了解更多关于警告的信息。通过身份验证后,你可以使用 https://localhost:8000/main/dashboard 访问仪表板。
使用 Helm 手动安装
按照 Helm 安装指南 在你的系统上获取 helm CLI。
使用 Helm 部署包含 4 个步骤
- 将 StackRox 仓库添加到 Helm
- 使用 helm 启动 StackRox Central Services
- 创建集群配置和服务身份 (init bundle)
- 使用该配置和这些凭据部署 StackRox Secured Cluster Services(此步骤可以多次执行,以将更多集群添加到 StackRox Central Service)
安装 StackRox Central Services
首先,StackRox Central Services 将被添加到你的 Kubernetes 集群。这包括 UI 和 Scanner。首先,将 stackrox/helm-charts/opensource 仓库添加到 Helm。
helm repo add stackrox https://raw.githubusercontent.com/stackrox/helm-charts/main/opensource/
要查看仓库中所有可用的 Helm chart,请运行以下命令(你可以添加 --devel 选项,以便同时显示非发布版本)
helm search repo stackrox
要安装 stackrox-central-services,你需要一个安全密码。稍后登录 UI 以及创建 init bundle 时都会用到这个密码。
ROX_ADMIN_PASSWORD="$(openssl rand -base64 20 | tr -d '/=+')"
从这里开始,你可以安装 stackrox-central-services,以便在集群上部署 Central 和 Scanner 组件。
注意: 即使你计划保护多个集群,也只需要部署一个 stackrox-central-services 实例。
要执行安装,请根据你的集群规模选择以下命令之一。
默认 Central 安装
如果你要在规模合理的集群中安装,请使用默认安装命令:
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 因资源不足而一直处于 pending 状态,请改用以下命令来降低 stackrox-central-services 的资源需求。请注意,这些降低后的资源配置并不适合生产环境。
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
安装 StackRox 安全集群服务
接下来,需要部署安全集群组件,以从 Kubernetes 节点收集信息。
在 CLUSTER_NAME shell 变量中为你的安全集群设置一个有意义的集群名称。该集群将在 StackRox UI 的集群列表中以此名称标识。
CLUSTER_NAME="my-secured-cluster"
设置 Secured Cluster Services 应与之通信的 Central 端点。如果你将 stackrox-secured-cluster-services 部署在与 stackrox-central-services 相同的集群上,请保持原样,否则请将该值更改为可访问 Central 的端点。
CENTRAL_ENDPOINT="central.stackrox.svc:443"
生成一个包含初始化密钥的 init bundle。该 init bundle 将保存到 stackrox-init-bundle.yaml 中,你将使用它来配置安全集群,如下所示。
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(使用你刚刚生成的 init bundle)。
要执行安装,请根据你的集群规模选择以下命令之一。
默认 Secured Cluster Services 安装
如果你要在规模合理的集群中安装,请使用默认安装命令:
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"
在资源有限的集群中安装 Secured Cluster Services
如果你是在单节点集群中安装,或者默认安装导致 Pod 因资源不足而一直处于 pending 状态,请改用以下命令来降低 stackrox-secured-cluster-services 的资源需求。请注意,这些降低后的资源配置不适用于生产环境。
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 部署到 stackrox 命名空间中的 Kubernetes 集群。如果你想安装特定版本,请确保在 MAIN_IMAGE_TAG 中定义/设置它,否则将安装最新的 nightly 构建。