本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

使用 API 令牌

Deprecation of v3 API tokens

Rancher v2.13 introduced a new token resource in the ext.cattle.io API group to serve as the public API for tokens, which was only accessible through kubectl.

Starting with Rancher v2.14.1:

  • Legacy v3 API tokens (tokens.management.cattle.io) are being phased out and scheduled for removal in a future release. If you currently rely on legacy tokens for automation or API access, transition to the new tokens.ext.cattle.io tokens to ensure continued compatibility.

  • The Rancher dashboard provides basic support for tokens.ext.cattle.io (create, view or list, and delete).

Rancher v2.8.0 引入了 Rancher Kubernetes API,可以通过 kubectl 管理 Rancher 资源。本页面涵盖与 Rancher CLIkubeconfig 文件、Terraform 和 v3 API 浏览器 一起使用的 API 词元的信息。

默认情况下,某些集群级 API 词元的有效期为无限 (ttl=0)。换句话说,具有 ttl=0 的 API 词元不会过期,除非您使其失效。更改密码不会使词元失效。

您可以通过删除词元或停用用户帐户来停用 API 词元。

删除词元

要删除令牌:

  1. 前往 Rancher API 视图中的所有令牌列表,地址为 https://<Rancher-Server-IP>/v3/tokens

  2. 通过其 ID 访问您想要删除的令牌。例如,https://<Rancher-Server-IP>/v3/tokens/kubectl-shell-user-vqkqt

  3. 单击 删除

以下是使用 ttl=0 生成的词元的完整列表:

令牌 说明

kubectl-shell-*

在浏览器中访问 kubectl 外壳

agent-*

用于代理部署的词元

compose-token-*

用于编排的词元

helm-token-*

用于 Helm 图表部署的词元

drain-node-*

用于排水的词元(Rancher 使用 kubectl 进行排水,因为没有原生的 Kubernetes API)。

设置 Kubeconfig 词元的 TTL

管理员可以为 Kubeconfig 词元设置全局生存时间(TTL)。通过导航到全局设置并将 kubeconfig-default-token-ttl-minutes 设置为所需的分钟数,可以更改默认的 kubeconfig TTL。从 Rancher v2.8 开始,kubeconfig-default-token-ttl-minutes 的默认值为 43200,这意味着词元在 30 天后过期。

此设置适用于所有 kubeconfig 词元,除了由 CLI 创建的 生成 kubeconfig 词元

在生成的 Kubeconfigs 中禁用词元

kubeconfig-generate-token 设置为 false。此设置指示 Rancher 在用户点击下载 kubeconfig 文件时不再自动生成词元。当此设置被禁用时,生成的 kubeconfig 引用 Rancher CLI 以获取集群的短期词元。当在客户端(如 kubectl)中使用此 kubeconfig 时,需要安装 Rancher CLI 以完成登录请求。

词元哈希

您可以 启用词元哈希,词元将使用 SHA256 算法进行单向哈希处理。这是一个不可逆的过程:一旦启用,此功能无法禁用。您应首先在测试环境中评估此设置,并/或在启用之前进行备份。

此功能影响所有词元,包括但不限于以下内容:

  • Kubeconfig 词元

  • Bearer 词元 API 密钥/调用

  • 内部操作使用的词元

词元设置

这些全局设置影响 Rancher 词元的行为。

设置 说明

auth-user-session-ttl-minutes

用户身份验证会话词元的 TTL(以分钟为单位)。

auth-user-session-idle-ttl-minutes

用户身份验证会话词元的 TTL(以分钟为单位),在没有用户活动的情况下。

kubeconfig-default-token-ttl-minutes

默认 TTL 应用于所有 kubeconfig 词元,除了 由 Rancher CLI 生成的词元

auth-token-max-ttl-minutes

除受 auth-user-session-ttl-minutes 控制的词元外,所有词元的最大生存时间(TTL)。

kubeconfig-generate-token

如果为真,当用户下载 kubeconfig 时,自动生成词元。

auth-user-session-ttl-minutes

生存时间(TTL)持续时间(以分钟为单位),用于确定用户身份验证会话词元何时过期。过期后,用户必须登录并获取新词元。此设置不受 auth-token-max-ttl-minutes 的影响。当用户登录到 Rancher 时,会创建会话词元。

auth-user-session-idle-ttl-minutes

在没有用户活动的情况下,登录会话词元的生存时间(TTL),以分钟为单位。 默认情况下,auth-user-session-idle-ttl-minutes 设置为与 auth-user-session-ttl-minutes 相同的值(为了向后兼容)。它绝不能超过 auth-user-session-ttl-minutes 的值。

kubeconfig-default-token-ttl-minutes

生存时间(TTL)持续时间(以分钟为单位),用于确定 kubeconfig 词元何时过期。当词元过期时,API 会拒绝该词元。此设置不能大于 auth-token-max-ttl-minutes。此设置适用于在请求的 kubeconfig 文件中生成的词元,除了 由 Rancher CLI 生成的词元。截至 Rancher v2.8,默认持续时间为 43200,这意味着词元在 30 天后过期。

auth-token-max-ttl-minutes

身份验证词元允许的最大生存时间(TTL),以分钟为单位。如果用户尝试创建一个 TTL 大于 auth-token-max-ttl-minutes 的词元,Rancher 会将词元的 TTL 设置为 auth-token-max-ttl-minutes 的值。适用于所有 kubeconfig 词元和 API 词元。截至 Rancher v2.8,默认持续时间为 129600,这意味着词元在 90 天后过期。

kubeconfig-generate-token

当为真时,通过 UI 请求的 kubeconfig 包含有效词元。当为假时,kubeconfig 包含一个命令,该命令使用 Rancher CLI 提示用户登录。 CLI 然后为用户检索并缓存词元. cli/kubectl.adoc#_authentication_with_kubectl_and_kubeconfig_tokens_with_ttl[CLI 然后为用户检索并缓存词元].