Help us learn about your current experience with the documentation. Take the survey.

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

  • Tier: 免费版、高级版、旗舰版
  • Offering: GitLab.com、GitLab 自托管

此功能在 GitLab 14.5 中已弃用。 要将集群连接到 GitLab,请改用 GitLab agent for Kubernetes

在 GitLab 中创建集群时,系统会询问您是否要创建以下任一类型:

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

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

如果您正在添加现有的 Kubernetes 集群,请确保该账户的令牌具有集群的管理员权限。

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

重要说明

关于访问控制,请注意以下几点:

  • 只有当您的集群由 GitLab管理时,才会创建环境特定的资源。
  • 如果您的集群是在 GitLab 12.2 之前创建的,它将使用单个命名空间来容纳所有项目环境。

RBAC 集群资源

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

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

ABAC 集群资源

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

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

Runner 的安全性

默认情况下,Runner 启用了特权模式,这使它们能够执行特殊命令并运行 Docker in Docker。此功能运行某些 Auto DevOps 作业是必需的。这意味着容器正在以特权模式运行,因此您应该了解一些重要细节。

特权标志为运行中的容器提供所有功能,反过来它可以执行主机几乎可以做的所有事情。请注意,在任意镜像上执行 docker run 操作存在固有的安全风险,因为它们实际上具有 root 访问权限。

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

  • 在 GitLab.com 上使用实例 runner。它们没有这个安全问题。
  • 设置使用 docker+machine 的自己的 runner。