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 中创建集群时,系统会询问您是否要创建以下任一类型:
- 一个基于角色的访问控制(RBAC)集群,这是 GitLab 的默认和推荐选项。
- 一个基于属性的访问控制(ABAC)集群。
当 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。