用户角色管理
自 Travis CI 企业版 3.1.0 起可用
Travis CI 引入了新的用户角色管理功能,以提高安全性并增强功能。此功能提供更细化的访问控制管理,添加更严格的访问权限管理,同时继续保护 CI/CD 构建作业日志中可能存在的关键信息。
此功能允许 Travis CI 管理员对用户权限执行许可限制,将其限制为工作所需的最少功能(按需)以保护特定的构建作业日志。
启用用户角色管理 #
从 Travis CI 企业版管理控制台中,打开 Config
菜单,展开左侧的 高级设置
菜单,然后单击 用户角色管理
。
要启用此设置,请选择 已启用
选项并保存设置。
Travis CI 角色 #
新的 Travis CI 用户是通过“使用...登录”功能创建的,将第三方应用程序(GitHub、Assembla、BitBucket 或 GitLab)链接到 Travis CI。有关更多信息,请参见 入门。
在 Travis CI 中,用户可以访问 Travis CI 存储库和帐户功能,以及以下不同类型的用户角色。
- 管理员
- 存储库:管理存储库设置,触发构建,并可以使用围绕构建的各种功能。
- 帐户:能够在 Travis CI 和结算中激活存储库。
- 推送(写入)用户
- 存储库:触发构建并可以使用围绕构建的各种功能。
- 帐户:能够请求在 Travis CI 中激活存储库。
- 拉取(读取)用户
- 存储库:无法触发构建,并且围绕构建的功能有限。
- 帐户:能够请求在 Travis CI 中激活存储库。
- 所有者:所有者是所拥有存储库和帐户的管理员用户。所有者可以是用户或组织。
此功能授权管理员用户根据自己的喜好处理普通用户。普通用户仍然必须使用版本控制系统 (VCS) 登录。因此,用户管理功能允许管理员用户为具有访问 Travis CI 权限的用户识别普通用户角色。
成员管理选项卡 #
成员管理选项卡显示一个包含用户及其相应角色的列表。
Travis CI 管理员用户会看到一个用户列表,并可以更改或分配普通用户的角色。管理员用户可以使用“同步组织”或“同步用户”来更新用户列表。
以下是每个用户可以关联多个角色的可用字段。
- 姓名:显示用户的姓名。
- 登录:显示用户的登录电子邮件。
- 旧角色:显示所选用户的先前授权权限。
- 新角色:显示分配给所选用户的角色或角色数量。允许管理员用户为所选用户选择或更改角色。
- 全部:启用所有四个选项。
- 管理员:具有所有帐户和存储库权限。
- 帐户设置编辑器:访问创建和编辑帐户设置的权限。
- 帐户设置管理员:管理帐户的无限权限,并且可以管理帐户计划、账单和联系人。
- 帐户计划查看器:可以查看、使用和查看帐户计划。
- 可以构建:选中此复选框以授权所选用户进行构建。
用户管理选项卡 #
用户管理选项卡列出了具有访问存储库权限的用户,并且 Travis CI 管理员用户可以分配存储库连接角色。
以下是每个用户可以关联多个角色的可用字段。
- 姓名:显示用户的姓名。
- 登录:显示用户的登录电子邮件。
- 新角色:显示分配给所选用户的角色或角色数量。允许管理员用户为所选用户选择或更改角色。
下表显示了可用角色及其当前权限。
角色 | 权限(技术) | 权限说明 |
---|---|---|
Repository.Settings.Editor | repository.settings.create、repository.settings.update、repository.settings.delete | 可以完全管理存储库设置 |
Repository.Settings.Viewer | repository.settings.read | 可以读取存储库设置 |
Repository.Builds.Restarter | repository.build.restart | 可以重启存储库构建 |
Repository.Builds.Triggerer | repository.build.create、repository.build.cancel | 可以创建和取消存储库构建 |
Repository.Builds.Cancel | repository.build.cancel | 可以取消存储库构建 |
Repository.Logs.Viewer | repository.log.view | 可以查看存储库日志 |
Repository.Logs.Admin | repository.log.delete、repository.log.view | 可以删除和查看存储库日志 |
Repository.Builds.Debugger | repository.build.debug | 可以调试存储库构建 |
Repository.Cache.Editor | repository.cache.delete、repository.cache.view | 可以删除和查看存储库缓存 |
Repository.Cache.Viewer | repository.cache.view | 可以查看存储库缓存 |
Repository.Collaborator | repository.build.create、repository.build.cancel、repository.build.restart、repository.log.delete、repository.log.view、repository.build.debug、repository.cache.view | 可以完全管理构建和日志。可以查看存储库缓存 |
Repository.Admin | repository.settings.create、repository.settings.update、repository.settings.delete、repository.build.create、repository.build.cancel、repository.build.restart、repository.log.delete、repository.log.view repository.build.debug、repository.cache.delete、repository.cache.view、repository.cache.view | 具有管理存储库的无限权限。他可以完全管理存储库以及构建、日志和缓存。 |
Repository.Reader | repository.log.view、repository.cache.view | 可以查看存储库日志和缓存 |
Account.Settings.Editor | accounts.settings.edit、account.settings.create | 可以创建和编辑帐户设置 |
Account.Settings.Admin | account.settings.delete、accounts.settings.edit、account.settings.create、account.plan.create、account.plan.invoices、account.plan.usage、account.billing.view、account.contact.view、account.billing.update、account.contact.update | 具有管理帐户的无限权限。可以完全管理帐户计划、账单和联系人 |
Account.Plan.Viewer | account.plan.invoices、account.plan.usage、account.plan.view | 可以创建发票、使用情况并查看帐户计划 |
Account.Plan.Editor | account.plan.create、account.plan.invoices、account.plan.usage | 可以完全管理帐户计划 |
Account.Billing.Editor | account.billing.view、account.contact.view、account.billing.update、account.contact.update | 可以查看和更新帐户账单和联系人 |
Account.Billing.Viewer | account.billing.view、account.contact.view | 可以查看帐户账单和联系人 |
Account.Admin | 所有权限(包括存储库对象权限) | 具有所有帐户和存储库权限 |
Travis 管理员和扩展的 VCS 同步逻辑 #
所有 Travis CI 管理员用户都可以访问额外的存储库和帐户(个人或组织)设置屏幕,他们可以在其中配置分配给单个用户的新的角色和权限,无论是帐户级别还是存储库级别。
Travis CI 中实施的新权限系统会在每次与版本控制系统 (VCS) 同步后更新修改后的角色和权限。新权限系统的目标是升级管理员用户对这些设置所做的任何修改,以反映单个用户的角色和权限。
新权限系统的流程如下
- 与版本控制系统同步。每天或按需发生。
- 新系统映射会根据 VSC 提供程序的现有角色分配正确的 Travis CI 角色。
- 新角色和权限系统在数据库中记录新的角色和权限更新,并检查用户设置的任何修改。
- 新角色和权限系统会为每个现有系统用户分配在 VCS 同步期间从 VSC 访问权限获得的默认设置集(角色和权限)。
- 新角色和权限服务创建或更新新的角色和权限。
注意:如果出现错误,未处理的请求将排队以重新尝试与 VCS 同步,并记录错误日志。
注意:暂停或恢复用户的存储库访问权限会删除用户的构建触发权限,并分配相应的存储库读取器角色。
注意:暂停或恢复用户的帐户访问权限会将用户从所有管理员和编辑角色中移除,只允许用户成为计划查看器和结算查看器。
当现有的 Travis CI 用户登录时,用户的当前成员资格和权限将与新的权限服务进行检查,以查看是否有任何角色或权限修改。
下表显示了针对用户帐户和存储库的每个特定设置修改执行的操作。
权限修改 | 执行的操作 |
---|---|
用户权限创建 | 新的权限服务会创建用户并添加新的权限。 |
用户权限未被修改 | 新的权限服务不会修改权限。 |
用户权限已扩展 | 新的权限服务会更新权限,以匹配从版本控制系统同步获得的权限。 |
用户权限已限制 | 新的权限服务 |
用户从存储库中移除访问权限 | 用户存储库访问权限的所有 TCI 角色和权限都会被移除。如果移除的用户拥有个人帐户并邀请合作者加入其个人存储库,Travis CI 会直接将合作者的访问权限映射到所有者的 Travis CI 存储库。 |
用户从帐户中移除访问权限 | 在用户 Travis CI 帐户的上下文中,所有 TCI 角色和权限都会被移除。 |
角色和权限 #
下表显示了存储库和帐户的新的角色和权限。
角色 #
以前的存储库角色 | 新角色 | 权限 |
---|---|---|
管理员用户 | Repository.Settings.Editor | repository.settings.create, repository.settings.update, repository.settings.delete, repository.settings.read |
管理员用户 | Repository.Settings.Viewer | repository.settings.read |
管理员用户,推送用户 | Repository.Builds.Restarter | repository.build.restart |
管理员用户,推送用户 | Repository.Builds.Triggerer | repository.build.create、repository.build.cancel |
管理员用户,推送用户 | Repository.Builds.Cancel | repository.build.cancel |
管理员用户,推送用户,拉取用户,匿名用户(针对公共仓库) | Repository.Logs.Viewer | repository.log.view |
管理员用户 | Repository.Logs.Admin | repository.log.delete、repository.log.view |
管理员用户,推送用户 | Repository.Builds.Debugger | repository.build.debug |
管理员用户 | Repository.Cache.Editor | repository.cache.delete、repository.cache.view |
管理员用户,推送用户,拉取用户 | Repository.Cache.Viewer | repository.cache.view |
推送用户 | Repository.Collaborator | repository.build.create、repository.build.cancel、repository.build.restart、repository.log.delete、repository.log.view、repository.build.debug、repository.cache.view |
管理员用户 | Repository.Admin | repository.settings.create, repository.settings.update, repository.settings.delete, repository.build.create, repository.build.cancel, repository.build.restart, repository.log.delete, repository.log.view, repository.build.debug, repository.cache.delete, repository.cache.view, repository.cache.view, repository.scan.view |
拉取用户 | Repository.Reader | repository.log.view, repository.cache.view, repository.build.restart |
拉取用户 | Repository.State.Editor | repository.state.update |
账户 #
之前的账户角色 | 新角色 | 权限 |
---|---|---|
管理员 | Account.Settings.Editor | account.settings.edit, account.settings.create |
管理员 | Account.Settings.Admin | account.settings.delete, accounts.settings.edit, account.settings.create, account.plan.create, account.plan.invoices, account.plan.usage, account.billing.view, account.billing.update, account.contact.view, account.contact.update |
管理员,推送用户 | Account.Plan.Viewer | account.plan.invoices、account.plan.usage、account.plan.view |
管理员 | Account.Plan.Editor | account.plan.create、account.plan.invoices、account.plan.usage |
管理员 | Account.Billing.Editor | account.billing.view、account.contact.view、account.billing.update、account.contact.update |
管理员,推送用户 | Account.Billing.Viewer | account.billing.view、account.contact.view |
管理员 | Account.Admin | 所有权限(包括账户和仓库对象权限) |
以下表格展示了从各个版本控制系统获取的 Travis CI 角色和权限。
GitHub #
下表展示了 GitHub 仓库角色。
GitHub 角色 | Travis CI 角色 |
---|---|
管理员 | 管理员用户 |
读取 | 拉取用户 |
分类 | 拉取用户 |
写入 | 推送用户 |
维护 | 推送用户 |
下表展示了 GitHub 组织角色。
GitHub 角色 | Travis CI 角色 |
---|---|
所有者 | 管理员用户 |
成员 | 推送用户 |
版主 | 推送用户 |
计费经理 | |
安全经理 | 推送用户 |
Assembla #
Assembla 角色 | Travis CI 角色 |
---|---|
所有者 | 管理员用户 |
成员 | 推送用户 |
观察者 | 读取用户 |
GitLab #
GitLab 角色 | Travis CI 角色 |
---|---|
所有者 | 管理员用户 |
维护者 | 管理员用户 |
开发者 | 推送用户 |
报告者 | 拉取用户 |
访客 | 拉取用户 |
Bitbucket #
Bitbucket 角色 | Travis CI 角色 |
---|---|
管理员 | 管理员用户 |
读取 | 拉取用户 |
写入 | 推送用户 |