Update missing translation about authentication and linked parts for latest

This commit is contained in:
Jacie
2024-03-28 14:00:12 +08:00
parent 3c043cac1e
commit fb77180158
18 changed files with 1278 additions and 223 deletions
@@ -0,0 +1,127 @@
---
title: 启用实验功能
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/advanced-user-guides/enable-experimental-features"/>
</head>
Rancher 包含一些默认关闭的实验功能。在某些情况下,例如当你认为使用[不支持的存储类型](unsupported-storage-drivers.md)的好处大于使用未经测试的功能的风险时,你可能想要启用实验功能。为了让你能够试用这些默认关闭的功能,我们引入了功能开关(feature flag)。
实验功能可以通过以下三种方式启用:
- [使用 CLI](#启动-rancher-时启用功能):在使用 CLI 安装 Rancher 时,使用功能开关默认启用某个功能。
- [使用 Rancher UI](#使用-rancher-ui-启用功能):在**设置**页面启用功能。
- [使用 Rancher API](#使用-rancher-api-启用功能):安装 Rancher 后启用功能。
每个功能均有以下两个值:
- 默认值:可以通过在命令行使用标志或环境变量进行配置。
- 设置值:可以通过 Rancher API 或 UI 进行配置。
如果没有设置值,Rancher 会使用默认值。
设置值是通过 API 设置的,而默认值是通过命令行设置。因此,如果你使用 API 或 UI 启用或禁用某个功能,命令行中设置的值将被覆盖。
如果你安装 Rancher 后使用 Rancher API 将功能开关设置为 true,然后在使用命令升级 Rancher 时将功能开关设置为 false,在这种情况下,虽然默认值会是 false,但是该功能依然会被启用,因为它是通过 API 设置的。如果你随后使用 Rancher API 删除设置值(true)并将它设置为 NULL,则默认值(false)将生效。有关详细信息,请参阅[功能开关页面](../../../getting-started/installation-and-upgrade/installation-references/feature-flags.md)。
## 启动 Rancher 时启用功能
安装 Rancher 时,使用功能开关启用你所需的功能。通过单节点容器安装 Rancher,和在 Kubernetes 集群上安装 Rancher 对应的命令有所不同。
### Kubernetes 安装的情况下启用功能
:::note
通过 Rancher API 设置的值会覆盖命令行传入的值。
:::
使用 Helm Chart 安装 Rancher 时,使用 `--set` 选项。下面的示例通过传递功能开关名称(用逗号分隔)来启用两个功能:
对于 Kubernetes v1.25 或更高版本,使用 Rancher v2.7.2-v2.7.4 时,将 `global.cattle.psp.enabled` 设置为 `false`。对于 Rancher v2.7.5 及更高版本来说,这不是必需的,但你仍然可以手动设置该选项。
```
helm install rancher rancher-latest/rancher \
--namespace cattle-system \
--set hostname=rancher.my.org \
--set 'extraEnv[0].name=CATTLE_FEATURES'
--set 'extraEnv[0].value=<FEATURE-FLAG-NAME-1>=true,<FEATURE-FLAG-NAME-2>=true'
```
:::note
如果你安装的是 alpha 版本,Helm 要求你在命令中添加 `--devel` 选项。
:::
### 离线安装的情况下渲染 Helm Chart
如果你是在离线环境安装 Rancher 的,在使用 Helm 安装 Rancher 之前,你需要添加一个 Helm Chart 仓库并渲染一个 Helm 模板。详情请参见[离线安装文档](../../../getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/install-rancher-ha.md)。
以下是在渲染 Helm 模板时传入功能开关名称的命令示例。下面的示例通过传递功能开关名称(用逗号分隔)来启用两个功能。
Helm 命令如下:
```
helm install rancher ./rancher-<VERSION>.tgz \
--namespace cattle-system \
--set hostname=<RANCHER.YOURDOMAIN.COM> \
--set rancherImage=<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher \
--set ingress.tls.source=secret \
--set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # 设置在 Rancher 中使用的私有镜像仓库
--set useBundledSystemChart=true # 使用打包的 Rancher System Chart
--set 'extraEnv[0].name=CATTLE_FEATURES'
--set 'extraEnv[0].value=<FEATURE-FLAG-NAME-1>=true,<FEATURE-FLAG-NAME-2>=true'
```
### Docker 安装的情况下启用功能
如果 Rancher 是使用 Docker 安装的,请使用 `--features` 选项。下面的示例通过传递功能开关名称(用逗号分隔)来启用两个功能:
```
docker run -d -p 80:80 -p 443:443 \
--restart=unless-stopped \
rancher/rancher:rancher-latest \
--features=<FEATURE-FLAG-NAME-1>=true,<FEATURE-FLAG-NAME-2>=true
```
## 使用 Rancher UI 启用功能
1. 在左上角,单击 **☰ > 全局设置**。
1. 单击**功能开关**。
1. 如需启用某个功能,找到该已禁用的功能,并点击**⋮ > 激活**。
**结果**:该功能已启用。
### 使用 Rancher UI 禁用功能
1. 在左上角,单击 **☰ > 全局设置**。
1. 单击**功能开关**。你将看到实验功能列表。
1. 如需禁用某个功能,找到该已启用的功能,并点击**⋮ > 停用**。
**结果**:该功能已禁用。
## 使用 Rancher API 启用功能
1. 前往 `<RANCHER-SERVER-URL>/v3/features`
1.`data` 中,你会看到一个数组,该数组包含所有能通过功能开关启用的功能。功能的名称在 `id` 字段中。单击要启用的功能的名称。
1. 在左上角的 **Operations** 下,点击 **Edit**
1.**Value** 下拉菜单中,单击 **True**
1. 单击 **Show Request**
1. 单击 **Send Request**
1. 点击 **Close**
**结果**:该功能已启用。
### 使用 Rancher API 禁用功能
1. 前往 `<RANCHER-SERVER-URL>/v3/features`
1.`data` 中,你会看到一个数组,该数组包含所有能通过功能开关启用的功能。功能的名称在 `id` 字段中。单击要启用的功能的名称。
1. 在左上角的 **Operations** 下,点击 **Edit**
1.**Value** 下拉菜单中,单击 **False**
1. 单击 **Show Request**
1. 单击 **Send Request**
1. 点击 **Close**
**结果**:该功能已禁用。
@@ -0,0 +1,51 @@
---
title: 配置驱动
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-provisioning-drivers"/>
</head>
使用 Rancher 中的驱动,你可以管理可以使用哪些供应商来部署[托管的 Kubernetes 集群](../../kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/set-up-clusters-from-hosted-kubernetes-providers.md)或[云服务器节点](../../launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/use-new-nodes-in-an-infra-provider.md),以允许 Rancher 部署和管理 Kubernetes。
### Rancher 驱动
你可以启用或禁用 Rancher 中内置的驱动。如果相关驱动 Rancher 尚未实现,你可以添加自己的驱动。
Rancher 中有两种类型的驱动:
* [集群驱动](#集群驱动)
* [主机驱动](#主机驱动)
### 集群驱动
集群驱动用于配置[托管的 Kubernetes 集群](../../kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/set-up-clusters-from-hosted-kubernetes-providers.md),例如 GKE、EKS、AKS 等。创建集群时可以显示的集群驱动,是由集群驱动的状态定义的。只有 `active` 集群驱动将显示为为托管 Kubernetes 集群创建集群的选项。默认情况下,Rancher 与几个现有的集群驱动打包在一起,但你也可以创建自定义集群驱动并添加到 Rancher。
默认情况下,Rancher 已激活多个托管 Kubernetes 云提供商,包括:
* [Amazon EKS](../../kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/eks.md)
* [Google GKE](../../kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/gke.md)
* [Azure AKS](../../kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/aks.md)
还有几个托管的 Kubernetes 云提供商是默认禁用的,但也打包在 Rancher 中:
* [Alibaba ACK](../../kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/alibaba.md)
* [Huawei CCE](../../kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/huawei.md)
* [Tencent](../../kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/tencent.md)
### 主机驱动
主机驱动用于配置主机,Rancher 使用这些主机启动和管理 Kubernetes 集群。主机驱动与 [Docker Machine 驱动](https://docs.docker.com/machine/drivers/)相同。创建主机模板时可以显示的主机驱动,是由主机驱动的状态定义的。只有 `active` 主机驱动将显示为创建节点模板的选项。默认情况下,Rancher 与许多现有的 Docker Machine 驱动打包在一起,但你也可以创建自定义主机驱动并添加到 Rancher。
如果你不想向用户显示特定的主机驱动,则需要停用这些主机驱动。
Rancher 支持几家主要的云提供商,但默认情况下,这些主机驱动处于 active 状态并可供部署:
* [Amazon EC2](../../launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/create-an-amazon-ec2-cluster.md)
* [Azure](../../launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/create-an-azure-cluster.md)
* [Digital Ocean](../../launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/create-a-digitalocean-cluster.md)
* [vSphere](../../launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/vsphere/vsphere.md)
还有其他几个默认禁用的主机驱动,但打包在 Rancher 中:
* [Harvester](../../../../integrations-in-rancher/harvester/overview.md#harvester-主机驱动) - 在 Rancher 2.6.1 中可用
@@ -0,0 +1,145 @@
---
title: 配置认证
weight: 10
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config"/>
</head>
Rancher 为 Kubernetes 添加的一个关键功能是集中式用户认证,这个特性允许用户使用一组凭证对任何 Kubernetes 集群进行身份认证。
这种集中式用户认证是通过 Rancher 的认证代理完成的,该代理与 Rancher 的其余部分一并安装,此代理对用户进行认证并通过一个 Service Acount 将请求转发到 Kubernetes 集群中。
:::warning
用来启用外部认证的账户将被授予管理员权限。如果你使用一个测试账号或非管理员账号,该账号仍然会被授予管理员级别权限。请查看[外部认证配置和主体用户](#外部认证配置和用户主体)了解原因。
:::
## 外部认证与本地认证
Rancher 认证代理可以与以下外部认证服务集成。
| 认证服务 |
| ---------------------------------------------------------------------------------------------------------------------- |
| [Microsoft Active Directory](configure-active-directory.md) |
| [GitHub](configure-github.md) |
| [Microsoft Azure AD](configure-azure-ad.md) |
| [FreeIPA](configure-freeipa.md) |
| [OpenLDAP](../configure-openldap/configure-openldap.md) |
| [Microsoft AD FS](../configure-microsoft-ad-federation-service-saml/configure-microsoft-ad-federation-service-saml.md) |
| [PingIdentity](configure-pingidentity.md) |
| [Keycloak (OIDC)](configure-keycloak-oidc.md) |
| [Keycloak (SAML)](configure-keycloak-saml.md) |
| [Okta](configure-okta-saml.md) |
| [Google OAuth](configure-google-oauth.md) |
| [Shibboleth](../configure-shibboleth-saml/configure-shibboleth-saml.md) |
当然,Rancher 也提供[本地认证](create-local-users.md).
在多数情况下,你应该使用外部认证服务而不是使用本地认证,因为外部认证服务可以集中式的对用户进行管理。但是在极少数情况下,例如外部认证服务不可用或正在维护时,你可能需要使用本地认证用户来管理 Rancher。
## 用户和组
Rancher 依赖用户和组来决定允许谁登录 Rancher 以及他们可以访问哪些资源。当使用外部认证时,外部认证系统会根据用户提供组的信息。这些用户和组被赋予了集群、项目、多集群应用以及全局 DNS 提供商和条目等资源的特定角色。当你对组进行授权时,在认证服务中所有属于这个组中的用户都有访问指定的资源的权限。有关角色和权限的更多信息,请查看 [RBAC](../manage-role-based-access-control-rbac/manage-role-based-access-control-rbac.md)。
:::note
本地认证不支持创建或管理组
:::
更多信息,请查看[用户和组](manage-users-and-groups.md)
## Rancher 授权范围
当你配置完 Rancher 使用外部认证服务后,你可以配置允许谁登录和使用 Rancher,包含如下的选项:
| 访问级别 | 描述 |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| 允许任何有效用户 | 在认证服务中的*任何*用户都可以访问 Rancher。通常情况下不建议使用该设置! |
| 允许集群和项目成员,以及授权的用户和组织 | 认证服务中属于**集群成员**或**项目成员**的用户或组成员都可以登录 Rancher。此外添加在**授权的用户和组织**列表中的用户和组成员也可以登录到 Rancher。 |
| 仅限于授权的用户可以访问 | 仅有在授权用户和组织列表中的用户和组成员可以登录到 Rancher。 |
要在授权服务中为用户设置 Rancher 访问级别,请执行以下步骤:
1. 在左上角,点击 **☰ > 用户 & 认证**。
1. 在左侧导航栏,点击 **认证**.
1. 设置完外部认证详细信息后,使用 **站点访问** 选项配置用户权限范围,上面的表格说明了每个选项的访问级别。
1. 可选:如果你选择 **允许任何有效用户** 以外的选项,你可以通过在出现的文本框中搜索用户,将用户添加到授权用户和组织的列表中。
1. 点击 **保存**
**结果:** Rancher 的访问配置被应用。
:::note SAML 认证警告:
- SAML 协议不支持搜索或查找用户或组。因此,将用户或组添加到 Rancher 时不会对其进行验证。
- 添加用户时,必须正确输入确切的用户 ID(即 UID 字段)。键入用户 ID 时,将不会搜索可能匹配的其他用户 ID。
- 添加组时,必须从文本框旁边的下拉列表中选择组。Rancher 假定来自文本框的任何输入都是用户。
- 用户组下拉列表仅显示您所属的用户组。您将无法添加您不是其成员的组。
:::
## 外部认证配置和用户主体
配置外部认证需要:
- 分配了管理员角色的本地用户,以下称为 _本地主体_
- 可以使用外部认证服务进行认证的外部用户,以下简称为 _外部主体_
外部认证的配置也会影响 Rancher 中主体用户的管理方式,具体地说,当用户账户启用了外部认证时,将授予其管理员级别的权限。这是因为本地主体和外部主体共享相同的用户 ID 和访问权限。
以下说明演示了这些效果:
1. 作为本地主体登录到 Rancher 并完成外部身份验证的配置。
![Sign In](/img/sign-in.png)
2. Rancher 将外部主体与本地主体相关联。这两个用户共享本地主体的用户 ID。
![Principal ID Sharing](/img/principal-ID.png)
3. 完成配置后,Rancher 将自动退出本地主体。
![Sign Out Local Principal](/img/sign-out-local.png)
4. 然后,Rancher 会自动将您登录外部主体。
![Sign In External Principal](/img/sign-in-external.png)
5. 因为外部主体和本地主体共享一个 ID,所以用户列中不会再单独显示一个另外的外部主体的对象。
![Sign In External Principal](/img/users-page.png)
6. 外部主体和本地主体共享相同的访问权限。
:::note 重新配置先前设置的认证
如果需要重新配置或禁用后重新启用先前设置过的认证,请确保尝试这样做的用户以外部用户身份登录到 Rancher,而不是使用本地管理员登录。
:::
## 禁用认证
当你禁用认证时,Rancher 会删除所有与之关联的资源,例如:
- 密文
- 绑定的全局角色。
- 绑定的集群角色。
- 绑定的项目角色。
- 与外部认证关联但从未以本地用户身份登录 Rancher 的外部用户。
由于此操作可能会导致许多资源丢失,因此你可能需要添加一些保护措施。若要确保禁用外部认证时不执行清理流程,需要为外部认证的配置添加特殊的注释。
例如,若要对 Azure AD 认证增加保护措施,你需要在 authconfig 对象上增加 `azuread` 注释:
`kubectl annotate --overwrite authconfig azuread management.cattle.io/auth-provider-cleanup='user-locked'`
禁用 Azure AD 认证后,Rancher 不会执行清理流程,直到你将该注解设置为 `unlocked`
### 手动运行资源清理
Rancher 可能会在本地集群中保留之前禁用的外部认证配置的资源,即使你配置对接了另一种认证也是如此。例如,如果你对接了 A 认证,然后禁用它,并重新对接使用 B 认证,当你升级到新版本的 Rancher 时,你可以手动触发对认证 A 配置的资源清理。
要手动触发已禁用的认证配置的清理,请将 `unlocked` 值添加到对应认证配置的 `management.cattle.io/auth-provider-cleanup` 注解中。
@@ -0,0 +1,85 @@
---
title: 认证、权限和全局配置
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration"/>
</head>
安装完成后,[系统管理员](manage-role-based-access-control-rbac/global-permissions.md) 应该通过 Rancher 配置认证、授权、安全性、默认设置、安全策略、驱动和全局 DNS 条目。
## 首次登录
首次登录 Rancher 后,Rancher 会提示你输入 **Rancher Server URL**,你应该将 URL 设置为访问 Rancher Server 的主入口点。当负载均衡器运行在 Rancher Server 集群前面时,URL 应该设置为负载均衡地址。系统会自动尝试根据运行 Rancher Server 的主机 IP 地址或主机名推断 Rancher Server URL,但只有当 Rancher Server 以单节点方式安装时才有效。因此在大多数情况下,你都需要将 Rancher Server URL 设置为正确的值。
:::danger
当设置完 Rancher Server URL 后,我们不支持修改它。请格外小心的设置此项配置。
:::
## 认证
Rancher 为 Kubernetes 增加了一项关键特性是集中式的用户认证。此特性允许设置本地用户和/或连接到外部认证程序。通过连接到外部认证程序,你可以使用该程序提供的用户和组。
更多关于认证的工作原理以及如何配置对接各个认证程序,请参考[认证](authentication-config/authentication-config.md)。
## 授权
在 Rancher 中,每个人都是以 _用户_ 的身份进行鉴权,这是一个授予你访问 Rancher 的登录身份。用户登录 Rancher 后,他们的 _授权_ 或者他们在系统中的访问权限由用户的角色决定。Rancher 提供了内置的角色,允许你你轻松地配置用户对资源的权限,但是 Rancher 还提供了为每个 Kubernetes 资源自定义角色的功能。
更多关于授权的工作原理以及自定义角色的使用,请参考 [RBAC](manage-role-based-access-control-rbac/manage-role-based-access-control-rbac.md)。
## Pod 安全策略
_Pod 安全策略_ (或 PSPs) 是控制 Pod 安全敏感方面规范的对象,例如 root 权限。如果一个 Pod 不满足 PSP 中指定的条件,Kubernetes 将不允许 Pod 启动,同时 Rancher 会显示一条错误信息。
更多关于如何创建和使用 PSPs 的内容,请参考 [Pod 安全策略](create-pod-security-policies.md)。
## Provisioning Drivers
Rancher 中的驱动允许你管理哪些程序可以预置[托管的 Kubernetes 集群](../kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/set-up-clusters-from-hosted-kubernetes-providers.md) 或 [云服务器节点](../launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/use-new-nodes-in-an-infra-provider.md),允许 Rancher 部署和管理 Kubernetes。
更多信息请参考 [Provisioning Drivers](about-provisioning-drivers/about-provisioning-drivers.md)。
## 添加 Kubernetes 版本到 Rancher 中
使用此功能,你可以在最新版本的 Kubernetes 发布后立即升级,而不需要升级 Rancher。此功能允许你轻松升级 Kubernetes 的补丁版本(例如 `v1.15.X`),但不打算升级 Kubernetes 的次要版本(例如 `v1.X.0`),因为 Kubernetes 倾向于在次要版本之间弃用或添加 API。
Rancher 用于配置 [RKE 集群](../launch-kubernetes-with-rancher/launch-kubernetes-with-rancher.md) 的信息现在存储于 Rancher Kubernetes 元数据中,更多关于元数据的配置以及如何更改用于配置 RKE 集群的 Kubernetes 版本的信息,请参考 [Rancher Kubernetes 元数据](../../../getting-started/installation-and-upgrade/upgrade-kubernetes-without-upgrading-rancher.md)。
Rancher Kubernetes 元数据包含 Kubernetes 版本信息,Rancher 使用这些信息来配置 [RKE 集群](../launch-kubernetes-with-rancher/launch-kubernetes-with-rancher.md)。
关于元数据的工作原理以及如何配置元数据,请参考 [Rancher Kubernetes 元数据](../../../getting-started/installation-and-upgrade/upgrade-kubernetes-without-upgrading-rancher.md)。
## 全局设置
控制某些全局级别 Rancher 配置项可以在顶部的导航栏中找到。
点击左上角的 **☰** ,然后选择 **全局设置**,查看和配置以下设置:
- **设置**: 各种 Rancher 默认值,例如用户密码的最小长度 (`password-min-length`)。在修改这些设置项时应该谨慎,因为设置无效的值可能会破坏 Rancher 的安装。
- **功能开关**: 可以打开或关闭 Rancher 的某些功能,一些标志用于 [实验性功能](#启用实验性功能).
- **横幅**: 可以添加到门户上固定位置的元素,例如你可以使用这些选项在用户登录 Rancher 时为他们设置[自定义的横幅](custom-branding.md#固定横幅)。
- **品牌**: 你可以[自定义](custom-branding.md) Rancher UI 的设计元素,你可以增加一个自定义的 logo 或 favicon,也可以修改 UI 的颜色。
- **性能**: Rancher UI 的性能设置,例如增量资源加载。
- **主页链接**: Rancher UI **主页**页面上显示的链接,你可以修改默认链接的可见性或者增加自己的链接。
### 启用实验性功能
Rancher 包含一些默认处于实验性和/或禁用的功能,功能开关允许你启用这些特性。更多信息请参考[功能开关](../../advanced-user-guides/enable-experimental-features/enable-experimental-features.md)。
### 全局配置
仅在激活 **legacy** [功能开关](../../advanced-user-guides/enable-experimental-features/enable-experimental-features.md) 时才可以看见**全局配置**选项。在 v2.6 及更新版本新安装的 Rancher 已经默认禁用了 **legacy** 特性。如果你是从早期的 Rancher 版本升级,或者在 Rancher v2.6 及更新版本上启用了 **legacy** 特性,顶部导航菜单中将会显示**全局配置**:
1. 点击左上角的 **☰**。
1.**旧版应用** 中选择 **全局配置**
**全局配置**提供以下功能:
- **应用商店**
- **全局 DNS 条目**
- **全局 DNS 提供商**
由于这些是旧版特性,请参考 Rancher v2.0-v2.4 的[应用商店](/versioned_docs/version-2.0-2.4/how-to-guides/new-user-guides/helm-charts-in-rancher/helm-charts-in-rancher.md), [全局 DNS 条目](/versioned_docs/version-2.0-2.4/how-to-guides/new-user-guides/helm-charts-in-rancher/globaldns.md#adding-a-global-dns-entry), 以及 [全局 DNS 提供商](/versioned_docs/version-2.0-2.4/how-to-guides/new-user-guides/helm-charts-in-rancher/globaldns.md#editing-a-global-dns-provider)。
@@ -0,0 +1,39 @@
---
title: 配置 Microsoft AD FS (SAML)
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-microsoft-ad-federation-service-saml"/>
</head>
如果你的组织使用 Active Directory Federation Service (AD FS) 进行用户身份认证,你可以通过配置 Rancher 来允许用户使用 AD FS 凭证登录。
## 先决条件
已安装 Rancher。
- 获取你的 Rancher Server URL。配置 AD FS 时,请使用该 URL 替换 `<RANCHER_SERVER>` 占位符。
- 你必须在 Rancher 安装时具有全局管理员账号。
你必须配置 [Microsoft AD FS 服务器](https://docs.microsoft.com/en-us/windows-server/identity/active-directory-federation-services)。
- 获取你的 AD FS 服务器 IP/DNS 名称。配置 AD FS 时,请使用该 IP/DNS 名称替换 `<AD_SERVER>` 占位符。
- 你必须有在 AD FS 服务器上添加 [Relying Party Trusts](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/create-a-relying-party-trust) 的权限。
## 配置概要
要让 Rancher Server 使用 Microsoft AD FS,你需要在 Active Directory 服务器上配置 AD FS,并将 Rancher 配置为使用 AD FS 服务器。如果需要获取在 Rancher 中设置 Microsoft AD FS 身份认证的指南,请参见:
- [1. 在 Microsoft AD FS 中配置 Rancher](configure-ms-adfs-for-rancher.md)
- [2. 在 Rancher 中配置 Microsoft AD FS](configure-rancher-for-ms-adfs.md)
:::note SAML 身份提供商注意事项
- SAML 协议不支持搜索或查找用户或组。因此,将用户或组添加到 Rancher 时不会对其进行验证。
- 添加用户时,必须正确输入确切的用户 ID(即 `UID` 字段)。键入用户 ID 时,将不会搜索可能匹配的其他用户 ID。
- 添加组时,必须从文本框旁边的下拉列表中选择组。Rancher 假定来自文本框的任何输入都是用户。
- 用户组下拉列表仅显示你所属的用户组。如果你不是某个组的成员,你将无法添加该组。
:::
### [后续操作:在 Microsoft AD FS 中配置 Rancher](configure-ms-adfs-for-rancher.md)
@@ -2,6 +2,10 @@
title: 1. 在 Microsoft AD FS 中配置 Rancher
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-microsoft-ad-federation-service-saml/configure-ms-adfs-for-rancher"/>
</head>
在配置 Rancher 以支持 Active Directory Federation Service (AD FS) 之前,你必须在 AD FS 中将 Rancher 添加为 [relying party trust](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/technical-reference/understanding-key-ad-fs-concepts)(信赖方信任)。
1. 以管理用户身份登录 AD 服务器。
@@ -34,7 +38,7 @@ title: 1. 在 Microsoft AD FS 中配置 Rancher
![](/img/adfs/adfs-add-rpt-7.png)
1. 本教程不涉及多重身份证。如果你想配置多重身份证,请参见 [Microsoft 文档](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/configure-additional-authentication-methods-for-ad-fs)。
1. 本教程不涉及多重身份证。如果你想配置多重身份证,请参见 [Microsoft 文档](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/configure-additional-authentication-methods-for-ad-fs)。
![](/img/adfs/adfs-add-rpt-8.png)
@@ -46,7 +50,6 @@ title: 1. 在 Microsoft AD FS 中配置 Rancher
![](/img/adfs/adfs-add-rpt-10.png)
1. 选择 **Open the Edit Claim Rules...**。然后单击 **Close**
![](/img/adfs/adfs-add-rpt-11.png)
@@ -61,17 +64,19 @@ title: 1. 在 Microsoft AD FS 中配置 Rancher
1.**Claim rule name** 设置为所需的名称(例如 `Rancher Attributes`)并选择 **Active Directory** 作为 **Attribute store**。创建对应下表的映射:
| LDAP 属性 | 传出声明类型 |
| -------------------------------------------- | ------------------- |
| Given-Name | Given Name |
| User-Principal-Name | UPN |
| Token-Groups - Qualified by Long Domain Name | Group |
| SAM-Account-Name | 名称 |
| LDAP 属性 | 传出声明类型 |
| -------------------------------------------- | ------------ |
| Given-Name | Given Name |
| User-Principal-Name | UPN |
| Token-Groups - Qualified by Long Domain Name | Group |
| SAM-Account-Name | 名称 |
<br/>
![](/img/adfs/adfs-add-tcr-2.png)
1. 从 AD 服务器的以下位置下载 `federationmetadata.xml`
```
https://<AD_SERVER>/federationmetadata/2007-06/federationmetadata.xml
```
@@ -2,6 +2,10 @@
title: 2. 在 Rancher 中配置 Microsoft AD FS
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-microsoft-ad-federation-service-saml/configure-rancher-for-ms-adfs"/>
</head>
完成[在 Microsoft AD FS 中配置 Rancher](configure-ms-adfs-for-rancher.md) 后,将你的 Active Directory Federation Service (AD FS) 信息输入 Rancher,以便 AD FS 用户可以通过 Rancher 进行身份认证。
:::note 配置 ADFS 服务器的重要说明:
@@ -30,16 +34,15 @@ title: 2. 在 Rancher 中配置 Microsoft AD FS
## 配置
| 字段 | 描述 |
|---------------------------|-----------------|
| 显示名称字段 | 包含用户显示名称的 AD 属性。<br/><br/>示例:`http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` |
| 用户名字段 | 包含用户名/给定名称的 AD 属性。<br/><br/>示例:`http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname` |
| UID 字段 | 每个用户独有的 AD 属性。<br/><br/>示例:`http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn` |
| 用户组字段 | 创建用于管理组成员关系的条目。<br/><br/>示例:`http://schemas.xmlsoap.org/claims/Group` |
| Rancher API 主机 | Rancher Server 的 URL。 |
| 私钥/证书 | 在 Rancher 和你的 AD FS 之间创建安全外壳(SSH)的密钥/证书对。确保将 Common Name (CN) 设置为 Rancher Server URL。<br/><br/>[证书创建命令](#cert-command) |
| 元数据 XML | 从 AD FS 服务器导出的 `federationmetadata.xml` 文件。<br/><br/>你可以在 `https://<AD_SERVER>/federationmetadata/2007-06/federationmetadata.xml` 找到该文件。 |
| 字段 | 描述 |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 显示名称字段 | 包含用户显示名称的 AD 属性。<br/><br/>示例:`http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` |
| 用户名字段 | 包含用户名/给定名称的 AD 属性。<br/><br/>示例:`http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname` |
| UID 字段 | 每个用户独有的 AD 属性。<br/><br/>示例:`http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn` |
| 用户组字段 | 创建用于管理组成员关系的条目。<br/><br/>示例:`http://schemas.xmlsoap.org/claims/Group` |
| Rancher API 主机 | Rancher Server 的 URL。 |
| 私钥/证书 | 在 Rancher 和你的 AD FS 之间创建安全外壳(SSH)的密钥/证书对。确保将 Common Name (CN) 设置为 Rancher Server URL。<br/><br/>[证书创建命令](#cert-command) |
| 元数据 XML | 从 AD FS 服务器导出的 `federationmetadata.xml` 文件。<br/><br/>你可以在 `https://<AD_SERVER>/federationmetadata/2007-06/federationmetadata.xml` 找到该文件。 |
<a id="cert-command"></a>
@@ -51,4 +54,4 @@ title: 2. 在 Rancher 中配置 Microsoft AD FS
openssl req -x509 -newkey rsa:2048 -keyout myservice.key -out myservice.cert -days 365 -nodes -subj "/CN=myservice.example.com"
```
:::
:::
@@ -0,0 +1,56 @@
---
title: 配置 OpenLDAP
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-openldap"/>
</head>
如果你的组织使用 LDAP 进行认证,则可以配置 Rancher 与 OpenLDAP 服务器通信以对用户进行认证。这时 Rancher 管理员可以对外部用户系统中的用户和组进行集群和项目的访问控制,同时允许终端用户在登录 Rancher UI 时使用其 LDAP 凭据进行身份认证。
## 先决条件
必须为 Rancher 配置 LDAP 绑定账号(即 ServiceAccount),来搜索和检索应该具有访问权限的用户和组的 LDAP 条目。建议不要使用管理员账号或个人账号,而应在 OpenLDAP 中创建一个专用账号,该账号对配置的搜索库下的用户和组需要具有只读权限(参见下文)。
> **使用 TLS?**
>
> 如果 OpenLDAP 服务器使用的证书是自签名的或不是来自认可的证书颁发机构,请确保手头有 PEM 格式的 CA 证书(包含所有中间证书)。你必须在配置期间粘贴此证书,以便 Rancher 能够验证证书链。
## 在 Rancher 中配置 OpenLDAP
配置 OpenLDAP 服务器,组和用户的设置。有关填写每个字段的帮助,请参见[配置参考](openldap-config-reference.md)
> 在开始之前,请熟悉[外部认证配置和用户主体](../authentication-config/authentication-config.md#外部认证配置和用户主体)的概念。
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏,单击**认证**。
1. 单击 **OpenLDAP**。填写**配置 OpenLDAP 服务器**表单。
1. 点击**启用**。
### 测试认证
完成配置后,请测试与 OpenLDAP 服务器的连接。如果测试成功,则表明 OpenLDAP 认证已启用。
:::note
于此步骤中输入的 OpenLDAP 用户凭证将映射到本地主体账号,并在 Rancher 中分配系统管理员权限。因此,你应该决定使用哪个 OpenLDAP 账号来执行此步骤。
:::
1. 输入应映射到本地主体账号的 OpenLDAP 账号的**用户名**和**密码** 。
2. 点击**启用 OpenLDAP 认证**来测试 OpenLDAP 的连接并完成设置。
**结果**
- OpenLDAP 认证配置成功。
- 与输入凭证对应的 LDAP 用户被映射到本地主体(管理员)账号。
:::note
如果 LDAP 服务中断,你仍然可以使用本地配置的 `admin` 账号和密码登录。
:::
## 附录:故障排除
如果在测试与 OpenLDAP 服务器的连接时遇到问题,请首先仔细检查为 ServiceAccount 输入的凭证以及搜索库配置。你还可以检查 Rancher 日志来查明问题的原因。调试日志可能包含有关错误的更详细信息。详情请参见[如何启用调试日志](../../../../faq/technical-items.md#how-can-i-enable-debug-logging)。
@@ -2,17 +2,20 @@
title: OpenLDAP 配置参考
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-openldap/openldap-config-reference"/>
</head>
有关配置 OpenLDAP 认证的更多详细信息,请参见[官方文档](https://www.openldap.org/doc/)。
> 在开始之前,请熟悉[外部身份验证配置和主体用户](../../../../pages-for-subheaders/authentication-config.md#外部身份验证配置和用户主体)的概念。
> 在开始之前,请熟悉[外部证配置和用户主体](../authentication-config/authentication-config.md#外部证配置和用户主体)的概念。
## 背景:OpenLDAP 认证流程
1. 当用户尝试使用其 LDAP 凭证登录时,Rancher 会使用具有搜索目录和读取用户/组属性权限的 ServiceAccount,创建与 LDAP 服务器的初始绑定。
2. 然后,Rancher 使用搜索筛选器根据用户名和配置的属性映射为用户搜索目录。
3. 找到用户后,将使用用户的 DN 和提供的密码,通过另一个 LDAP 绑定请求对用户进行身份证。
4. 身份验证成功后,Rancher 将基于用户对象的成员属性和配置的用户映射属性执行组搜索,来解析组成员。
3. 找到用户后,将使用用户的 DN 和提供的密码,通过另一个 LDAP 绑定请求对用户进行身份证。
4. 证成功后,Rancher 将基于用户对象的成员属性和配置的用户映射属性执行组搜索,来解析组成员。
## OpenLDAP 服务器配置
@@ -26,16 +29,16 @@ title: OpenLDAP 配置参考
<figcaption>OpenLDAP 服务器参数</figcaption>
| 参数 | 描述 |
|:--|:--|
| 主机名 | 指定 OpenLDAP 服务器的主机名或 IP 地址。 |
| 端口 | 指定 OpenLDAP 服务器监听连接的端口。未加密的 LDAP 通常使用 389 的标准端口,而 LDAPS 使用 636 端口。 |
| TLS | 选中此框可启用 SSL/TLS 上的 LDAP(通常称为 LDAPS)。如果服务器使用自签名/企业签名的证书,则还需要粘贴 CA 证书。 |
| 服务器连接超时 | Rancher 在认为无法访问服务器之前等待的时间(秒)。 |
| ServiceAccount 标识名称 | 输入用于绑定,搜索和检索 LDAP 条目的用户的标识名称(DN)。 |
| ServiceAccount 密码 | ServiceAccount 的密码。 |
| 用户搜索库 | 输入目录树中开始搜索用户对象的节点的标识名称(DN)。所有用户都必须是此基础标识名称的后代。例如,"ou=people,dc=acme,dc=com"。 |
| 组搜索库 | 如果组位于`用户搜索库`下配置的节点之外的其他节点下,则需要在此处提供标识名称。否则,将此字段留空。例如:"ou=groups,dc=acme,dc=com"。 |
| 参数 | 描述 |
| :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------- |
| 主机名 | 指定 OpenLDAP 服务器的主机名或 IP 地址。 |
| 端口 | 指定 OpenLDAP 服务器监听连接的端口。未加密的 LDAP 通常使用 389 的标准端口,而 LDAPS 使用 636 端口。 |
| TLS | 选中此框可启用 SSL/TLS 上的 LDAP(通常称为 LDAPS)。如果服务器使用自签名/企业签名的证书,则还需要粘贴 CA 证书。 |
| 服务器连接超时 | Rancher 在认为无法访问服务器之前等待的时间(秒)。 |
| ServiceAccount 标识名称 | 输入用于绑定,搜索和检索 LDAP 条目的用户的标识名称(DN)。 |
| ServiceAccount 密码 | ServiceAccount 的密码。 |
| 用户搜索库 | 输入目录树中开始搜索用户对象的节点的标识名称(DN)。所有用户都必须是此基础标识名称的后代。例如,"ou=people,dc=acme,dc=com"。 |
| 组搜索库 | 如果组位于`用户搜索库`下配置的节点之外的其他节点下,则需要在此处提供标识名称。否则,将此字段留空。例如:"ou=groups,dc=acme,dc=com"。 |
## 用户/组 Schema 配置
@@ -51,15 +54,15 @@ title: OpenLDAP 配置参考
<figcaption>用户 Schema 配置参数</figcaption>
| 参数 | 描述 |
|:--|:--|
| Object Class | 域中用于用户对象的对象类别名称。如果定义了此参数,则仅指定对象类别的名称 - *请勿*将其放在 LDAP 包装器中,例如 `&(objectClass=xxxx)`。 |
| Username Attribute | 用户属性的值适合作为显示名称。 |
| Login Attribute | 登录属性的值与用户登录 Rancher 时输入的凭证的用户名部分匹配。通常是 `uid`。 |
| User Member Attribute | 包含用户所属组的标识名称的用户属性。通常是 `memberOf``isMemberOf`。 |
| Search Attribute | 当用户输入文本以在用户界面中添加用户或组时,Rancher 会查询 LDAP 服务器,并尝试根据此设置中提供的属性匹配用户。可以通过使用管道(“\|”)符号分隔属性来指定多个属性。 |
| User Enabled Attribute | 如果 OpenLDAP 服务器的 Schema 支持使用用户属性的值来评估账号是禁用还是关闭,请输入该属性的名称。默认的 OpenLDAP Schema 不支持此功能,因此此字段通常留空。 |
| Disabled Status Bitmask | 禁用/锁定的用户账号的值。如果 `User Enabled Attribute` 是空的,则忽略此参数。 |
| 参数 | 描述 |
| :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Object Class | 域中用于用户对象的对象类别名称。如果定义了此参数,则仅指定对象类别的名称 - *请勿*将其放在 LDAP 包装器中,例如 `&(objectClass=xxxx)` |
| Username Attribute | 用户属性的值适合作为显示名称。 |
| Login Attribute | 登录属性的值与用户登录 Rancher 时输入的凭证的用户名部分匹配。通常是 `uid` |
| User Member Attribute | 包含用户所属组的标识名称的用户属性。通常是 `memberOf``isMemberOf` |
| Search Attribute | 当用户输入文本以在用户界面中添加用户或组时,Rancher 会查询 LDAP 服务器,并尝试根据此设置中提供的属性匹配用户。可以通过使用管道(“\|”)符号分隔属性来指定多个属性。 |
| User Enabled Attribute | 如果 OpenLDAP 服务器的 Schema 支持使用用户属性的值来评估账号是禁用还是关闭,请输入该属性的名称。默认的 OpenLDAP Schema 不支持此功能,因此此字段通常留空。 |
| Disabled Status Bitmask | 禁用/锁定的用户账号的值。如果 `User Enabled Attribute` 是空的,则忽略此参数。 |
### 组 Schema 配置
@@ -67,12 +70,12 @@ title: OpenLDAP 配置参考
<figcaption>组 Schema 配置参数</figcaption>
| 参数 | 描述 |
|:--|:--|
| Object Class | 域中用于组条目的对象类别名称。如果定义了此参数,则仅指定对象类别的名称 - *请勿*将其放在 LDAP 包装器中,例如 `&(objectClass=xxxx)`。 |
| Name Attribute | 名称属性的值适合作为显示名称。 |
| Group Member User Attribute | **用户属性**的名称。它的格式与 `Group Member Mapping Attribute` 中的组成员匹配。 |
| Group Member Mapping Attribute | 包含组成员的组属性的名称。 |
| Search Attribute | 在 UI 中将组添加到集群或项目时,用于构造搜索筛选器的属性。请参见用户 Schema 的 `Search Attribute`。 |
| Group DN Attribute | 组属性的名称,其格式与用户的组成员属性中的值匹配。参见 `User Member Attribute`。 |
| Nested Group Membership | 此设置定义 Rancher 是否应解析嵌套组成员身份。仅当你的组织使用这些嵌套成员身份时才使用(即你有包含其他组作为成员的组)。如果你使用 Shibboleth,此选项会被禁用。 |
| 参数 | 描述 |
| :----------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Object Class | 域中用于组条目的对象类别名称。如果定义了此参数,则仅指定对象类别的名称 - *请勿*将其放在 LDAP 包装器中,例如 `&(objectClass=xxxx)` |
| Name Attribute | 名称属性的值适合作为显示名称。 |
| Group Member User Attribute | **用户属性**的名称。它的格式与 `Group Member Mapping Attribute` 中的组成员匹配。 |
| Group Member Mapping Attribute | 包含组成员的组属性的名称。 |
| Search Attribute | 在 UI 中将组添加到集群或项目时,用于构造搜索筛选器的属性。请参见用户 Schema 的 `Search Attribute` |
| Group DN Attribute | 组属性的名称,其格式与用户的组成员属性中的值匹配。参见 `User Member Attribute` |
| Nested Group Membership | 此设置定义 Rancher 是否应解析嵌套组成员身份。仅当你的组织使用这些嵌套成员身份时才使用(即你有包含其他组作为成员的组)。如果你使用 Shibboleth,此选项会被禁用。 |
@@ -2,14 +2,18 @@
title: Shibboleth 和 OpenLDAP 的组权限
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-shibboleth-saml/about-group-permissions"/>
</head>
由于 Shibboleth 是 SAML 提供者,因此它不支持搜索用户组的功能。虽然 Shibboleth 集成可以验证用户凭证,但是如果没有其他配置,Shibboleth 不能在 Rancher 中给用户组分配权限。
你可以通过配置 OpenLDAP 标识提供者来解决这个问题。如果让 Shibboleth 使用 OpenLDAP 后端,你将能够在 Rancher 中搜索组,并从 Rancher UI 将集群、项目或命名空间等资源分配给用户组。
你可以通过配置 OpenLDAP 来解决这个问题。如果让 Shibboleth 使用 OpenLDAP 后端,你将能够在 Rancher 中搜索组,并从 Rancher UI 将集群、项目或命名空间等资源分配给用户组。
### 名词解释
- **Shibboleth**:用于计算机网络和互联网的单点登录系统。它允许用户仅使用一种身份登录到各种系统。它验证用户凭证,但不单独处理组成员身份。
- **SAML**:安全声明标记语言(Security Assertion Markup Language),用于在身份提供程序和服务提供商之间交换身份验证和授权数据的开放标准。
- **SAML**:安全声明标记语言(Security Assertion Markup Language),用于在身份提供程序和服务提供商之间交换证和授权数据的开放标准。
- **OpenLDAP**:轻型目录访问协议(LDAP)的免费开源实现。它用于管理组织的计算机和用户。OpenLDAP 对 Rancher 用户很有用,因为它支持组。只要组已存在于身份提供程序中,你就可以在 Rancher 中为组分配权限,从而让组访问资源(例如集群,项目或命名空间)。
- **IdP 或 IDP**:身份提供程序。OpenLDAP 是身份提供程序的一个例子。
@@ -0,0 +1,104 @@
---
title: 配置 Shibboleth (SAML)
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-shibboleth-saml"/>
</head>
如果你的组织使用 Shibboleth Identity Provider (IdP) 进行用户身份认证,你可以通过配置 Rancher 来允许用户使用 Shibboleth 凭证登录。
在此配置中,当 Rancher 用户登录时,他们将被重定向到 Shibboleth IdP 来输入凭证。认证结束后,他们将被重定向回 Rancher UI。
如果你将 OpenLDAP 配置为 Shibboleth 的后端,SAML 断言会返回到 Rancher,其中包括用于引用组的用户属性。然后,通过认证的用户将能够访问其所在的组有权访问的 Rancher 资源。
> 本节假定你已了解 Rancher、Shibboleth 和 OpenLDAP 是如何协同工作的。有关工作原理的详细说明,请参见[本页](about-group-permissions.md)
# 在 Rancher 中设置 Shibboleth
### Shibboleth 先决条件
> - 你必须配置了 Shibboleth IdP 服务器。
> - 以下是 Rancher Service Provider 配置所需的 URL
> 元数据 URL`https://<rancher-server>/v1-saml/shibboleth/saml/metadata`
> 断言使用者服务 (ACS) URL`https://<rancher-server>/v1-saml/shibboleth/saml/acs`
> - 从 IdP 服务器导出 `metadata.xml` 文件。详情请参见 [Shibboleth 文档](https://wiki.shibboleth.net/confluence/display/SP3/Home)。
### 在 Rancher 中配置 Shibboleth
如果你的组织使用 Shibboleth 进行用户身份认证,你可以通过配置 Rancher 来允许你的用户使用 IdP 凭证登录。
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏,单击**认证**。
1. 单击 **Shibboleth**
1. 填写**配置 Shibboleth 账号**表单。Shibboleth IdP 允许你指定要使用的数据存储。你可以添加数据库或使用现有的 ldap 服务器。例如,如果你选择 Active Directory (AD) 服务器,下面的示例将描述如何将 AD 属性映射到 Rancher 中的字段:
1. **显示名称字段**:包含用户显示名称的 AD 属性(例如:`displayName`)。
1. **用户名字段**:包含用户名/给定名称的 AD 属性(例如:`givenName`)。
1. **UID 字段**:每个用户唯一的 AD 属性(例如:`sAMAccountName``distinguishedName`)。
1. **用户组字段**: 创建用于管理组成员关系的条目(例如:`memberOf`)。
1. **Rancher API 主机**:你的 Rancher Server 的 URL。
1. **私钥**和**证书**:密钥/证书对,用于在 Rancher 和你的 IdP 之间创建一个安全外壳(SSH)。
你可以使用 openssl 命令进行创建。例如:
```
openssl req -x509 -newkey rsa:2048 -keyout myservice.key -out myservice.cert -days 365 -nodes -subj "/CN=myservice.example.com"
```
1. **IDP 元数据**:从 IdP 服务器导出的 `metadata.xml` 文件。
1. 完成**配置 Shibboleth 账号**表单后,单击**启用**。
Rancher 会将你重定向到 IdP 登录页面。输入使用 Shibboleth IdP 的用户凭证,来验证你的 Rancher Shibboleth 配置。
:::note
你可能需要禁用弹出窗口阻止程序才能看到 IdP 登录页面。
:::
**结果**:已将 Rancher 配置为使用 Shibboleth。你的用户现在可以使用 Shibboleth 登录名登录 Rancher。
### SAML 提供商注意事项
SAML 协议不支持用户或用户组的搜索或查找。因此,如果你没有为 Shibboleth 配置 OpenLDAP,则请留意以下警告。
- 在 Rancher 中为用户或组分配权限时,不会对用户或组进行验证。
- 添加用户时,必须正确输入准确的用户 ID(即 UID 字段)。在你输入用户 ID 时,将不会搜索可能匹配的其他用户 ID。
- 添加组时,必须从文本框旁边的下拉列表中选择组。Rancher 假定来自文本框的任何输入都是用户。
- 用户组下拉列表仅显示你所属的用户组。如果你不是某个组的成员,你将无法添加该组。
要在 Rancher 中分配权限时启用搜索组,你需要为 SAML 身份认证服务配置支持组的后端(例如 OpenLDAP)。
# 在 Rancher 中设置 OpenLDAP
如果你将 OpenLDAP 配置为 Shibboleth 的后端,SAML 断言会返回到 Rancher,其中包括用于引用组的用户属性。然后,通过认证的用户将能够访问其所在的组有权访问的 Rancher 资源。
### OpenLDAP 先决条件
必须为 Rancher 配置 LDAP 绑定账号(即 ServiceAccount),来搜索和检索应该具有访问权限的用户和组的 LDAP 条目。建议不要使用管理员账号或个人账号,而应在 OpenLDAP 中创建一个专用账号,该账号对配置的搜索库下的用户和组需要具有只读权限(参见下文)。
> **使用 TLS**
>
> 如果 OpenLDAP 服务器使用的证书是自签名的或不是来自认可的证书颁发机构,请确保手头有 PEM 格式的 CA 证书(包含所有中间证书)。你必须在配置期间粘贴此证书,以便 Rancher 能够验证证书链。
### 在 Rancher 中配置 OpenLDAP
配置 OpenLDAP 服务器,组和用户的设置。有关填写每个字段的帮助,请参见[配置参考](../configure-openldap/openldap-config-reference.md)。请注意,嵌套组成员资格不适用于 Shibboleth。
> 在开始之前,请熟悉[外部认证配置和用户主体](../authentication-config/authentication-config.md#外部认证配置和用户主体)的概念。
1. 使用初始的本地 `admin` 账号登录到 Rancher UI。
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏,单击**认证**。
1. 单击 **OpenLDAP**。将显示**配置 OpenLDAP 服务器**表单。
## 故障排除
如果在测试与 OpenLDAP 服务器的连接时遇到问题,请首先仔细检查为 ServiceAccount 输入的凭证以及搜索库配置。你还可以检查 Rancher 日志来查明问题的原因。调试日志可能包含有关错误的更详细信息。详情请参见[如何启用调试日志](../../../../faq/technical-items.md#how-can-i-enable-debug-logging)。
@@ -2,6 +2,10 @@
title: 全局权限
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/global-permissions"/>
</head>
_权限_ 是你在为用户选择自定义权限时可以分配的个人访问权限。
全局权限定义用户在任何特定集群之外的授权。Rancher 提供四种开箱即用的默认全局权限:`Administrator` (管理员)、`Restricted Admin` (受限管理员)、`Standard User` (标准用户) 和 `User-Base` 用户。
@@ -16,8 +20,280 @@ _权限_ 是你在为用户选择自定义权限时可以分配的个人访问
你无法更新或删除内置的全局权限。
## 分配全局权限
本地用户的全局权限分配与使用外部认证登录 Rancher 的用户不同。
### 新本地用户的全局权限
在创建新本地用户时,请在填写**添加用户**表单时为他分配全局权限。
如果需要查看新用户的默认权限:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**角色**。
1. **角色**页面有按范围分组的角色选项卡。每个表都列出了范围内的角色。在**全局**选项卡的**新用户的默认角色**列中,默认授予新用户的权限用复选标记表示。
你可以[更改默认全局权限来满足你的需要](#配置默认的全局权限)
### 使用外部认证登录的用户的全局权限
当用户首次使用外部认证登录 Rancher 时,他们会自动分配到**新用户的默认角色**的全局权限。默认情况下,Rancher 为新用户分配 **Standard User** 权限。
如果需要查看新用户的默认权限:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**角色**。
1. **角色**页面有按范围分组的角色选项卡。每个表都列出了范围内的角色。在每个页面的**新用户的默认角色**列中,默认授予新用户的权限用复选标记表示。
你可以[更改默认权限来满足你的需要](#配置默认的全局权限)
你可以按照[步骤](#为单个用户配置全局权限)操作来将权限分配给单个用户。
如果外部认证服务支持组,你可以[同时为组中的每个成员分配角色](#为组配置全局权限)。
## 自定义全局权限
使用自定义权限可以为用户提供 Rancher 中更为受限或特定的访问权限。
当来自[外部认证](../authentication-config/authentication-config.md)的用户首次登录 Rancher 时,他们会自动分配到一组全局权限(以下简称权限)。默认情况下,用户第一次登录后会被创建为用户,并分配到默认的`用户`权限。标准的`用户`权限允许用户登录和创建集群。
但是,在某些组织中,这些权限可能会被认为权限过大。你可以为用户分配一组更具限制性的自定义全局权限,而不是为用户分配 `Administrator``Standard User` 的默认全局权限。
默认角色(管理员和标准用户)都内置了多个全局权限。系统管理员角色包括所有全局权限,而默认用户角色包括三个全局权限,分别是创建集群、使用应用商店模板和 User Base(登录 Rancher 的最低权限)。换句话说,自定义全局权限是模块化的,因此,如果你要更改默认用户角色权限,你可以选择需要包括在新的默认用户角色中的全局权限子集。
管理员可以通过多种方式强制执行自定义全局权限:
- [创建自定义全局角色](#自定义全局角色).
- [更改新用户的默认权限](#配置默认的全局权限).
- [为单个用户配置全局权限](#为单个用户配置全局权限).
- [为组配置全局权限](#为组配置全局权限).
### 结合内置的全局角色
Rancher 提供了多个全局角色,它们为某些常见的用户场景授予了精细的权限。下表列出了每个内置的全局角色(`Administrator`, `Standard User``User-Base`)以及它包含的默认全局权限
| 自定义全局权限 | Administrator | Standard User | User-Base |
| --------------------------- | ------------- | ------------- | --------- |
| 创建集群 | ✓ | ✓ | |
| 创建 RKE 模板 | ✓ | ✓ | |
| 管理认证 | ✓ | | |
| 管理应用商店 | ✓ | | |
| 管理集群驱动 | ✓ | | |
| 管理主机驱动 | ✓ | | |
| 管理 PodSecurityPolicy 模板 | ✓ | | |
| 管理角色 | ✓ | | |
| 管理设置 | ✓ | | |
| Manage Users | ✓ | | |
| 使用应用商店模板 | ✓ | ✓ | |
| User-Base (基本登录访问) | ✓ | ✓ | |
如果需要查看每个全局权限对应哪些 Kubernetes 资源:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**角色**。
1. 如果单击单个角色的名称,表格会显示该角色授权的所有操作和资源。
:::note 注意事项:
- 上面列出的每个权限都包含多个未在 Rancher UI 中列出的权限。如果需要获取完整权限列表以及组成权限的规则,请通过 `/v3/globalRoles` API 进行访问。
- 在查看 Rancher 创建的默认角色关联的资源时,如果在一行上有多个 Kubernetes API 资源,则该资源将带有 `(Custom)` 标识。这不代表这个资源是自定义资源,而只是表明多个 Kubernetes API 资源作为一个资源。
:::
### 自定义全局角色
当内置的全局角色无法直接满足你的需求时,可以创建自定义全局角色。
通过 UI 或自动化(例如 Rancher Kubernetes API) 创建自定义全局角色,你可以指定使用与上游角色和集群角色相同的规则。
#### Escalate 与 Bind
当授予全局角色权限时,请注意 Rancher 遵循 `escalate``bind`,其方式类似于 [Kubernetes](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#restrictions-on-role-creation-or-update)。
在全局角色提供的这两项配置,都可以授予用户绕过 Rancher 提升校验的权限。这可能允许用户成为管理员。由于这有着极高的安全风险,因此应非常谨慎地将 `bind``escalate` 权限分发给用户。
`escalate` 允许用户更改全局角色并添加任何授权,即使用户没有当前或新版本的全局角色权限。
`bind` 允许用户对指定的全局角色进行授权(创建 ClusterRoleBinding),即使该用户没有访问全局角色的权限。
:::danger
通配符动词 `*` 也包括 `bind``escalate`。这意味着为用户的全局角色设置 `*` 也会提供 `escalate``bind`
:::
##### 自定义全局角色示例
仅为名称为 `test-gr` 的全局角色授予 escalate 权限:
```yaml
rules:
- apiGroups:
- "management.cattle.io"
resources:
- "globalroles"
resourceNames:
- "test-gr"
verbs:
- "escalate"
```
为所有的全局角色授予 escalate 权限:
```yaml
rules:
- apiGroups:
- "management.cattle.io"
resources:
- "globalroles"
verbs:
- "escalate"
```
仅为名称为 `test-gr` 的全局角色授予创建角色绑定(绕过 escalation 检查)的权限
```yaml
rules:
- apiGroups:
- "management.cattle.io"
resources:
- "globalroles"
resourceNames:
- "test-gr"
verbs:
- "bind"
- apiGroups:
- "management.cattle.io"
resources:
- "globalrolebindings"
verbs:
- "create"
```
授予 `*` 权限(同时包含 `escalate``bind`
```yaml
rules:
- apiGroups:
- "management.cattle.io"
resources:
- "globalroles"
verbs:
- "*"
```
#### 下游集群的全局角色权限
全局角色可以通过 `inheritedClusterRoles` 字段在每个下游集群上授予一个或多个 RoleTemplate。此字段中引用的值必须是集群级别的 RoleTemplate 并且在集群 `context` 中存在。
通过此字段,用户将获取当前或未来的所有下游集群的指定权限,例如以下的全局角色示例:
```yaml
apiVersion: management.cattle.io/v3
kind: GlobalRole
displayName: All Downstream Owner
metadata:
name: all-downstream-owner
inheritedClusterRoles:
- cluster-owner
```
任何具有此权限的用户都将是所有下游集群的所有者(cluster-owner)。如果添加了新的集群,无论是什么类型的集群,用户也将是这个集群的所有者。
:::danger
在[默认的全局角色](#配置默认的全局权限)中使用此字段可能会导致用户获得过多的权限。
:::
### 配置默认的全局权限
如果你想限制新用户的默认权限,你可以删除作为默认角色的`用户`权限,然后分配多个单独的权限作为默认权限。你也可以在一组其他标准权限之上添加管理权限。
:::note
默认角色仅分配给从外部认证登录的用户。对于本地用户,在将用户添加到 Rancher 时,必须显式分配全局权限。你可以在添加用户时自定义这些全局权限。
:::
要更改在外部用户首次登录时分配给他们的默认全局权限,请执行以下步骤:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**角色**。在**角色**页面上,确保选择了**全局**选项卡。
1. 查找要添加或删除的默认权限集。然后,通过选择 **⋮ > 编辑配置**来编辑权限。
1. 如果要将权限添加为默认权限,请选择**是:新用户的默认角色**,然后单击**保存**。如果要删除默认权限,请编辑该权限并选择**否**。
**结果**:默认全局权限已根据你的更改配置。分配给新用户的权限会在**新用户的默认角色**列中显示为复选标记。
### 为单个用户配置全局权限
要为单个用户配置权限:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**用户**。
1. 找到要更改访问级别的用户,然后单击 **⋮ > 编辑配置**。
1. 在**全局权限**和**内置角色**部分中,选中你希望用户拥有的权限的复选框。如果你在**角色**页面创建了角色,这些角色将出现在**自定义**部分,你也可以选择这些角色。
1. 单击**保存**。
**结果**:用户的全局权限已更新。
### 为组配置全局权限
如果你有一组需要在 Rancher 中有相同访问权限的用户,你可以一次性将权限分配给整个组来节省时间。这样,组中的用户在第一次登录 Rancher 时能拥有相应级别的访问权限。
将自定义全局角色分配给组后,该角色将在组中用户登录 Rancher 时分配给用户。
对于现有用户,新权限将在用户退出 Rancher 并重新登录时,或当管理员[刷新用户组成员名单](#刷新用户组成员名单)时生效。
对于新用户,新权限在用户首次登录 Rancher 时生效。除了**新用户的默认角色**全局权限外,来自该组的新用户还将获得自定义全局角色的权限。默认情况下,**新用户的默认角色**权限等同于 **Standard User** 全局角色,但默认权限可以[配置。](#配置默认的全局权限)
如果从外部认证服务中将用户从组中删除,该用户将失去分配给该组的自定义全局角色的权限。他们将继续拥有分配给他们的其他剩余角色,这通常包括标记为**新用户的默认角色**的角色。Rancher 将在用户登出或管理员[刷新用户组成员名单](#刷新用户组成员名单)时删除与组关联的权限。
:::note 先决条件:
只有在以下情况下,你才能将全局角色分配给组:
- 你已设置[外部认证](../authentication-config/authentication-config.md#external-vs-local-authentication)
- 外部认证服务支持[用户组](../authentication-config/manage-users-and-groups.md)
- 你已使用外部认证服务设置了至少一个用户组。
:::
要将自定义全局角色分配给组,请执行以下步骤:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**组**。
1. 转到你要分配自定义全局角色的组,然后单击 **⋮ > 编辑配置**。
1. 在**全局权限**,**自定义**和/或**内置角色**部分中,选择该组应具有的权限。
1. 单击**创建**。
**结果**:自定义全局角色会在组内用户登录 Rancher 时生效。
### 刷新用户组成员名单
当管理员更新组的全局权限时,更改将在组成员退出 Rancher 并重新登录后生效。
如果要让更改立即生效,管理员或集群所有者可以刷新用户组成员名单。
如果用户已经从外部认证服务中的组中删除,管理员也需要刷新用户组成员名单。在这种情况下,刷新操作会让 Rancher 知道用户已从组中删除。
要刷新用户组成员名单:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**用户**。
1. 单击**刷新用户组成员名单**。
**结果**:对组成员权限的所有更改都会生效。
## 受限管理员
:::warning 已弃用
受限管理员角色已弃用,并将在未来的 Rancher 版本(2.10 或更高版本)中删除。你应该创建具有所需权限的自定义角色,而不是依赖此项内置角色。
:::
Rancher 2.5 创建了一个新的 `restricted-admin` 角色,以防止本地 Rancher Server Kubernetes 集群的权限提升。此角色对 Rancher 管理的所有下游集群具有完全管理员权限,但没有更改本地 Kubernetes 集群的权限。
`restricted-admin` 可以创建其他具有同样访问权限的 `restricted-admin` 用户。
@@ -29,9 +305,10 @@ Rancher 还增加了一个新设置,来将初始启动的管理员设置为 `r
```
CATTLE_RESTRICTED_DEFAULT_ADMIN=true
```
### `restricted-admin` 的权限列表
下表列出了 `restricted-admin``Administrator``Standard User` 角色相比应具有的权限和操作:
### `受限管理员` 的权限列表
下表列出了 `受限管理员``全局管理员``普通用户` 角色相比应具有的权限和操作:
| 类别 | 操作 | 全局管理员 | 普通用户 | 受限管理员 | 受限管理员的注意事项 |
| -------- | ------ | ------------ | ------------- | ---------------- | ------------------------------- |
@@ -42,7 +319,7 @@ CATTLE_RESTRICTED_DEFAULT_ADMIN=true
| | 访问 CRD 和 CR 的管理集群 | 是 | 否 | 是 | |
| | 另存为 RKE 模板 | 是 | 否 | 否 | |
| 安全 | | | | | |
| 启用身份验证 | 配置身份验证 | 是 | 否 | 是 | |
| 启用证 | 配置证 | 是 | 否 | 是 | |
| 角色 | 创建/分配 GlobalRoles | 是 | 否(可列出) | 是 | 认证 Webhook 允许为已经存在的权限创建 globalrole |
| | 创建/分配 ClusterRoles | 是 | 否(可列出) | 是 | 不在本地集群中 |
| | 创建/分配 ProjectRoles | 是 | 否(可列出) | 是 | 不在本地集群中 |
@@ -81,167 +358,8 @@ CATTLE_RESTRICTED_DEFAULT_ADMIN=true
### 将全局管理员更改为受限管理员
如果 Rancher 已经有一个全局管理员,则应该将所有全局管理员更改为新的 `restricted-admin`
在之前的版本中,文档建议如果管理员角色正在使用中,应将所有用户都更改为受限管理员。现在鼓励用户使用集群权限的功能构建自定义的全局角色,并将受限管理员迁移到新的自定义角色使用
你可以前往**安全 > 用户**,并将所有管理员角色转为受限管理员。
已登录的用户可以根据需要将自己更改为 `restricted-admin`,但这应该是他们的最后一步操作,否则他们将没有进行该操作的权限。
## 分配全局权限
本地用户的全局权限分配与使用外部身份验证登录 Rancher 的用户不同。
### 新本地用户的全局权限
在创建新本地用户时,请在填写**添加用户**表单时为他分配全局权限。
如果需要查看新用户的默认权限:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**角色**。
1. **角色**页面有按范围分组的角色选项卡。每个表都列出了范围内的角色。在**全局**选项卡的**新用户的默认角色**列中,默认授予新用户的权限用复选标记表示。
你可以[更改默认全局权限来满足你的需要](#配置默认全局权限)。
### 使用外部身份验证程序的用户的全局权限
当用户首次使用外部身份验证提供程序登录 Rancher 时,他们会自动分配到**新用户的默认角色**的全局权限。默认情况下,Rancher 为新用户分配 **Standard User** 权限。
如果需要查看新用户的默认权限:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**角色**。
1. **角色**页面有按范围分组的角色选项卡。每个表都列出了范围内的角色。在每个页面的**新用户的默认角色**列中,默认授予新用户的权限用复选标记表示。
你可以[更改默认权限来满足你的需要](#配置默认全局权限)。
权限可以[分配](#为单个用户配置全局权限)给单个用户。
如果外部身份验证提供程序支持组,你可以[同时为组中的每个成员分配角色](#为组配置全局权限)。
## 自定义全局权限
使用自定义权限可以为用户配置在 Rancher 中的更受限或指定的访问权限。
当来自[外部身份验证系统](../../../../pages-for-subheaders/authentication-config.md)的用户首次登录 Rancher 时,他们会自动分配到一组全局权限(以下简称权限)。默认情况下,用户第一次登录后会被创建为用户,并分配到默认的`用户`权限。标准的`用户`权限允许用户登录和创建集群。
但是,在某些组织中,这些权限可能会被认为权限过大。你可以为用户分配一组更具限制性的自定义全局权限,而不是为用户分配 `Administrator``Standard User` 的默认全局权限。
默认角色(管理员和标准用户)都内置了多个全局权限。系统管理员角色包括所有全局权限,而默认用户角色包括三个全局权限,分别是创建集群,使用应用商店模板,和 User Base(登录 Rancher 的最低权限)。换句话说,自定义全局权限是模块化的,因此,如果你要更改默认用户角色权限,你可以选择需要包括在新的默认用户角色中的全局权限子集。
管理员可以通过多种方式强制执行自定义全局权限:
- [更改新用户的默认权限](#配置默认全局权限)
- [为单个用户配置全局权限](#为单个用户配置全局权限)
- [为组配置全局权限](#为组配置全局权限)
### 自定义全局权限参考
下表列出了每个可用的自定义全局权限,以及该权限是否包含在默认全局权限 `Administrator``Standard User``User-Base` 中:
| 自定义全局权限 | 管理员 | 普通用户 | User-Base |
| ---------------------------------- | ------------- | ------------- |-----------|
| 创建集群 | ✓ | ✓ | |
| 创建 RKE 模板 | ✓ | ✓ | |
| 管理身份验证 | ✓ | | |
| 管理应用商店 | ✓ | | |
| 管理集群驱动 | ✓ | | |
| 管理主机驱动 | ✓ | | |
| 管理 PodSecurityPolicy 模板 | ✓ | | |
| 管理角色 | ✓ | | |
| 管理设置 | ✓ | | |
| 管理用户 | ✓ | | |
| 使用应用商店模板 | ✓ | ✓ | |
| User-Base(基本登录访问) | ✓ | ✓ | |
如果需要查看每个全局权限对应哪些 Kubernetes 资源:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**角色**。
1. 如果单击单个角色的名称,表格会显示该角色授权的所有操作和资源。
:::note 注意事项:
- 上面列出的每个权限都包含多个未在 Rancher UI 中列出的权限。如果需要获取完整权限列表以及组成权限的规则,请通过 `/v3/globalRoles` API 进行访问。
- 在查看 Rancher 创建的默认角色关联的资源时,如果在一行上有多个 Kubernetes API 资源,则该资源将带有 `(Custom)` 标识。这不代表这个资源是自定义资源,而只是表明多个 Kubernetes API 资源作为一个资源。
:::
### 配置默认全局权限
如果你想限制新用户的默认权限,你可以删除作为默认角色的`用户`权限,然后分配多个单独的权限作为默认权限。你也可以在一组其他标准权限之上添加管理权限。
:::note
默认角色仅分配给从外部身份验证提供程序添加的用户。对于本地用户,在将用户添加到 Rancher 时,必须显式分配全局权限。你可以在添加用户时自定义这些全局权限。
:::
要更改在外部用户首次登录时分配给他们的默认全局权限,请执行以下步骤:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**角色**。在**角色**页面上,确保选择了**全局**选项卡。
1. 查找要添加或删除的默认权限集。然后,通过选择 **⋮ > 编辑配置**来编辑权限。
1. 如果要将权限添加为默认权限,请选择**是:新用户的默认角色**,然后单击**保存**。如果要删除默认权限,请编辑该权限并选择**否**。
**结果**:默认全局权限已根据你的更改配置。分配给新用户的权限会在**新用户的默认角色**列中显示为复选标记。
### 为单个用户配置全局权限
要为单个用户配置权限:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**用户**。
1. 找到要更改访问级别的用户,然后单击 **⋮ > 编辑配置**。
1. 在**全局权限**和**内置角色**部分中,选中你希望用户拥有的权限的复选框。如果你在**角色**页面创建了角色,这些角色将出现在**自定义**部分,你也可以选择这些角色。
1. 单击**保存**。
**结果**:用户的全局权限已更新。
### 为组配置全局权限
如果你有一组需要在 Rancher 中有相同访问权限的用户,你可以一次性将权限分配给整个组来节省时间。这样,组中的用户在第一次登录 Rancher 时能拥有相应级别的访问权限。
将自定义全局角色分配给组后,该角色将在组中用户登录 Rancher 时分配给用户。
对于现有用户,新权限将在用户退出 Rancher 并重新登录时,或当管理员[刷新用户组成员名单](#刷新用户组成员名单)时生效。
对于新用户,新权限在用户首次登录 Rancher 时生效。除了**新用户的默认角色**全局权限外,来自该组的新用户还将获得自定义全局角色的权限。默认情况下,**新用户的默认角色**权限等同于 **Standard User** 全局角色,但默认权限可以[配置。](#配置默认全局权限)
如果从外部身份验证提供程序组中删除用户,该用户将失去分配给该组的自定义全局角色的权限。他们将继续拥有分配给他们的所有剩余角色,这通常包括标记为**新用户的默认角色**的角色。Rancher 将在用户登出或管理员[刷新用户组成员名单](#刷新用户组成员名单)时删除与组关联的权限。
:::note 先决条件:
只有在以下情况下,你才能将全局角色分配给组:
* 你已设置[外部身份验证提供程序](../../../../pages-for-subheaders/authentication-config.md#外部验证与本地验证)。
* 外部身份验证提供程序支持[用户组](../authentication-config/manage-users-and-groups.md)。
* 你已使用身份验证提供程序设置了至少一个用户组。
:::
要将自定义全局角色分配给组,请执行以下步骤:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**组**。
1. 转到你要分配自定义全局角色的组,然后单击 **⋮ > 编辑配置**。
1. 在**全局权限**,**自定义**和/或**内置角色**部分中,选择该组应具有的权限。
1. 单击**创建**。
**结果**:自定义全局角色会在组内用户登录 Rancher 时生效。
### 刷新用户组成员名单
当管理员更新组的全局权限时,更改将在组成员退出 Rancher 并重新登录后生效。
如果要让更改立即生效,管理员或集群所有者可以刷新用户组成员名单。
如果用户已经从外部身份验证服务中的组中删除,管理员也可能需要刷新用户组成员名单。在这种情况下,刷新操作会让 Rancher 知道用户已从组中删除。
要刷新用户组成员名单:
1. 在左上角,单击 **☰ > 用户 & 认证**。
1. 在左侧导航栏中,单击**用户**。
1. 单击**刷新用户组成员名单**。
**结果**:对组成员权限的所有更改都会生效。
@@ -0,0 +1,29 @@
---
title: 管理 RBAC
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac"/>
</head>
Rancher 通过 _用户_ 进行授权管理。如[认证](../authentication-config/authentication-config.md)中所述,用户可以是本地用户,也可以是外部用户。
配置外部认证后,**用户**页面上显示的用户会发生变化。
- 如果你以本地用户身份登录,则仅显示本地用户。
- 如果你以外部用户身份登录,则会同时显示外部用户和本地用户。
## 用户和角色
一旦用户登录到 Rancher,他们的 _授权_,也就是他们在系统中的访问权限,将由 _全局权限__集群和项目角色_ 决定。
- [全局权限](global-permissions.md):
定义用户在任何特定集群之外的授权。
- [集群和项目角色](cluster-and-project-roles.md):
定义用户在分配了角色的特定集群或项目中的授权。
全局权限以及集群和项目角色都是基于 [Kubernetes RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) 实现的。因此,权限和角色的底层实现是由 Kubernetes 完成的。
@@ -0,0 +1,33 @@
---
title: 通过托管 Kubernetes 提供商设置集群
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers"/>
</head>
在这种情况下,Rancher 不会配置 Kubernetes,因为它是由 Google Kubernetes Engine (GKE)、Amazon Elastic Container Service for Kubernetes 或 Azure Kubernetes Service 等提供商安装的。
如果你使用 Kubernetes 提供商,例如 Google GKERancher 将与对应的云 API 集成,允许你从 Rancher UI 为托管集群创建和管理 RBAC。
在这个用例中,Rancher 使用提供商的 API 向托管提供商发送请求。然后,提供商会为你配置和托管集群。集群创建成功后,你可以像管理本地集群或云上集群一样,通过 Rancher UI 对集群进行管理。
Rancher 支持以下 Kubernetes 提供商:
- [Google GKE (Google Kubernetes Engine)](https://cloud.google.com/kubernetes-engine/)
- [Amazon EKS (Amazon Elastic Container Service for Kubernetes)](https://aws.amazon.com/eks/)
- [Microsoft AKS (Azure Kubernetes Service)](https://azure.microsoft.com/en-us/services/kubernetes-service/)
- [Alibaba ACK (Alibaba Cloud Container Service for Kubernetes)](https://www.alibabacloud.com/product/kubernetes)
- [Tencent TKE (Tencent Kubernetes Engine)](https://intl.cloud.tencent.com/product/tke)
- [Huawei CCE (Huawei Cloud Container Engine)](https://www.huaweicloud.com/en-us/product/cce.html)
## 托管 Kubernetes 提供商的认证
使用 Rancher 创建由提供商托管的集群时,你需要输入认证信息。Rancher 会使用认证信息来访问云厂商的 API。有关如何获取此信息的详情,请参阅:
- [创建 GKE 集群](gke.md)
- [创建 EKS 集群](eks.md)
- [创建 AKS 集群](aks.md)
- [创建 ACK 集群](alibaba.md)
- [创建 TKE 集群](tencent.md)
- [创建 CCE 集群](huawei.md)
@@ -0,0 +1,84 @@
---
title: 使用 Rancher 启动 Kubernetes
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/launch-kubernetes-with-rancher"/>
</head>
Rancher 可以使用任意节点启动 Kubernetes 集群。在 Rancher 中将 Kubernetes 部署到这些节点上时,你可以选择 [Rancher Kubernetes Engine](https://rancher.com/docs/rke/latest/en/) (RKE) 或 [RKE2](https://docs.rke2.io) 发行版。Rancher 可以在任何计算机上启动 Kubernetes,包括:
- 裸金属服务器
- 本地虚拟机
- 由云厂商托管的虚拟机
Rancher 可以在现有节点上安装 Kubernetes,也可以在云厂商中动态配置节点并安装 Kubernetes。
Rancher 还可以创建节点池。在托管在云厂商的节点池上安装 Kubernetes 的一个好处是,如果一个节点与集群断开连接,Rancher 可以自动创建另一个节点并将其加入集群,从而确保节点池的数量符合要求。
## RKE
### 要求
如果你使用 RKE 建立集群,节点必须满足下游集群的[节点要求](../kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters.md)。
### 在云厂商的新节点上启动 Kubernetes
使用 Rancher,你可以基于[节点模板](use-new-nodes-in-an-infra-provider/use-new-nodes-in-an-infra-provider.md#节点模板)创建节点池。此节点模板定义了要用于在云厂商中启动节点的参数。
在托管在云厂商的节点池上安装 Kubernetes 的一个好处是,如果一个节点与集群断开连接,Rancher 可以自动创建另一个节点并将其加入集群,从而确保节点池的数量符合要求。
有关详细信息,请参阅[在新节点上启动 Kubernetes](use-new-nodes-in-an-infra-provider/use-new-nodes-in-an-infra-provider.md)。
### 在现有自定义节点上启动 Kubernetes
在这种情况下,你希望将 Kubernetes 安装到裸机服务器、本地虚拟机或云厂商中已存在的虚拟机上。使用此选项,你将在主机上运行 Rancher Agent Docker 容器。
如果要重复使用之前的自定义集群中的节点,请在复用之前[清理节点](../manage-clusters/clean-cluster-nodes.md)。如果你重复使用尚未清理的节点,则集群配置可能会失败。
有关详细信息,请参阅[自定义节点](../../../reference-guides/cluster-configuration/rancher-server-configuration/use-existing-nodes/use-existing-nodes.md)。
### 以编程方式创建 RKE 集群
通过 Rancher 以编程方式部署 RKE 集群的最常见方法是使用 Rancher 2 Terraform Provider。详情请参见[使用 Terraform 创建集群](https://registry.terraform.io/providers/rancher/rancher2/latest/docs/resources/cluster)。
## RKE2
Rancher 2.6 支持直接使用 Rancher UI 配置 [RKE2](https://docs.rke2.io/) 集群。RKE2,也称为 RKE Government,是一个完全符合标准的 Kubernetes 发行版,它专注于安全性和合规性。在 Rancher 2.6.4 及更早版本中,RKE2 配置还处于技术预览阶段。
在 Rancher 2.6.5 中,RKE2 已经 GA。
### 要求
如果你使用 RKE2 建立集群,节点必须满足下游集群的[节点要求](https://docs.rke2.io/install/requirements)。
### 在云厂商的新节点上启动 Kubernetes
RKE2 基于使用上游[集群 API](https://github.com/kubernetes-sigs/cluster-api) 项目的新配置框架。这个新配置框架支持:
- 将 RKE2 集群配置到 Rancher 具有主机驱动的任何提供商上
- 完全在 Rancher 中配置 RKE2 集群
- 除了 Canal 之外,还可以选择 CNI 选项, Calico、Cilium 和 Multus
RKE2 配置还包括在具有 Windows 节点的集群上安装 RKE2。
RKE2 的 Windows 功能包括:
- Windows 支持 vSphere 主机驱动
- 用于 Windows RKE2 自定义集群的 Calico CNI
- Calico 的项目网络隔离 (PNI)
- 由 containerd 提供支持的使用 RKE2 的 Windows 容器
- 通过 Terraform 配置 Windows RKE2 集群
- 直接从 Rancher UI 配置 Windows RKE2 自定义集群
要使 Windows 支持 RKE2 自定义集群,请选择 Calico 作为 CNI。
### 在现有自定义节点上启动 Kubernetes
RKE2 还支持在预配置的虚拟机或裸机节点上安装自定义集群。
如果要重复使用之前的自定义集群中的节点,请在复用之前清理节点。如果你重复使用尚未清理的节点,则集群配置可能会失败。
### 以编程方式创建 RKE2 集群
通过 Rancher 以编程方式部署 RKE2 集群的最常见方法是使用 Rancher 2 Terraform Provider。详情请参见[使用 Terraform 创建集群](https://registry.terraform.io/providers/rancher/rancher2/latest/docs/resources/cluster_v2)。
@@ -0,0 +1,156 @@
---
title: 在云厂商的新节点上启动 Kubernetes
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider"/>
</head>
在 Rancher 中使用节点模板来创建 RKE 或 RKE2 集群时,每个生成的节点池都会显示在新的**主机池**选项卡中。你可以通过执行以下操作来查看主机池:
1. 点击**☰ > 集群管理**。
1. 单击 RKE 或 RKE2 集群的名称。
## RKE 集群
使用 Rancher,你可以基于[节点模板](use-new-nodes-in-an-infra-provider.md#节点模板)创建节点池。此节点模板定义了要用于在基础设施提供商或云厂商中启动节点的参数。
在托管在云厂商的节点池上安装 Kubernetes 的一个好处是,如果一个节点与集群断开连接,Rancher 可以自动创建另一个节点并将其加入集群,从而确保节点池的数量符合要求。
可用于创建节点模板的云提供商是由[主机驱动](use-new-nodes-in-an-infra-provider.md#主机驱动)决定的。
### 节点模板
节点模板保存了用于在特定云提供商中配置节点时要使用的参数。这些节点可以从 UI 启动。Rancher 使用 [Docker Machine](https://docs.docker.com/machine/) 来配置这些节点。可用于创建节点模板的云提供商取决于 Rancher 中状态是 Active 的主机驱动。
在 Rancher 中创建节点模板后,模板会被保存,以便你可以再次使用该模板来创建节点池。节点模板绑定到你的登录名。添加模板后,你可以将其从用户配置文件中删除。
#### 节点标签
你可以为每个节点模板添加[标签](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/),这样,使用节点模板创建的节点都会自动带有这些标签。
无效标签会阻止升级,或阻止 Rancher 启动。有关标签语法的详细信息,请参阅 [Kubernetes 文档](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set)。
#### 节点污点
你可以为每个节点模板添加[污点](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/),这样,使用节点模板创建的节点都会自动带有这些污点。
由于污点可以同时添加到节点模板和节点池中,因此如果添加了相同键的污点效果没有冲突,则所有污点都将添加到节点中。如果存在具有相同键但不同效果的污点,则节点池中的污点将覆盖节点模板中的污点。
#### 节点模板的管理员控制
管理员可以控制所有节点模板。现在,管理员可以维护 Rancher 中的所有节点模板。当节点模板所有者不再使用 Rancher 时,他们创建的节点模板可以由管理员管理,以便继续更新和维护集群。
要访问所有节点模板,管理员需要执行以下操作:
1. 点击 **☰ > 集群管理**。
1. 单击 **RKE1 配置 > 节点模板**
**结果**:列出所有节点模板。你可以通过单击 **⋮** 来编辑或克隆模板。
### 节点池
使用 Rancher,你可以基于[节点模板](#节点模板)创建节点池。
节点模板定义了节点的配置,例如要使用的操作系统、CPU 数量和内存量。
使用节点池的好处是,如果一个节点被销毁或删除,你可以增加 Active 节点的数量来补偿丢失的节点。节点池可以帮助你确保节点池的计数符合要求。
每个节点池必须分配一个或多个节点角色。
每个节点角色(即 etcd、controlplane 和 worker)都应分配给不同的节点池。虽然你可以将多个节点角色分配给同一个节点池,但不要在生产集群中执行此操作。
推荐的设置:
- 具有 etcd 角色且计数为 3 的节点池
- 具有 controlplane 角色且计数至少为 2 的节点池
- 具有 worker 角色且计数至少为 2 的节点池
**离线环境中的 RKE1 下游集群节点**
默认情况下,在配置 RKE1 下游集群节点时(例如在 vSphere 中),Rancher 会尝试运行 Docker 安装脚本。但是,Rancher Docker 安装脚本在离线环境中会运行失败。要解决此问题,如果 Docker 已预安装到 VM 镜像上,你可以选择在创建节点模板时跳过安装 Docker。为此,你可以在 Rancher UI **引擎选项**下的 `Docker 安装 URL` 下拉列表中选择 **无**
<figcaption>**引擎选项下拉列表**</figcaption>
![引擎选项下拉列表](/img/node-template-engine-options-rke1.png)
#### 节点池污点
如果你没有在节点模板上定义[污点](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/),则可以为每个节点池添加污点。将污点添加到节点池的好处是你可以更改节点模板,而不需要先确保污点存在于新模板中。
每个污点都将自动添加到节点池中已创建的节点。因此,如果你在已有节点的节点池中添加污点,污点不会应用到已有的节点,但是添加到该节点池中的新节点都将获得该污点。
如果污点同时添加到节点模板和节点池中,且添加了相同键的污点效果没有冲突,则所有污点都将添加到节点中。如果存在具有相同键但不同效果的污点,则节点池中的污点将覆盖节点模板中的污点。
#### 节点自动替换
Rancher 可以自动替换节点池中无法访问的节点。如果节点在指定的时间中处于 Inactive 状态,Rancher 将使用该节点池的节点模板来重新创建节点。
:::caution
自我修复节点池的功能帮助你替换<b>无状态</b>应用的 worker 节点。不建议在 master 节点或连接了持久卷的节点的节点池上启用节点自动替换,因为虚拟机会被临时处理。节点池中的节点与集群断开连接时,其持久卷将被破坏,从而导致有状态应用的数据丢失。
:::
节点自动替换基于 Kubernetes 节点控制器工作。节点控制器定期检查所有节点的状态(可通过 `kube-controller``--node-monitor-period` 标志配置)。一个节点不可访问时,节点控制器将污染该节点。发生这种情况时,Rancher 将开始其删除倒计时。你可以配置 Rancher 等待删除节点的时间。如果在删除倒计时结束前污点没有被删除,Rancher 将继续删除该节点。Rancher 会根据节点池设置的数量来创建新的节点。
#### 启用节点自动替换
创建节点池时,你可以指定 Rancher 替换无响应节点的等待时间(以分钟为单位)。
1. 在创建或编辑集群的表单中,转到**节点池**。
1. 转到要启用节点自动替换的节点池。在 **Recreate Unreachable After** 字段中,输入 Rancher 在替换节点之前应该等待节点响应的分钟数。
1. 填写表单的其余部分以创建或编辑集群。
**结果** :已为节点池启用节点自动替换。
#### 禁用节点自动替换
你可以执行以下步骤从 Rancher UI 禁用节点自动替换:
1. 点击 **☰ > 集群管理**。
1. 在**集群**页面上,转到要禁用节点自动替换的集群,然后单击 **⋮ > 编辑配置**。
1. 在**节点池**部分中,转到要启用节点自动替换的节点池。在 **Recreate Unreachable After** 字段中,输入 0。
1. 单击**保存**。
**结果**:已禁用节点池的节点自动替换。
### 云凭证
节点模板可以使用云凭证,来存储用于在云提供商中启动节点的凭证,其优点是:
- 凭证会存储为更安全的 Kubernetes 密文,而且你无需每次都输入凭证便可编辑节点模板。
- 创建云凭证后,你可以重新使用该凭证来创建其他节点模板。
- 多个节点模板可以使用相同的云凭证来创建节点池。如果你的密钥被泄露或过期,则可以在一个位置更新云凭证,从而一次更新所有使用该凭证的节点模板。
创建云凭证后,用户可以[管理创建的云凭证](../../../../reference-guides/user-settings/manage-cloud-credentials.md)。
### 主机驱动
如果你找不到想要的主机驱动,你可以在 Rancher 的[内置主机驱动](../../authentication-permissions-and-global-configuration/about-provisioning-drivers/manage-node-drivers.md#激活停用主机驱动)中查看并激活它,也可以[添加自定义主机驱动](../../authentication-permissions-and-global-configuration/about-provisioning-drivers/manage-node-drivers.md#添加自定义主机驱动)。
## RKE2 集群
Rancher 2.6 支持直接使用 Rancher UI 配置 [RKE2](https://docs.rke2.io/) 集群。RKE2,也称为 RKE Government,是一个完全符合标准的 Kubernetes 发行版,它专注于安全性和合规性。
:::note
对于 RKE2 集群模板,请参阅[此页面](../../manage-clusters/manage-cluster-templates.md#rke2-集群模板)了解更多信息。
:::
### 节点角色
RKE2 CLI 公开了 `server``agent` 两个角色,它们分别代表 Kubernetes 节点角色 `etcd` + `controlplane``worker`。通过 Rancher 2.6 中的 RKE2 集成,RKE2 节点池可以分配更细粒度的角色,例如 `etcd``controlplane`
你可以在 RKE2 CLI 中使用标志和节点污染,来控制调度工作负载和 Kubernetes master 节点的位置,从而使用 `etcd``controlplane``worker` 节点功能。这些角色没有在 RKE2 CLI 中实现为第一级角色的原因是,RKE2 被概念化为一组原始构建块,使用 Rancher 等编排系统得到最佳利用。
在 Rancher 中实现这三个节点角色,表示 Rancher 管理的 RKE2 集群能够轻松使用为 RKE 集群推荐的相同架构的所有最佳实践。
在[推荐的集群架构](../../kubernetes-clusters-in-rancher-setup/checklist-for-production-ready-clusters/recommended-cluster-architecture.md)中,我们概述了每个角色集群应该有多少节点:
- 至少拥有三个角色为 etcd 的节点,来确保失去一个节点时仍能存活。
- 至少两个节点具有 controlplane 角色,以实现主组件高可用性。
- 至少两个具有 worker 角色的节点,用于在节点故障时重新安排工作负载。
@@ -0,0 +1,13 @@
---
title: 新用户指南
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides"/>
</head>
新用户指南,也称为 **教程**,描述了用户在完成一些具体操作时要遵循的实用步骤。这些文档被称为“以学习为导向”的文档,用户通过“实际操作”来学习。
新用户指南旨在指导初学者或 Rancher 的日常用户通过一系列步骤来学习如何做某件事。目标是让用户可以通过易于操作、有意义的、可重复的指示来学习如何完成任务。这些指南将帮助用户完成工作,然后立即获得承诺的结果。
普通的 Rancher 用户的技术水平高于“初学者”,但是新用户指南旨在同等的帮助新用户、初学者以及经验丰富的 Rancher 客户,这是通过结合使用高级和技术语言来介绍主题并指导用户完成每个 Rancher 用户都必须了解的一般任务来实现的。