SelfSubjectAccessReview
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
SelfSubjectAccessReview
SelfSubjectAccessReview 检查当前用户是否可以执行操作。不填写 spec.namespace 表示“在所有命名空间中”。Self 是一个特例,因为用户应该始终能够检查他们是否可以执行操作
apiVersion: authorization.k8s.io/v1
kind: SelfSubjectAccessReview
metadata (ObjectMeta)
标准列表元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (SelfSubjectAccessReviewSpec),必需
Spec 保存有关正在评估的请求的信息。用户和组必须为空
status (SubjectAccessReviewStatus)
Status 由服务器填充,并指示是否允许该请求
SelfSubjectAccessReviewSpec
SelfSubjectAccessReviewSpec 是对访问请求的描述。必须设置 ResourceAuthorizationAttributes 和 NonResourceAuthorizationAttributes 中的一个
nonResourceAttributes (NonResourceAttributes)
NonResourceAttributes 描述了非资源访问请求的信息
NonResourceAttributes 包括可用于向授权器接口发出非资源请求的授权属性
nonResourceAttributes.path (字符串)
Path 是请求的 URL 路径
nonResourceAttributes.verb (字符串)
Verb 是标准 HTTP 动词
resourceAttributes (ResourceAttributes)
ResourceAuthorizationAttributes 描述了资源访问请求的信息
ResourceAttributes 包括可用于向授权器接口发出资源请求的授权属性
resourceAttributes.fieldSelector (FieldSelectorAttributes)
fieldSelector 描述了基于字段的访问限制。它只能限制访问,而不能扩大访问范围。
此字段为 Alpha 级别。要使用此字段,您必须启用
AuthorizeWithSelectors
功能门(默认禁用)。FieldSelectorAttributes 指示字段限制的访问。鼓励 Webhook 作者 * 确保未同时设置 rawSelector 和 requirements * 如果设置了 requirements 字段则考虑该字段 * 如果设置了 rawSelector 字段则不要尝试解析或考虑该字段。这是为了避免另一个 CVE-2022-2880(即,让不同的系统就如何准确解析查询达成一致并非我们所希望的),有关更多详细信息,请参阅 https://www.oxeye.io/resources/golang-parameter-smuggling-attack。对于 kube-apiserver 的 *SubjectAccessReview 端点:* 如果 rawSelector 为空且 requirements 为空,则请求不受限制。* 如果存在 rawSelector 且 requirements 为空,则将在解析成功的情况下解析和限制 rawSelector。* 如果 rawSelector 为空且存在 requirements,则应遵守 requirements * 如果存在 rawSelector 和 requirements,则请求无效。
resourceAttributes.fieldSelector.rawSelector (字符串)
rawSelector 是将包含在查询参数中的字段选择器的序列化。鼓励 Webhook 实现忽略 rawSelector。kube-apiserver 的 *SubjectAccessReview 将解析 rawSelector,只要不存在 requirements。
resourceAttributes.fieldSelector.requirements ([]FieldSelectorRequirement)
原子操作:将在合并期间替换
requirements 是对字段选择器的解析解释。要使资源实例与选择器匹配,必须满足所有要求。Webhook 实现应处理 requirements,但如何处理取决于 webhook。由于 requirements 只能限制请求,因此如果无法理解 requirements,则可以安全地授权为无限制的请求。
FieldSelectorRequirement 是一个选择器,其中包含值、键和关联键和值的运算符。
resourceAttributes.fieldSelector.requirements.key (字符串),必需
key 是 requirements 应用的字段选择器键。
resourceAttributes.fieldSelector.requirements.operator (字符串),必需
operator 表示键与一组值的关系。有效运算符为 In、NotIn、Exists、DoesNotExist。运算符列表将来可能会增加。
resourceAttributes.fieldSelector.requirements.values ([]字符串)
原子操作:将在合并期间替换
values 是一个字符串值数组。如果运算符为 In 或 NotIn,则 values 数组必须为非空。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。
resourceAttributes.group (字符串)
Group 是资源的 API 组。“*”表示所有。
resourceAttributes.labelSelector (LabelSelectorAttributes)
labelSelector 描述了基于标签的访问限制。它只能限制访问,而不能扩大访问范围。
此字段为 Alpha 级别。要使用此字段,您必须启用
AuthorizeWithSelectors
功能门(默认禁用)。LabelSelectorAttributes 指示标签限制的访问。鼓励 Webhook 作者 * 确保未同时设置 rawSelector 和 requirements * 如果设置了 requirements 字段则考虑该字段 * 如果设置了 rawSelector 字段则不要尝试解析或考虑该字段。这是为了避免另一个 CVE-2022-2880(即,让不同的系统就如何准确解析查询达成一致并非我们所希望的),有关更多详细信息,请参阅 https://www.oxeye.io/resources/golang-parameter-smuggling-attack。对于 kube-apiserver 的 *SubjectAccessReview 端点:* 如果 rawSelector 为空且 requirements 为空,则请求不受限制。* 如果存在 rawSelector 且 requirements 为空,则将在解析成功的情况下解析和限制 rawSelector。* 如果 rawSelector 为空且存在 requirements,则应遵守 requirements * 如果存在 rawSelector 和 requirements,则请求无效。
resourceAttributes.labelSelector.rawSelector (字符串)
rawSelector 是将包含在查询参数中的字段选择器的序列化。鼓励 Webhook 实现忽略 rawSelector。kube-apiserver 的 *SubjectAccessReview 将解析 rawSelector,只要不存在 requirements。
resourceAttributes.labelSelector.requirements ([]LabelSelectorRequirement)
原子操作:将在合并期间替换
requirements 是对标签选择器的解析解释。要使资源实例与选择器匹配,必须满足所有要求。Webhook 实现应处理 requirements,但如何处理取决于 webhook。由于 requirements 只能限制请求,因此如果无法理解 requirements,则可以安全地授权为无限制的请求。
标签选择器要求是一个选择器,其中包含值、键和关联键和值的运算符。
resourceAttributes.labelSelector.requirements.key (字符串),必需
key 是选择器应用到的标签键。
resourceAttributes.labelSelector.requirements.operator (字符串),必需
operator 表示键与一组值的关系。有效运算符为 In、NotIn、Exists 和 DoesNotExist。
resourceAttributes.labelSelector.requirements.values ([]字符串)
原子操作:将在合并期间替换
values 是一个字符串值数组。如果运算符为 In 或 NotIn,则 values 数组必须为非空。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在战略合并补丁期间被替换。
resourceAttributes.name (字符串)
Name 是要为“get”请求的资源的名称,或为“delete”删除的资源的名称。“”(空)表示全部。
resourceAttributes.namespace (字符串)
Namespace 是所请求操作的命名空间。当前,无命名空间与所有命名空间之间没有区别 "" (空) 对于 LocalSubjectAccessReviews 默认为 "" (空) 对于集群范围的资源为空 "" (空) 对于 SubjectAccessReview 或 SelfSubjectAccessReview 的命名空间范围的资源表示“所有”
resourceAttributes.resource (字符串)
Resource 是现有资源类型之一。“*”表示所有。
resourceAttributes.subresource (字符串)
Subresource 是现有资源类型之一。“”表示无。
resourceAttributes.verb (字符串)
Verb 是 kubernetes 资源 API 动词,例如:get、list、watch、create、update、delete、proxy。“*”表示所有。
resourceAttributes.version (字符串)
Version 是资源的 API 版本。“*”表示所有。
操作
create
创建 SelfSubjectAccessReview
HTTP 请求
POST /apis/authorization.k8s.io/v1/selfsubjectaccessreviews
参数
body: SelfSubjectAccessReview,必需
dryRun (在查询中): 字符串
fieldManager (在查询中): 字符串
fieldValidation (在查询中): 字符串
pretty (在查询中): 字符串
响应
200 (SelfSubjectAccessReview): OK
201 (SelfSubjectAccessReview): 已创建
202 (SelfSubjectAccessReview): 已接受
401: 未经授权
此页面是自动生成的。
如果您计划报告此页面存在问题,请在您的问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。