9.5. SubjectAccessReview [authorization.k8s.io/v1]
- 描述
- SubjectAccessReview 检查一个用户或组是否可以执行一个操作。
- 类型
-
object
- 必填
-
spec
-
9.5.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准列表元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| SubjectAccessReviewSpec 是访问请求的描述。必须设置 ResourceAuthorizationAttributes 和 NonResourceAuthorizationAttributes 之一 |
|
| SubjectAccessReviewStatus |
9.5.1.1. .spec
- 描述
- SubjectAccessReviewSpec 是访问请求的描述。必须设置 ResourceAuthorizationAttributes 和 NonResourceAuthorizationAttributes 之一
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| Extra 对应于验证器中的 user.Info.GetExtra() 方法。由于这是对授权者的输入,因此需要反映在此处。 |
|
| |
|
| Groups 是您要测试的组。 |
|
| nonResourceAttributes 包括可用于对 Authorizer 接口的非资源请求的授权属性 |
|
| ResourceAttributes 包含对 Authorizer 接口的资源请求的授权属性 |
|
| 有关请求用户的 UID 信息。 |
|
| 用户是您正在测试的用户。如果您指定了 "User" 而不是 "Groups",那么它将解释为"如果用户不是任何组的成员 |
9.5.1.2. .spec.extra
- 描述
- Extra 对应于验证器中的 user.Info.GetExtra() 方法。由于这是对授权者的输入,因此需要反映在此处。
- 类型
-
object
9.5.1.3. .spec.nonResourceAttributes
- 描述
- nonResourceAttributes 包括可用于对 Authorizer 接口的非资源请求的授权属性
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| Path 是请求的 URL 路径 |
|
| Verb 是标准 HTTP 动词 |
9.5.1.4. .spec.resourceAttributes
- 描述
- ResourceAttributes 包含对 Authorizer 接口的资源请求的授权属性
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| Group 是 Resource 的 API 组。"*"代表所有。 |
|
| Name 是为"get"请求的资源的名称,或删除"delete"。"" (空)表示全部。 |
|
| namespace 是所请求操作的命名空间。目前,对于集群范围的资源 "" (empty),没有命名空间和所有命名空间"" (空)之间的差别,对于集群范围的资源 "" (空)代表"all"表示来自 SubjectAccessReview 或 SelfSubjectAccessReview 的命名空间范围资源 |
|
| 资源是现有资源类型之一。"*"表示全部。 |
|
| 子资源是现有资源类型之一。""表示 none。 |
|
| verb 是一个 kubernetes 资源 API 动词,如: get, list, watch, create, update, delete, proxy. "*" 表示所有。 |
|
| version 是资源的 API 版本。"*"表示所有。 |
9.5.1.5. .status
- 描述
- SubjectAccessReviewStatus
- 类型
-
object
- 必填
-
allowed
-
属性 | 类型 | 描述 |
---|---|---|
|
| Allowed 是必需的。True 代表操作被允许,false 代表不允许。 |
|
| Denied 是可选的。如果被拒绝,则为 True,否则为 false。如果 allowed 和 denied 都为 false,则授权器没有对是否授权该操作的建议。如果 Allowed 为 true,则 Denied 可能不是 true。 |
|
| EvaluationError 代表了在授权检查过程中发生了一些错误。完全有可能,在获得错误的情况下,可以继续确定授权状态。例如,RBAC 可能会缺少角色,但仍然存在足够的角色,并绑定到有关请求的原因。 |
|
| reason 是可选的。它表示请求被允许或拒绝的原因。 |
9.5.2. API 端点
可用的 API 端点如下:
/apis/authorization.k8s.io/v1/subjectaccessreviews
-
POST
: 创建一个 SubjectAccessReview
-
9.5.2.1. /apis/authorization.k8s.io/v1/subjectaccessreviews
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
|
| 如果为 'true',则输出会经过 pretty print 处理。 |
- HTTP 方法
-
POST
- 描述
- 创建一个 SubjectAccessReview
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |