我的计划是使用GitLab管道来构建Maven应用程序并将其部署到AWS Elastic Beanstalk。在研究过程中,我找到了this页。
如果您使用的是gitlab.com,则默认情况下可以使用一个共享运行器。请注意,此运行程序与其他用户共享,这意味着您可能必须等待直到另一个用户的构建完成,无法扩展,还意味着您可能不使用共享的运行程序构建,其中包括可能暴露的变量。
我很困惑。所有构建都在docker内部完成,据我所知,无法查看我的代码,部署或构建工件的凭据。那么在我的情况下使用共享运行器安全吗?我只想确保我用于部署和构建jar的代码,凭据/密钥是安全的。
示例代码:
development:
type: deploy
environment: production
script:
- mkdir ~/.aws/
- touch ~/.aws/credentials
- printf "[eb-cli]\naws_access_key_id = %s\naws_secret_access_key = %s\n" "$AWS_ACCESS_KEY_ID" "$AWS_SECRET_ACCESS_KEY" >> ~/.aws/credentials
- touch ~/.aws/config
- printf "[profile eb-cli]\nregion=ap-southeast-1\noutput=json" >> ~/.aws/config
- eb deploy funwitheb-production
only:
- master
答案 0 :(得分:1)
搜索了一段时间后,我找不到任何基于Gitlab-docs的可靠证据,但我也从未在共享运行器上执行作业时真正读取其他用户的变量。
我也找不到与此相关的任何GitLab问题(例如,某人“偶然地”看到了别人的var),因此从安全/隐私角度来看,它看起来还不错。
答案 1 :(得分:0)
我已将电子邮件发送给文章作者。 文章来自2016年。此信息不是最新的。因此,可能这不再是问题。 这里是更多信息: https://gitlab.com/gitlab-org/gitlab-runner/blob/master/docs/security/index.md
以非特权模式运行时,可以认为Docker是安全的。为了做到这一点 设置更安全,建议以用户(非root)身份在Docker容器中运行作业 禁用了sudo或已放弃SETUID和SETGID功能。