---
api_metadata:
apiVersion: "authorization.k8s.io/v1"
import: "k8s.io/api/authorization/v1"
kind: "SelfSubjectRulesReview"
content_type: "api_reference"
description: "SelfSubjectRulesReview 枚举当前用户可以在某命名空间内执行的操作集合。"
title: "SelfSubjectRulesReview"
weight: 3
---
`apiVersion: authorization.k8s.io/v1`
`import "k8s.io/api/authorization/v1"`
## SelfSubjectRulesReview {#SelfSubjectRulesReview}
SelfSubjectRulesReview 枚举当前用户可以在某命名空间内执行的操作集合。
返回的操作列表可能不完整,具体取决于服务器的鉴权模式以及评估过程中遇到的任何错误。
SelfSubjectRulesReview 应由 UI 用于显示/隐藏操作,或让最终用户尽快理解自己的权限。
SelfSubjectRulesReview 不得被外部系统使用以驱动鉴权决策,
因为这会引起混淆代理人(Confused deputy)、缓存有效期/吊销(Cache lifetime/revocation)和正确性问题。
SubjectAccessReview 和 LocalAccessReview 是遵从 API 服务器所做鉴权决策的正确方式。
- **apiVersion**: authorization.k8s.io/v1
- **kind**: SelfSubjectRulesReview
- **metadata** (}}">ObjectMeta)
标准的列表元数据。更多信息:
https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
- **spec** (}}">SelfSubjectRulesReviewSpec),必需
spec 包含有关正在评估的请求的信息。
- **status** (SubjectRulesReviewStatus)
status 由服务器填写,表示用户可以执行的操作的集合。
**SubjectRulesReviewStatus 包含规则检查的结果。
此检查可能不完整,具体取决于服务器配置的 Authorizer 的集合以及评估期间遇到的任何错误。
由于鉴权规则是叠加的,所以如果某个规则出现在列表中,即使该列表不完整,也可以安全地假定该主体拥有该权限。**
- **status.incomplete** (boolean),必需
当此调用返回的规则不完整时,incomplete 结果为 true。
这种情况常见于 Authorizer(例如外部 Authorizer)不支持规则评估时。
- **status.nonResourceRules** ([]NonResourceRule),必需
nonResourceRules 是允许主体对非资源执行路径执行的操作列表。
该列表顺序不重要,可以包含重复项,还可能不完整。
**nonResourceRule 包含描述非资源路径的规则的信息。**
- **status.nonResourceRules.verbs** ([]string),必需
verb 是 kubernetes 非资源 API 动作的列表,例如 get、post、put、delete、patch、head、options。
`*` 表示所有动作。
- **status.nonResourceRules.nonResourceURLs** ([]string)
nonResourceURLs 是用户应有权访问的一组部分 URL。
允许使用 `*`,但仅能作为路径中最后一段且必须用于完整的一段。
`*` 表示全部。
- **status.resourceRules** ([]ResourceRule),必需
resourceRules 是允许主体对资源执行的操作的列表。
该列表顺序不重要,可以包含重复项,还可能不完整。
**resourceRule 是允许主体对资源执行的操作的列表。该列表顺序不重要,可以包含重复项,还可能不完整。**
- **status.resourceRules.verbs** ([]string),必需
verb 是 kubernetes 资源 API 动作的列表,例如 get、list、watch、create、update、delete、proxy。
`*` 表示所有动作。
- **status.resourceRules.apiGroups** ([]string)
apiGroups 是包含资源的 APIGroup 的名称。
如果指定了多个 API 组,则允许对任何 API 组中枚举的资源之一请求任何操作。
`*` 表示所有 APIGroup。
- **status.resourceRules.resourceNames** ([]string)
resourceNames 是此规则所适用的资源名称白名单,可选。
空集合意味着允许所有资源。
`*` 表示所有资源。
- **status.resourceRules.resources** ([]string)
resources 是此规则所适用的资源的列表。
`*` 表示指定 APIGroup 中的所有资源。
`*/foo` 表示指定 APIGroup 中所有资源的子资源 "foo"。
- **status.evaluationError** (string)
evaluationError 可以与 rules 一起出现。
它表示在规则评估期间发生错误,例如 Authorizer 不支持规则评估以及 resourceRules 和/或 nonResourceRules 可能不完整。
## SelfSubjectRulesReviewSpec {#SelfSubjectRulesReviewSpec}
SelfSubjectRulesReviewSpec 定义 SelfSubjectRulesReview 的规范。
- **namespace** (string)
namespace 是要评估规则的命名空间。
必需。
## 操作 {#Operations}
### `create` 创建 SelfSubjectRulesReview
#### HTTP 请求
POST /apis/authorization.k8s.io/v1/selfsubjectrulesreviews
#### 参数
- **body**: }}">SelfSubjectRulesReview,必需
- **dryRun** (**查询参数**): string
}}">dryRun
- **fieldManager** (**查询参数**): string
}}">fieldManager
- **fieldValidation** (**查询参数**): string
}}">fieldValidation
- **pretty** (**查询参数**): string
}}">pretty
#### 响应
200 (}}">SelfSubjectRulesReview): OK
201 (}}">SelfSubjectRulesReview): Created
202 (}}">SelfSubjectRulesReview): Accepted
401: Unauthorized