Menu Close

Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

15.6. 更新安全性上下文约束

更新现有的 SCC:

$ oc edit scc <scc_name>
注意

要在升级过程中保留自定义 SCC,请不要编辑优先级、用户和组以外的默认 SCC 的设置。

15.6.1. 安全性上下文约束设置示例

但没有清除 runAsUser 设置

apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  securityContext: 1
  containers:
  - name: sec-ctx-demo
    image: gcr.io/google-samples/node-hello:1.0

1
当容器或 Pod 没有指定应运行它的用户 ID 时,则生效的 UID 由发出此 Pod 的 SCC 决定。由于在默认情况下,受限 SCC 会授权给所有经过身份验证的用户,所以它可供所有用户和服务帐户使用,并在大多数情形中使用。受限 SCC 使用 MustRunAsRange 策略来约束并默认设定 securityContext.runAsUser 字段的可能值。准入插件会在当前项目上查找 openshift.io/sa.scc.uid-range 注解来填充范围字段,因为它不提供这一范围。最后,容器的 runAsUser 值等于这一范围中的第一个值,而这难以预测,因为每个项目都有不同的范围。如需更多信息,请参阅 了解预分配值和安全上下文约束

使用 Explicit runAsUser 设置

apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  securityContext:
    runAsUser: 1000 1
  containers:
    - name: sec-ctx-demo
      image: gcr.io/google-samples/node-hello:1.0

1
只有服务帐户或用户被授予对允许某一用户 ID 的 SCC 访问权限时,OpenShift Container Platform 才会接受请求该用户 ID 的容器或 Pod。SCC 允许任意 ID、属于某一范围的 ID,或特定于请求的确切用户 ID。

这可与 SELinux、fsGroup 和补充组配合使用。如需更多信息,请参阅卷 安全性。