如何解决用户级别的Gitlab CI Secrets用于部署登录
我们有一个包含多个开发人员的Gitlab项目,该仓库本身就是一个柯南项目。
在创建发布标签时,我想设置一个管道来创建柯南包,然后将其上传到工件。上载到Artifactory需要用户名和密码登录。这与许多其他需要用户+通过身份验证的部署作业相似。
我已经找到了一种解决方案,可以为项目(项目级别)定义秘密变量,并使用单个帐户将整个项目上载到工件。在安全方面,这是个问题,因为我们想知道谁上传了柯南软件包,即哪个用户。
在Gitlab中是否可以在用户级别定义秘密?
也就是说,如果User1
创建了代码并设置了自己的Artifactory Account User + Pass机密,则管道会成功推送conan程序包。
如果现在User2
创建标签但未设置机密,则推送应失败。
以下Gitlab问题是对该问题的类似描述,但不包含任何解决方案: https://gitlab.com/gitlab-org/gitlab/-/issues/15815
也与之相关:gitlab credentials for specific user(但处理具有特定用户访问权限的共享机密)。
解决方法
CI 机密目前仅处于项目级别,但您或许可以使用预定义的 env 变量之一执行类似操作。有四个变量保存有关启动管道的 Gitlab 用户的信息(通过触发器、调度、推送等)。 $GITLAB_USER_EMAIL
、$GITLAB_USER_ID
、$GITLAB_USER_LOGIN
、$GITLAB_USER_NAME
。然后,在您的项目秘密变量中,您可以存储每个用户的凭据,并在您的工作中根据 USER 变量获取正确的凭据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。