使用集群证书进行访问控制(RBAC 或 ABAC)(已废弃) (FREE)

废弃于 14.5 版本。

WARNING: 此功能废弃于 14.5 版本。要将集群连接到极狐GitLab,请改用极狐GitLab 代理

在极狐GitLab 中创建集群时,系统会询问您是否要创建:

当极狐GitLab 创建集群时,会在 default 命名空间中创建一个具有 cluster-admin 权限的 gitlab 服务帐户来管理新创建的集群。

Helm 还为每个已安装的应用程序创建额外的服务帐户和其它资源。有关详细信息,请参阅每个应用程序的 Helm chart 文档。

如果是添加现有的 Kubernetes 集群,请确保账户的 token 具有集群的管理员权限。

极狐GitLab 创建的资源因集群类型而异。

重要注意事项

请注意以下有关访问控制的内容:

  • 仅当您的集群由极狐GitLab 托管时,才会创建特定于环境的资源。
  • 如果您的集群是在 12.2 版本之前创建的,它对所有项目环境使用一个命名空间。

RBAC 集群资源

极狐GitLab 为 RBAC 集群创建以下资源。

名称 类型 详情 何时创建
gitlab ServiceAccount default 命名空间 创建新集群时
gitlab-admin ClusterRoleBinding cluster-admin roleRef 创建新集群时
gitlab-token Secret gitlab ServiceAccount 的令牌 创建新集群时
环境命名空间 Namespace 包含所有特定于环境的资源 部署到集群时
环境命名空间 ServiceAccount 使用环境的命名空间 部署到集群时
环境命名空间 Secret 环境 ServiceAccount 的令牌 部署到集群时
环境命名空间 RoleBinding admin roleRef 部署到集群时

环境命名空间 RoleBinding 在 13.6 版本中更新为 admin roleRef,之前使用的是 edit roleRef。

ABAC 集群资源

极狐GitLab 为 ABAC 集群创建以下资源。

| 名称 | 类型 | 何时创建 | |:----------------------|:---------------------|:-------------------------------------|:---------------------------| | gitlab | ServiceAccount | default 命名空间 | 创建新集群时 | | gitlab-token | Secret | gitlab ServiceAccount 的令牌 | 创建新集群时 | | 环境命名空间 | Namespace | 包含所有特定于环境的资源 | 部署到集群时 | | 环境命名空间 | ServiceAccount | 使用环境的命名空间 | 部署到集群时 | | 环境命名空间 | Secret | 环境 ServiceAccount 的令牌 | 部署到集群时 |

runners 安全

Runners 默认启用特权模式,允许其执行特殊命令,并运行 Docker in Docker。运行某些 Auto DevOps 作业需要此功能。这意味着容器正在特权模式下运行,因此您应该注意一些重要的细节。

特权标志为正在运行的容器提供了所有功能,而容器又可以执行主机可以执行的几乎所有操作。请注意与对任意镜像执行 docker run 操作相关的固有安全风险,因为它们实际上具有 root 访问权限。

如果您不想在特权模式下使用 runner:

  • 在 SaaS 版上使用共享 runner。
  • 设置您自己的使用 docker+machine runner。