×
描述

SecurityContextConstraints 控制对影响将应用于容器的 SecurityContext 的请求的能力。出于历史原因,SCC 公开在核心 Kubernetes API 组下。该公开已弃用,并将 future 版本中删除 - 用户应改用 security.openshift.io 组来管理 SecurityContextConstraints。兼容性级别 1:在主要版本中至少稳定 12 个月或 3 个次要版本(以较长者为准)。

类型

对象

必需
  • allowHostDirVolumePlugin

  • allowHostIPC

  • allowHostNetwork

  • allowHostPID

  • allowHostPorts

  • allowPrivilegedContainer

  • readOnlyRootFilesystem

规范

属性 类型 描述

allowHostDirVolumePlugin

布尔值

AllowHostDirVolumePlugin 确定策略是否允许容器使用 HostDir 卷插件

allowHostIPC

布尔值

AllowHostIPC 确定策略是否允许容器中使用主机 IPC。

allowHostNetwork

布尔值

AllowHostNetwork 确定策略是否允许在 Pod 规范中使用 HostNetwork。

allowHostPID

布尔值

AllowHostPID 确定策略是否允许容器中使用主机 PID。

allowHostPorts

布尔值

AllowHostPorts 确定策略是否允许容器中使用主机端口。

allowPrivilegeEscalation

``

AllowPrivilegeEscalation 确定 Pod 是否可以请求允许权限提升。如果未指定,则默认为 true。

allowPrivilegedContainer

布尔值

AllowPrivilegedContainer 确定容器是否可以请求以特权方式运行。

allowedCapabilities

``

AllowedCapabilities 是可以请求添加到容器的功能列表。此字段中的功能可能会根据 Pod 作者的判断添加。您不得同时在 AllowedCapabilities 和 RequiredDropCapabilities 中列出功能。要允许所有功能,您可以使用 '*'。

allowedFlexVolumes

``

AllowedFlexVolumes 是允许的 Flexvolume 的白名单。空或 nil 表示可以使用的所有 Flexvolume。此参数仅在“卷”字段中允许使用 Flexvolume 时有效。

allowedUnsafeSysctls

``

