微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要 MFA 时如何在 CI/CD 命令中运行无服务器部署

如何解决需要 MFA 时如何在 CI/CD 命令中运行无服务器部署

我们在 AWS 账户中设置了 2 因素身份验证。 sls deploy 命令因此要求提供 MFA 代码。启用 MFA 时如何以非交互模式运行部署?

例如:

 lerna run

命令不支持用户输入。同样,如果要在 CI/CD 中运行,则无法进行交互。这是怎么处理的。使用 sls deploy 命令在无服务器框架中管理此问题的最佳方法是什么?

解决方法

我认为 CI/CD 管道内的多重身份验证通常不是一个好主意。

MFA 旨在降低由普通人处理的凭据在被盗时可能被利用的风险。它们是一种解决方法,因为与 IT 组织将资源专用于保护环境相比,人们对自己的硬件和凭证往往不太小心。由于这个原因,它是一个以不容易自动化的方式设计的系统。 您明确希望有人与之互动。

CI/CD 管道具有不同的特性。它们在专用环境中运行,可以更轻松地防止外部访问。您还可以从受信任的来源创建临时凭证,并轻松地将它们输入管道(例如,扮演一个角色并将凭证作为环境变量传递)。另一种选择是拥有定期轮换的访问密钥和秘密访问密钥。更重要的是,流水线的重点是自动化 - 我们明确希望尽可能实现自动化,因为人工输入很容易出错。

与常规工作站相比,管道应该从受信任的实体获取工件和代码,而很难确保在每台开发人员的机器上都能做到。这就是为什么凭证泄露风险较低的原因,即使您不应该完全排除它 - 因此我建议使用临时凭证。


tl;dr 不要在您的管道中使用 MFA,使用不同的策略来保护您的凭据,例如 CodeBuild 项目承担的角色。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。