From b0bb2010825605821c5049700c5e21ddadac7f0c Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 26 May 2022 10:10:25 +0800 Subject: [PATCH] [zh] sync 1.24 ref-k8s-api /authorization-resources/self-subject-*.md --- .../self-subject-access-review-v1.md | 230 +++++++++++++ .../self-subject-rules-review-v1.md | 246 ++++++++++++++ .../subject-access-review-v1.md | 301 ++++++++++++++++++ 3 files changed, 777 insertions(+) create mode 100644 content/zh/docs/reference/kubernetes-api/authorization-resources/self-subject-access-review-v1.md create mode 100644 content/zh/docs/reference/kubernetes-api/authorization-resources/self-subject-rules-review-v1.md create mode 100644 content/zh/docs/reference/kubernetes-api/authorization-resources/subject-access-review-v1.md diff --git a/content/zh/docs/reference/kubernetes-api/authorization-resources/self-subject-access-review-v1.md b/content/zh/docs/reference/kubernetes-api/authorization-resources/self-subject-access-review-v1.md new file mode 100644 index 0000000000..164a054c41 --- /dev/null +++ b/content/zh/docs/reference/kubernetes-api/authorization-resources/self-subject-access-review-v1.md @@ -0,0 +1,230 @@ +--- +api_metadata: + apiVersion: "authorization.k8s.io/v1" + import: "k8s.io/api/authorization/v1" + kind: "SelfSubjectAccessReview" +content_type: "api_reference" +description: "SelfSubjectAccessReview 检查当前用户是否可以执行某操作。" +title: "SelfSubjectAccessReview" +weight: 2 +--- + +`apiVersion: authorization.k8s.io/v1` + +`import "k8s.io/api/authorization/v1"` + +## SelfSubjectAccessReview {#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 包含有关正在评估的请求的信息。 + user 和 group 必须为空。 + +- **status** (}}">SubjectAccessReviewStatus) + + status 由服务器填写,表示请求是否被允许。 + +## SelfSubjectAccessReviewSpec {#SelfSubjectAccessReviewSpec} + +SelfSubjectAccessReviewSpec 是访问请求的描述。 +resourceAuthorizationAttributes 和 nonResourceAuthorizationAttributes 二者必须设置其一,并且只能设置其一。 + +
+ + +- **nonResourceAttributes** (NonResourceAttributes) + + nonResourceAttributes 描述非资源访问请求的信息。 + + + **nonResourceAttributes 包括提供给 Authorizer 接口进行非资源请求鉴权时所用的属性。** + + - **nonResourceAttributes.path** (string) + + path 是请求的 URL 路径。 + + - **nonResourceAttributes.verb** (string) + + verb 是标准的 HTTP 动作。 + +- **resourceAttributes** (ResourceAttributes) + + resourceAuthorizationAttributes 描述资源访问请求的信息。 + + + **resourceAttributes 包括提供给 Authorizer 接口进行资源请求鉴权时所用的属性。** + + - **resourceAttributes.group** (string) + + group 是资源的 API 组。 + "*" 表示所有组。 + + - **resourceAttributes.name** (string) + + name 是 "get" 正在请求或 "delete" 已删除的资源的名称。 + ""(空字符串)表示所有资源。 + + - **resourceAttributes.namespace** (string) + + namespace 是正在请求的操作的命名空间。 + 目前,无命名空间和所有命名空间之间没有区别。 + 对于 LocalSubjectAccessReviews,默认为 ""(空字符串)。 + 对于集群范围的资源,默认为 ""(空字符串)。 + 对于来自 SubjectAccessReview 或 SelfSubjectAccessReview 的命名空间范围的资源,""(空字符串)表示 "all"(所有资源)。 + + - **resourceAttributes.resource** (string) + + resource 是现有的资源类别之一。 + "*" 表示所有资源类别。 + + - **resourceAttributes.subresource** (string) + + subresource 是现有的资源类型之一。 + "" 表示无。 + + - **resourceAttributes.verb** (string) + + verb 是 kubernetes 资源 API 动作,例如 get、list、watch、create、update、delete、proxy。 + "*" 表示所有动作。 + + - **resourceAttributes.version** (string) + + version 是资源的 API 版本。 + "*" 表示所有版本。 + +## 操作 {#Operations} + +
+ +### `create` 创建 SelfSubjectAccessReview + +#### HTTP 请求 + +POST /apis/authorization.k8s.io/v1/selfsubjectaccessreviews + +#### 参数 + +- **body**: }}">SelfSubjectAccessReview,必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **pretty** (**查询参数**): string + + }}">pretty + +#### 响应 + +200 (}}">SelfSubjectAccessReview): OK + +201 (}}">SelfSubjectAccessReview): Created + +202 (}}">SelfSubjectAccessReview): Accepted + +401: Unauthorized diff --git a/content/zh/docs/reference/kubernetes-api/authorization-resources/self-subject-rules-review-v1.md b/content/zh/docs/reference/kubernetes-api/authorization-resources/self-subject-rules-review-v1.md new file mode 100644 index 0000000000..e4c39decdc --- /dev/null +++ b/content/zh/docs/reference/kubernetes-api/authorization-resources/self-subject-rules-review-v1.md @@ -0,0 +1,246 @@ +--- +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 diff --git a/content/zh/docs/reference/kubernetes-api/authorization-resources/subject-access-review-v1.md b/content/zh/docs/reference/kubernetes-api/authorization-resources/subject-access-review-v1.md new file mode 100644 index 0000000000..be42036d46 --- /dev/null +++ b/content/zh/docs/reference/kubernetes-api/authorization-resources/subject-access-review-v1.md @@ -0,0 +1,301 @@ +--- +api_metadata: + apiVersion: "authorization.k8s.io/v1" + import: "k8s.io/api/authorization/v1" + kind: "SubjectAccessReview" +content_type: "api_reference" +description: "SubjectAccessReview 检查用户或组是否可以执行某操作。" +title: "SubjectAccessReview" +weight: 4 +--- + + +`apiVersion: authorization.k8s.io/v1` + +`import "k8s.io/api/authorization/v1"` + +## SubjectAccessReview {#SubjectAccessReview} + +SubjectAccessReview 检查用户或组是否可以执行某操作。 + +
+ +- **apiVersion**: authorization.k8s.io/v1 + +- **kind**: SubjectAccessReview + +- **metadata** (}}">ObjectMeta) + + 标准的列表元数据。 + 更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + +- **spec** (}}">SubjectAccessReviewSpec),必需 + + spec 包含有关正在评估的请求的信息。 + +- **status** (}}">SubjectAccessReviewStatus) + + status 由服务器填写,表示请求是否被允许。 + +## SubjectAccessReviewSpec {#SubjectAccessReviewSpec} + +SubjectAccessReviewSpec 是访问请求的描述。 +resourceAuthorizationAttributes 和 nonResourceAuthorizationAttributes 二者必须设置其一,并且只能设置其一。 + +
+ + +- **extra** (map[string][]string) + + extra 对应于来自鉴权器的 user.Info.GetExtra() 方法。 + 由于这是针对 Authorizer 的输入,所以它需要在此处反映。 + +- **groups** ([]string) + + groups 是你正在测试的组。 + +- **nonResourceAttributes** (NonResourceAttributes) + + nonResourceAttributes 描述非资源访问请求的信息。 + + + **nonResourceAttributes 包括提供给 Authorizer 接口进行非资源请求鉴权时所用的属性。** + + - **nonResourceAttributes.path** (string) + + path 是请求的 URL 路径。 + + - **nonResourceAttributes.verb** (string) + + verb 是标准的 HTTP 动作。 + +- **resourceAttributes** (ResourceAttributes) + + resourceAuthorizationAttributes 描述资源访问请求的信息。 + + + **resourceAttributes 包括提供给 Authorizer 接口进行资源请求鉴权时所用的属性。** + + - **resourceAttributes.group** (string) + + group 是资源的 API 组。 + "*" 表示所有资源。 + + - **resourceAttributes.name** (string) + + name 是 "get" 正在请求或 "delete" 已删除的资源。 + ""(空字符串)表示所有资源。 + + - **resourceAttributes.namespace** (string) + + namespace 是正在请求的操作的命名空间。 + 目前,无命名空间和所有命名空间之间没有区别。 + 对于 LocalSubjectAccessReviews,默认为 ""(空字符串)。 + 对于集群范围的资源,默认为 ""(空字符串)。 + 对于来自 SubjectAccessReview 或 SelfSubjectAccessReview 的命名空间范围的资源, + ""(空字符串)表示 "all"(所有资源)。 + + - **resourceAttributes.resource** (string) + + resource 是现有的资源类别之一。 + "*" 表示所有资源类别。 + + - **resourceAttributes.subresource** (string) + + subresource 是现有的资源类别之一。 + "" 表示无子资源。 + + - **resourceAttributes.verb** (string) + + verb 是 kubernetes 资源的 API 动作,例如 get、list、watch、create、update、delete、proxy。 + "*" 表示所有动作。 + + - **resourceAttributes.version** (string) + + version 是资源的 API 版本。 + "*" 表示所有版本。 + +- **uid** (string) + + 有关正在请求的用户的 UID 信息。 + +- **user** (string) + + user 是你正在测试的用户。 + 如果你指定 “user” 而不是 “groups”,它将被解读为“如果 user 不是任何组的成员,将会怎样”。 + +## SubjectAccessReviewStatus {#SubjectAccessReviewStatus} + +SubjectAccessReviewStatus + +
+ + +- **allowed** (boolean),必需 + + allowed 是必需的。 + 如果允许该操作,则为 true,否则为 false。 + +- **denied** (boolean) + + denied 是可选的。 + 如果拒绝该操作,则为 true,否则为 false。 + 如果 allowed 和 denied 均为 false,则 Authorizer 对是否鉴权操作没有意见。 + 如果 allowed 为 true,则 denied 不能为 true。 + +- **evaluationError** (string) + + evaluationError 表示鉴权检查期间发生一些错误。 + 出现错误的情况下完全有可能继续确定鉴权状态。 + 例如,RBAC 可能缺少一个角色,但仍存在足够多的角色进行绑定,进而了解请求有关的原因。 + +- **reason** (string) + + reason 是可选的。 + 它表示为什么允许或拒绝请求。 + +## 操作 {#Operations} + +
+ +### `create` 创建 SubjectAccessReview + +#### HTTP 请求 + +POST /apis/authorization.k8s.io/v1/subjectaccessreviews + +#### 参数 + +- **body**: }}">SubjectAccessReview,必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">SubjectAccessReview): OK + +201 (}}">SubjectAccessReview): Created + +202 (}}">SubjectAccessReview): Accepted + +401: Unauthorized