You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS部署Openshift与沙箱环境SCC配置差异及Restricted SCC绑定方法

问题1:Sandbox OpenShift环境触发报错的配置差异

OpenShift公共Sandbox和自行部署的AWS OpenShift核心差异在SCC的绑定规则和安全策略收紧程度:

  • 公共Sandbox作为面向公众的托管测试环境,对所有普通用户命名空间下的default ServiceAccount(SA)仅绑定了Restricted SCC,且该SCC被设置为最高优先级,没有其他更高权限SCC可供默认SA使用。
  • Restricted SCC强制两条规则:一是Pod运行UID为集群给命名空间分配的随机高UID(无对应容器内系统用户),二是容器运行GID强制为0(root组)。library/cassandra镜像启动时会校验运行身份,检测到所属组为root组,就会触发你看到的报错:

"Running Cassandra as root user or group is not recommended - please start Cassandra using a different system user. If you really want to force running Cassandra as root, use -R command line option."

  • 你自行在AWS部署的OpenShift默认没有做上述安全收紧,默认SA可以优先使用nonroot、restricted-v2这类允许使用镜像内置用户/自定义组的SCC,Cassandra可以用内置的cassandra用户(UID 999,GID 999)正常启动,不会触发身份校验报错。
问题2:AWS部署的OpenShift配置默认SA关联Restricted SCC的操作步骤

注意:该配置会强制所有匹配规则的Pod使用Restricted SCC规则运行,会影响依赖非随机UID、非root组运行的镜像,操作前需评估业务兼容性。

单命名空间配置

如果仅需要给指定命名空间的默认SA绑定Restricted SCC,执行以下操作:

  1. 执行绑定命令,替换<目标命名空间>为实际命名空间名称:
    oc adm policy add-scc-to-user restricted -z default -n <目标命名空间>
  2. 验证配置:在对应命名空间启动测试Pod,查看分配的SCC:
oc run test-cassandra --image=library/cassandra --restart=Never -n <目标命名空间>
oc get pod test-cassandra -o yaml | grep openshift.io/scc

输出为restricted即为配置生效。

全局所有命名空间配置

如果需要给集群所有命名空间的默认SA都绑定Restricted SCC,执行以下操作:

  1. 调整Restricted SCC的优先级,设置为高于其他默认SCC(默认其他SCC优先级多为10及以下,此处设置为20即可):
    oc patch scc restricted --type=merge -p '{"priority": 20}'
    若集群版本为4.11及以上,默认使用restricted-v2作为最新受限SCC,将上述命令中的scc restricted改为scc restricted-v2即可。
  2. 批量给所有现有命名空间的default SA绑定Restricted SCC:
    for ns in $(oc get ns -o name | cut -d/ -f2); do oc adm policy add-scc-to-user restricted -z default -n $ns; done
  3. 配置自动给新创建的命名空间的default SA绑定Restricted SCC,可通过Namespace Configuration、Kyverno或OpenShift GitOps等配置同步机制实现,无需手动操作新建命名空间。

内容的提问来源于stack exchange,提问作者Rad4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 03:36:03