在 Gitlab CI-CD 中保护生产环境

问题描述 投票:0回答:1

我们正在尝试使用 Gitlab 设置 CI-CD。该文档看起来很简单。但我正在努力设置适当的访问权限。我们只想让 Gitlab 管理员能够部署到生产帐户。我们还希望每个团队的高级成员能够根据需要创建新项目,依次向其他人提供访问权限并成为这些项目的维护者等。但我们不希望 Gitlab 管理团队之外的任何人都能够触发/批准部署到生产环境的作业。我已经搜索了一段时间,但仍然无法找到可靠的解决方案。一些对我们不起作用的解决方案是将 ci-cd 作业配置为由选定的用户触发。原因是项目维护人员可以更新 gitlab-ci.yaml 文件并根据需要进行更改。理想情况下,例如保护运行程序,以便在触发作业的人无法访问运行程序的情况下作业将会失败。这样,我们就可以安全地保护生产部署。

另外,我还搜索了“环境”这个概念。看起来只是为了标记,并不等同于可以分配权限的物理环境。

那么,不同公司这样做的标准方式是什么?即保护他们的生产环境

deployment gitlab continuous-integration
1个回答
0
投票

您应该需要特定的凭据/角色才能部署到生产环境。您可以使用 GitLab id tokens 来验证和授权作业以获取这些凭据。在许多其他声明中,GitLab ID 令牌包含启动管道/作业的用户的声明。

举个例子,您可以将 Hashicorp Vault 与 GitLab 一起使用。在您的情况下,您可以配置限制对管理员用户的访问的保管库策略,如

user_login
声明中所述:

"bound_claims": {
  "user_login": ["alice", "bob", "mallory"]
}

相同的原理可以应用于 Vault 以外的其他秘密管理器服务。

同样,您也可以使用 OIDC 声明来保护您的与云服务的连接,例如 Azure/AWS/GCP。

© www.soinside.com 2019 - 2024. All rights reserved.