隐藏计划作业中使用的 Gitlab 访问令牌

Hide Gitlab Access Tokens Used in Scheduled Jobs

在我的 Gitlab Repo 中,我必须 运行 一个触发管道的计划作业。并且此管道使用 Gitlab API.

删除旧的 JOB 日志

但是这个API调用需要Gitlab AccessToken来执行操作。最初我虽然使用 CI_JOB_TOKEN 变量,它是自动生成的令牌,但它无法访问 Gitlab APIs.

或者,我可以将项目 AccessToken 作为变量存储在我的计划作业中。但它对项目中具有维护者或所有者角色的其他人也是可见的。

有没有其他方法,我可以存储我的代币而不向其他人狂欢?或者我可以在不传递项目 AccessTokens 的情况下实现 运行 的某种机制?

你最好的选择是将秘密存储在 vault/cloud 服务中,例如 HashiCorp Vault、AWS Secrets Manager、Azure Vault 等。GitLab 有 CI_JOB_JWT_V2 令牌,可以是习惯了authenticate to cloud services。使用此方法,您根本不需要在 GitLab 中存储任何秘密。

您还可以将 Vault integration 视为另一个选项。

唯一的其他选择可能是使用在系统上有秘密的运行器并将该运行器锁定到您的项目。