giitlab - ci Runner上的EKS与AWS IAM角色



我想使用EKS来托管giitlab - ci runner,它将在AWS上部署我的基础设施。我想pod创建,但gitlab经理能够承担正确的IAM角色时,工作被触发,所以团队部署它的基础设施只能访问自己的帐户。请问使用gitlab-ci运行器可以吗?

感谢;

是的,您完全可以将CI作业访问范围限定为适当的AWS角色。

理想情况下,默认的作业环境应该是非特权——根本没有AWS角色或AWS凭证。执行作业的运行者应该只有在作业实际运行时才接收到凭据。例如,通过从秘密存储服务(如Vault秘密)或类似的服务中检索凭据。

使用AWS执行此操作的最佳方法之一是在作业运行时使用OIDC检索临时凭据。

  1. 创建具有适当权限范围的IAM角色
  2. 使用GitLab web identity (CI_JOB_JWT_V2)配置角色,并设置相应的条件以匹配相应的项目/分支或其他属性。
  3. 配置GitLab作业运行aws sts assume-role-with-web-identity ...获取临时角色凭证
  4. 访问AWS并使用临时凭证执行部署。

内置的CI_JOB_JWT_V2允许您承担相应的角色

另一种选择可能是简单地将AWS凭据添加到每个项目的CICD变量中,但这并不理想。

最新更新