AllowedUnsafeSysctls 是显式允许的不安全 sysctl 列表,默认为无。每个条目要么是简单的 sysctl 名称,要么以“*”结尾,在这种情况下,它被认为是允许的 sysctl 的前缀。单个 * 表示允许所有不安全的 sysctl。Kubelet 必须显式将所有允许的不安全 sysctl 列入白名单,以避免拒绝。示例:例如,“foo/*”允许“foo/bar”、“foo/baz”等。例如,“foo.*”允许“foo.bar”、“foo.baz”等。

apiVersion

字符串

APIVersion 定义此对象表示的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

defaultAddCapabilities

``

DefaultAddCapabilities 是将添加到容器的默认功能集,除非 Pod 规范专门删除了该功能。您不得同时在 DefaultAddCapabilities 和 RequiredDropCapabilities 中列出功能。

defaultAllowPrivilegeEscalation

``

DefaultAllowPrivilegeEscalation 控制进程是否可以获得比其父进程更多权限的默认设置。

forbiddenSysctls

``

ForbiddenSysctls 是显式禁止的 sysctl 列表,默认为无。每个条目要么是简单的 sysctl 名称,要么以“*”结尾,在这种情况下,它被认为是禁止的 sysctl 的前缀。单个 * 表示禁止所有 sysctl。示例:例如,“foo/*”禁止“foo/bar”、“foo/baz”等。例如,“foo.*”禁止“foo.bar”、“foo.baz”等。

fsGroup

``

FSGroup 是将决定 SecurityContext 使用什么 fs 组的策略。

groups

``

有权使用此安全上下文约束的组

kind

字符串

Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。不可更新。使用驼峰式命名法。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

priority

``

优先级会影响评估给定 Pod 请求时尝试哪些 SCC 的顺序(基于“用户”和“组”字段中的访问权限)。整数越大,优先级越高。未设置的值被视为 0 优先级。如果多个 SCC 的分数相等,则会按从最严格到最不严格的顺序排序。如果优先级和限制都相等,则 SCC 将按名称排序。

readOnlyRootFilesystem

布尔值

ReadOnlyRootFilesystem 设置为 true 时,将强制容器使用只读根文件系统运行。如果容器特别请求使用非只读根文件系统运行,则 SCC 应拒绝该 Pod。如果设置为 false,则容器可以选择使用只读根文件系统运行,但不会强制使用。

requiredDropCapabilities

``

RequiredDropCapabilities 是将从容器中删除的功能。这些功能必须删除,不能添加。

runAsUser

``

RunAsUser 是将决定在 SecurityContext 中使用哪个 RunAsUser 的策略。

seLinuxContext

``

SELinuxContext 是将决定在 SecurityContext 中设置哪些标签的策略。

seccompProfiles

``

SeccompProfiles 列出了允许为 Pod 或容器的 seccomp 注解设置的配置文件。未设置 (nil) 或为空值意味着 Pod 或容器可能未指定任何配置文件。“*” 通配符可用于允许所有配置文件。当用于生成 Pod 的值时,第一个非通配符配置文件将用作默认配置文件。

supplementalGroups

``

SupplementalGroups 是将决定 SecurityContext 使用哪些补充组的策略。

users

``

有权使用此安全上下文约束的用户

volumes

``

Volumes 是允许的卷插件的白名单。FSType 直接对应于 VolumeSource 的字段名称 (azureFile、configMap、emptyDir)。要允许所有卷,可以使用“*”。要禁止所有卷,设置为 ["none"]。

API 端点

提供以下 API 端点

  • /apis/security.openshift.io/v1/securitycontextconstraints

    • DELETE:删除 SecurityContextConstraints 集合

    • GET:列出 SecurityContextConstraints 对象

    • POST:创建 SecurityContextConstraints

  • /apis/security.openshift.io/v1/watch/securitycontextconstraints

    • GET:监视 SecurityContextConstraints 列表的单个更改。已弃用:改为使用列表操作中的“watch”参数。

  • /apis/security.openshift.io/v1/securitycontextconstraints/{name}

    • DELETE:删除 SecurityContextConstraints

    • GET:读取指定的 SecurityContextConstraints

    • PATCH:部分更新指定的 SecurityContextConstraints

    • PUT:替换指定的 SecurityContextConstraints

  • /apis/security.openshift.io/v1/watch/securitycontextconstraints/{name}

    • GET:监视 SecurityContextConstraints 对象的更改。已弃用:改为使用列表操作中的“watch”参数,并使用“fieldSelector”参数过滤为单个项目。

/apis/security.openshift.io/v1/securitycontextconstraints

HTTP 方法

DELETE

描述

删除 SecurityContextConstraints 集合

表 1. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出 SecurityContextConstraints 对象

表 2. HTTP 响应
HTTP 代码 响应体

200 - OK

SecurityContextConstraintsList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 SecurityContextConstraints

表 3. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何被对象静默删除的未知字段,并将忽略解码器遇到的所有重复字段(最后一个除外)。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果要从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 4. 主体参数
参数 类型 描述

body

SecurityContextConstraints 模式

表 5. HTTP 响应
HTTP 代码 响应体

200 - OK

SecurityContextConstraints 模式

201 - 已创建

SecurityContextConstraints 模式

202 - 已接受

SecurityContextConstraints 模式

401 - 未授权

/apis/security.openshift.io/v1/watch/securitycontextconstraints

HTTP 方法

GET

描述

监视 SecurityContextConstraints 列表的单个更改。已弃用:改为使用列表操作中的“watch”参数。

表 6. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/apis/security.openshift.io/v1/securitycontextconstraints/{name}

表 7. 全局路径参数
参数 类型 描述

name

字符串

SecurityContextConstraints 的名称

HTTP 方法

DELETE

描述

删除 SecurityContextConstraints

表 8. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 9. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 SecurityContextConstraints

表 10. HTTP 响应
HTTP 代码 响应体

200 - OK

SecurityContextConstraints 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 SecurityContextConstraints

表 11. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何被对象静默删除的未知字段,并将忽略解码器遇到的所有重复字段(最后一个除外)。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果要从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 12. HTTP 响应
HTTP 代码 响应体

200 - OK

SecurityContextConstraints 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 SecurityContextConstraints

表 13. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何被对象静默删除的未知字段,并将忽略解码器遇到的所有重复字段(最后一个除外)。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果要从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 14. 主体参数
参数 类型 描述

body

SecurityContextConstraints 模式

表 15. HTTP 响应
HTTP 代码 响应体

200 - OK

SecurityContextConstraints 模式

201 - 已创建

SecurityContextConstraints 模式

401 - 未授权

/apis/security.openshift.io/v1/watch/securitycontextconstraints/{name}

表 16. 全局路径参数
参数 类型 描述

name

字符串

SecurityContextConstraints 的名称

HTTP 方法

GET

描述

监视 SecurityContextConstraints 对象的更改。已弃用:改为使用列表操作中的“watch”参数,并使用“fieldSelector”参数过滤为单个项目。

表 17. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权