服务账户
- Tier: Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
服务账户是代表非人类实体而非个人用户的账户。 您可以使用服务账户执行自动化操作、访问数据或运行定时任务。 服务账户通常用于流水线或第三方集成中,在这些场景下,凭证必须保持稳定,不受人类用户成员变更的影响。
服务账户有两种类型:
- 实例服务账户:可供整个 GitLab 实例使用,但必须像人类用户一样添加到 组和项目中。仅在 GitLab Self-Managed 和 GitLab Dedicated 上可用。
- 组服务账户:由特定顶级组拥有,可以像人类用户一样继承 子组和项目的成员资格。
您使用个人访问令牌作为服务账户进行身份验证。 服务账户具有与人类用户相同的能力,可以执行操作, 例如与包和容器注册表交互, 执行 Git 操作, 以及访问 API。
服务账户:
- 不占用席位。
- 无法通过 UI 登录 GitLab。
- 在组和项目成员资格中被标识为服务账户。
- 除非添加自定义电子邮件地址,否则不会接收通知邮件。
- 不是计费用户或内部用户。
- 不能与 GitLab.com 的试用版本一起使用。
- 可以与 GitLab Self-Managed 和 GitLab Dedicated 的试用版本一起使用。
您也可以通过 API 管理服务账户。
- 对于实例服务账户,使用服务账户用户 API。
- 对于组服务账户,使用组服务账户 API。
前置条件
- 在 GitLab.com 上,您必须在顶级组中拥有 Owner 角色。
- 在 GitLab Self-Managed 或 GitLab Dedicated 上,您必须满足以下条件之一:
- 是实例的管理员。
- 在顶级组中拥有 Owner 角色并被允许创建服务账户。
查看和管理服务账户
服务账户页面显示您顶级组或实例中服务账户的信息。每个顶级组和 GitLab Self-Managed 实例都有独立的服务账户页面。从这些页面,您可以:
- 查看您组或实例的所有服务账户。
- 删除服务账户。
- 编辑服务账户的名称或用户名。
- 管理服务账户的个人访问令牌。
要查看整个实例的服务账户:
- 在左侧边栏底部,选择 Admin。
- 选择 Settings > Service accounts。
要查看顶级组的服务账户:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Settings > Service accounts。
创建服务账户
在 GitLab.com 上,您可以创建由顶级组拥有的服务账户。
默认情况下,在 GitLab Self-Managed 和 GitLab Dedicated 上,只有管理员可以创建服务账户。 您可以允许顶级组所有者创建服务账户。
您可以创建的服务账户数量受许可证限制:
- 在 GitLab Free 上,您无法创建服务账户。
- 在 GitLab Premium 上,您可以为每个付费席位创建一个服务账户。
- 在 GitLab Ultimate 上,您可以创建无限数量的服务账户。
要创建服务账户:
- 转到服务账户页面。
- 选择 Add service account。
- 输入服务账户的名称。用户名将根据名称自动生成。如需要,您可以修改用户名。
- 选择 Create service account。
编辑服务账户
您可以编辑服务账户的名称或用户名。
要编辑服务账户:
- 转到服务账户页面。
- 识别一个服务账户。
- 选择垂直省略号 ( ) > Edit。
- 编辑服务账户的名称或用户名。
- 选择 Save changes。
服务账户对组和项目的访问权限
服务账户类似于外部用户。首次创建时, 它们对组和项目的访问权限有限。要授予服务账户访问资源的权限, 您必须将其添加到每个组或项目中。
您可以添加到组或项目中的服务账户数量没有限制。服务账户 在每个组、子组或项目中可以拥有不同的角色。 在 GitLab.com 上,组的服务账户只能属于单个顶级组。
您可以像管理人类用户访问权限一样管理服务账户对组和项目的访问权限。有关更多信息,请参阅 组和项目成员。
您还可以使用成员 API管理组和项目分配。
删除服务账户
当您删除服务账户时,该账户所做的任何贡献都会被保留,所有权 将转移到系统范围的幽灵用户账户。这些贡献可能包括活动, 例如合并请求、问题、项目和组。
要删除服务账户:
- 转到服务账户页面。
- 识别一个服务账户。
- 选择垂直省略号 ( ) > Delete account。
- 输入服务账户的名称。
- 选择 Delete user。
您也可以删除服务账户以及该账户所做的任何贡献。这些 贡献可能包括活动,例如合并请求、问题、组和项目。
- 转到服务账户页面。
- 识别一个服务账户。
- 选择垂直省略号 ( ) > Delete account and contributions。
- 输入服务账户的名称。
- 选择 Delete user and contributions。
您也可以通过 API 删除服务账户。
查看和管理服务账户的个人访问令牌
个人访问令牌页面显示您顶级组或实例中与服务账户关联的个人访问令牌信息。从这些页面,您可以:
- 筛选、排序和查看个人访问令牌的详细信息。
- 轮换个人访问令牌。
- 撤销个人访问令牌。
您也可以通过 API 管理服务账户的个人访问令牌。
- 对于实例服务账户,使用个人访问令牌 API。
- 对于组服务账户,使用组服务账户 API。
要查看服务账户的个人访问令牌页面:
- 转到服务账户页面。
- 识别一个服务账户。
- 选择垂直省略号 ( ) > Manage access tokens。
为服务账户创建个人访问令牌
要使用服务账户,您必须创建个人访问令牌来验证请求。
要为服务账户创建个人访问令牌:
- 转到服务账户页面。
- 识别一个服务账户。
- 选择垂直省略号 ( ) > Manage access tokens。
- 选择 Add new token。
- 在 Token name 中,输入令牌名称。
- 可选。在 Token description 中,输入令牌描述。
- 在 Expiration date 中,输入令牌的过期日期。
- 令牌在该日期午夜 UTC 时过期。过期日期为 2024-01-01 的令牌在 2024-01-01 00:00:00 UTC 时过期。
- 如果您不输入过期日期,过期日期将自动设置为当前日期后 365 天。
- 默认情况下,该日期最多可以是当前日期后 365 天。在 GitLab 17.6 或更高版本中,您可以将此限制延长至 400 天。
- 选择所需范围。
- 选择 Create personal access token。
轮换个人访问令牌
您可以轮换个人访问令牌以使当前令牌失效并生成新值。
此操作无法撤销。任何依赖轮换后令牌的服务都将停止工作。
要轮换服务账户的个人访问令牌:
- 转到服务账户页面。
- 识别一个服务账户。
- 选择垂直省略号 ( ) > Manage access tokens。
- 在活动令牌旁边,选择垂直省略号 ( )。
- 选择 Rotate。
- 在确认对话框中,选择 Rotate。
撤销个人访问令牌
您可以轮换个人访问令牌以使当前令牌失效。
此操作无法撤销。任何依赖撤销后令牌的服务都将停止工作。
要撤销服务账户的个人访问令牌:
- 转到服务账户页面。
- 识别一个服务账户。
- 选择垂直省略号 ( ) > Manage access tokens。
- 在活动令牌旁边,选择垂直省略号 ( )。
- 选择 Revoke。
- 在确认对话框中,选择 Revoke。
速率限制
速率限制适用于服务账户:
- 在 GitLab.com 上,适用GitLab.com 特定的速率限制。
- 在 GitLab Self-Managed 和 GitLab Dedicated 上,适用以下速率限制: