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

发布于 2025-01-10 21:12:07 字数 310 浏览 0 评论 0原文

在我的 Gitlab 存储库中,我必须运行一个触发管道的预定作业。此管道使用 Gitlab API 删除旧的作业日志。

但此 API 调用需要 Gitlab AccessToken 才能执行操作。最初我想使用 CI_JOB_TOKEN 变量,它是自动生成的令牌,但它无法访问 Gitlab API。

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

有没有其他方法可以让我存储我的代币而不将其透露给其他人?或者某种机制可以让我在不传递我的项目 AccessTokens 的情况下运行它?

In my Gitlab Repo, I have to run a scheduled JOB which triggers a Pipeline. And this pipeline deletes the old JOB Logs using Gitlab API.

But this API calls needs the Gitlab AccessToken to perform the operation. Initially I though of using CI_JOB_TOKEN variable, which is auto-generated token, but it has no access to Gitlab APIs.

Alternatively I can store Project AccessToken as a Variable in my Schedule Job. But it will be visible to other people also in Project with Maintainer or Owners roles.

Is there any other way, where either I can store my tokens without reveling it to others? Or some mechanism where I can make it run without passing my Project AccessTokens?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情话难免假 2025-01-17 21:12:07

最好的选择是将密钥存储在保管库/云服务中,例如 HashiCorp Vault、AWS Secrets Manager、Azure Vault 等。GitLab 具有 CI_JOB_JWT_V2 令牌,可用于对云服务进行身份验证。使用这种方法,您根本不需要在 GitLab 中存储任何机密。

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

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

Your best bet would be to store the secret in a vault/cloud service, such as HashiCorp Vault, AWS Secrets Manager, Azure Vault, etc. GitLab has the CI_JOB_JWT_V2 token, which can be used to authenticate to cloud services. With this method, you do not need to store any secrets in GitLab at all.

You can also see the Vault integration as another option.

The only other option might be to use a runner that has the secret on the system and lock that runner to your project.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文