--- 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