diff --git a/content/zh-cn/docs/reference/access-authn-authz/service-accounts-admin.md b/content/zh-cn/docs/reference/access-authn-authz/service-accounts-admin.md index 6d2f971a13e..db16b934854 100644 --- a/content/zh-cn/docs/reference/access-authn-authz/service-accounts-admin.md +++ b/content/zh-cn/docs/reference/access-authn-authz/service-accounts-admin.md @@ -91,9 +91,11 @@ Kubernetes 区分用户账号和服务账号的概念,主要基于以下原因 onboard human users makes it easier for workloads to following the principle of least privilege. --> -- 通常情况下,集群的用户账号可能会从企业数据库进行同步,创建新用户需要特殊权限,并且涉及到复杂的业务流程。 +- 通常情况下,集群的用户账号可能会从企业数据库进行同步, + 创建新用户需要特殊权限,并且涉及到复杂的业务流程。 服务账号创建有意做得更轻量,允许集群用户为了具体的任务按需创建服务账号。 - 将 ServiceAccount 的创建与新用户注册的步骤分离开来,使工作负载更易于遵从权限最小化原则。 + 将 ServiceAccount 的创建与新用户注册的步骤分离开来, + 使工作负载更易于遵从权限最小化原则。 -没有特定的机制可以使通过 TokenRequest 签发的令牌无效。如果你不再信任为某个 Pod 绑定的服务账号令牌, +没有特定的机制可以使通过 TokenRequest 签发的令牌无效。 +如果你不再信任为某个 Pod 绑定的服务账号令牌, 你可以删除该 Pod。删除 Pod 将使其绑定的服务账号令牌过期。 {{< /note >}} @@ -211,9 +214,10 @@ The tokens obtained using this method have bounded lifetimes, and are automatica invalidated when the Pod they are mounted into is deleted. --> 在包括 Kubernetes v{{< skew currentVersion >}} 在内最近的几个版本中,使用 -[TokenRequest](/zh-cn/docs/reference/kubernetes-api/authentication-resources/token-request-v1/) API -[直接获得](#bound-service-account-token-volume) API 凭据,并使用投射卷挂载到 Pod 中。 -使用这种方法获得的令牌具有绑定的生命周期,当挂载的 Pod 被删除时这些令牌将自动失效。 +[TokenRequest](/zh-cn/docs/reference/kubernetes-api/authentication-resources/token-request-v1/) +API [直接获得](#bound-service-account-token-volume) API 凭据, +并使用投射卷挂载到 Pod 中。使用这种方法获得的令牌具有绑定的生命周期, +当挂载的 Pod 被删除时这些令牌将自动失效。 +## 控制平面细节 {#control-plane-details} + +ServiceAccount 控制器管理名字空间内的 ServiceAccount, +并确保每个活跃的名字空间中都存在名为 `default` 的 ServiceAccount。 + + -## 控制平面细节 {#control-plane-details} - ### 令牌控制器 {#token-controller} 服务账号令牌控制器作为 `kube-controller-manager` 的一部分运行,以异步的形式工作。 其职责包括: - 监测 ServiceAccount 的删除并删除所有相应的服务账号令牌 Secret。 -- 监测服务账号令牌 Secret 的添加,保证相应的 ServiceAccount 存在,如有需要, - 向 Secret 中添加令牌。 +- 监测服务账号令牌 Secret 的添加,保证相应的 ServiceAccount 存在, + 如有需要,向 Secret 中添加令牌。 - 监测服务账号令牌 Secret 的删除,如有需要,从相应的 ServiceAccount 中移除引用。 -你必须通过 `--service-account-private-key-file` 标志为 `kube-controller-manager` -的令牌控制器传入一个服务账号私钥文件。该私钥用于为所生成的服务账号令牌签名。 -同样地,你需要通过 `--service-account-key-file` 标志将对应的公钥通知给 +你必须通过 `--service-account-private-key-file` 标志为 +`kube-controller-manager`的令牌控制器传入一个服务账号私钥文件。 +该私钥用于为所生成的服务账号令牌签名。同样地,你需要通过 +`--service-account-key-file` 标志将对应的公钥通知给 kube-apiserver。公钥用于在身份认证过程中校验令牌。 要为 ServiceAccount 创建一个不过期、持久化的 API 令牌, -请创建一个类型为 `kubernetes.io/service-account-token` 的 Secret,附带引用 ServiceAccount 的注解。 -控制平面随后生成一个长久的令牌,并使用生成的令牌数据更新该 Secret。 +请创建一个类型为 `kubernetes.io/service-account-token` 的 Secret, +附带引用 ServiceAccount 的注解。控制平面随后生成一个长久的令牌, +并使用生成的令牌数据更新该 Secret。 以下是此类 Secret 的示例清单: @@ -491,7 +506,7 @@ token: ... If you launch a new Pod into the `examplens` namespace, it can use the `myserviceaccount` service-account-token Secret that you just created. --> -如果你在 `examplens` 名字空间中启动新的 Pod,可以使用你刚刚创建的 +如果你在 `examplens` 名字空间中启动一个新的 Pod,它可以使用你刚刚创建的 `myserviceaccount` service-account-token Secret。 -## 控制平面细节 {#control-plane-details} - -### ServiceAccount 控制器 {#serviceaccount-controller} - -ServiceAccount 控制器管理名字空间内的 ServiceAccount,并确保每个活跃的名字空间中都存在名为 -“default” 的 ServiceAccount。 - - -### 令牌控制器 - -服务账号令牌控制器作为 `kube-controller-manager` 的一部分运行,以异步的形式工作。 -其职责包括: - -- 监测 ServiceAccount 的创建并创建相应的服务账号令牌 Secret 以允许 API 访问。 -- 监测 ServiceAccount 的删除并删除所有相应的服务账号令牌 Secret。 -- 监测服务账号令牌 Secret 的添加,保证相应的 ServiceAccount 存在,如有需要, - 向 Secret 中添加令牌。 -- 监测 Secret 的删除,如有需要,从相应的 ServiceAccount 中移除引用。 - - -你必须通过 `--service-account-private-key-file` 标志为 `kube-controller-manager` -的令牌控制器传入一个服务账号私钥文件。该私钥用于为所生成的服务账号令牌签名。 -同样地,你需要通过 `--service-account-key-file` 标志将对应的公钥通知给 -kube-apiserver。公钥用于在身份认证过程中校验令牌。 - ## {{% heading "whatsnext" %}}