×
描述

SubjectAccessReview 检查用户或组是否可以执行操作。

类型

对象

必需
  • spec

规范

属性 类型 描述

apiVersion

字符串

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

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

spec

对象

SubjectAccessReviewSpec 是访问请求的描述。必须设置 ResourceAuthorizationAttributes 和 NonResourceAuthorizationAttributes 中的一个。

status

对象

SubjectAccessReviewStatus

.spec

描述

SubjectAccessReviewSpec 是访问请求的描述。必须设置 ResourceAuthorizationAttributes 和 NonResourceAuthorizationAttributes 中的一个。

类型

对象

属性 类型 描述

extra

对象

extra 对应于身份验证器中的 user.Info.GetExtra() 方法。由于它是授权器的输入,因此需要在此处进行反射。

extra{}

数组(字符串)

groups

数组(字符串)

Groups 是您正在测试的组。

nonResourceAttributes

对象

NonResourceAttributes 包含可用于对 Authorizer 接口进行非资源请求的授权属性。

resourceAttributes

对象

ResourceAttributes 包含可用于对 Authorizer 接口进行资源请求的授权属性。

uid

字符串

关于请求用户的 UID 信息。

user

字符串

User 是您正在测试的用户。如果您指定“User”但未指定“Groups”,则将其解释为“如果 User 不是任何组的成员会怎样”。

.spec.extra

描述

extra 对应于身份验证器中的 user.Info.GetExtra() 方法。由于它是授权器的输入,因此需要在此处进行反射。

类型

对象

.spec.nonResourceAttributes

描述

NonResourceAttributes 包含可用于对 Authorizer 接口进行非资源请求的授权属性。

类型

对象

属性 类型 描述

path

字符串

Path 是请求的 URL 路径。

verb(动词)

字符串

Verb 是标准的 HTTP 动词。

.spec.resourceAttributes

描述

ResourceAttributes 包含可用于对 Authorizer 接口进行资源请求的授权属性。

类型

对象

属性 类型 描述

group(组)

字符串

Group 是资源的 API 组。“*” 表示所有。

name(名称)

字符串

Name 是针对“get”请求获取的资源名称,或针对“delete”请求删除的资源名称。“”(空)表示所有。

namespace(命名空间)

字符串

Namespace 是请求操作的命名空间。目前,没有命名空间和所有命名空间之间没有区别。“”(空)对于 LocalSubjectAccessReviews 默认为空;对于集群范围的资源,“”(空)为空;对于来自 SubjectAccessReview 或 SelfSubjectAccessReview 的命名空间范围的资源,“”(空)表示“所有”。

resource(资源)

字符串

Resource 是现有资源类型之一。“*” 表示所有。

subresource(子资源)

字符串

Subresource 是现有资源类型之一。“”表示无。

verb(动词)

字符串

Verb 是 Kubernetes 资源 API 动词,例如:get、list、watch、create、update、delete、proxy。“*” 表示所有。

version(版本)

字符串

Version 是资源的 API 版本。“*” 表示所有。

.status

描述

SubjectAccessReviewStatus

类型

对象

必需
  • allowed(允许)

属性 类型 描述

allowed(允许)

布尔值

Allowed 是必需的。如果操作允许,则为 True,否则为 False。

denied(拒绝)

布尔值

Denied 是可选的。如果操作被拒绝,则为 True,否则为 False。如果 allowed 为 False 且 denied 为 False,则授权器对是否授权操作没有意见。如果 Allowed 为 True,则 Denied 不能为 True。

evaluationError(评估错误)

字符串

EvaluationError 表示授权检查期间发生了一些错误。即使出现错误,仍然可以继续确定授权状态。例如,RBAC 可能缺少角色,但仍然存在足够的绑定角色来判断请求。

reason(原因)

字符串

Reason 是可选的。它指明了请求被允许或拒绝的原因。

API 端点

提供以下 API 端点:

  • /apis/authorization.k8s.io/v1/subjectaccessreviews

    • POST:创建 SubjectAccessReview

/apis/authorization.k8s.io/v1/subjectaccessreviews

表 1. 全局查询参数
参数 类型 描述

dryRun

字符串

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

fieldValidation

字符串

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

HTTP 方法

POST

描述

创建 SubjectAccessReview

表 2. 请求体参数
参数 类型 描述

body

SubjectAccessReview 模式

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

200 - OK

SubjectAccessReview 模式

201 - Created

SubjectAccessReview 模式

202 - Accepted

SubjectAccessReview 模式

401 - Unauthorized