CI/CD 管道的 IAM 权限



我想设置我的部署管道,以便它们在将资产部署到 AWS 时遵循最小权限原则。这意味着我不想授予部署策略管理员访问权限或"*:*"权限。

问题是每次创建新管道时,我都必须经历一个反复试验的过程:

  • 部署
  • 由于缺少 IAM 权限而失败
  • 更新 IAM 策略以添加缺少的权限
  • 重复

我已经搜索了资源来帮助解决这个问题,但一般的方法似乎是过度配置IAM 策略,我认为这是一种非常糟糕的方法。

您可以使用任何工具来分析 CloudFormation 模板并生成所需部署策略的 JSON 文档?(或者对于无服务器框架或 CDK?

很好的问题,不幸的是,答案有点棘手。

您遇到了所有基础设施即代码提供商(无服务器,CDK,CloudFormation,Terraform等(的鸡和蛋问题。

请记住,部署应用程序的 IAM 用户与运行应用程序 (Lambda(的 IAM 角色不同。

这意味着,如果要严格限制部署用户的权限,使其只能部署特定资源,那很好 - 但是,正如您所指出的,每次要部署新资源时都需要扩展这些权限。值得注意的是,如果自动执行此过程,以便在每次添加新基础结构时扩展角色权限,则已有效地授予部署用户管理访问权限。

这就是大多数人使用过度预配的部署用户来部署其应用程序的原因。由于两个原因,它不被认为是一种糟糕的方法:

  1. 您的应用程序在执行时不使用此角色,因此如果您的 lambda 中存在一些允许远程执行代码的主要漏洞,则攻击者无法破坏您的整个 AWS 账户
  2. 您依靠 IAC 提供商来确保不会创建不需要的基础设施。(IE:您和您的 IAC 提供商具有相同级别的访问权限(

只要 Lambda 执行角色具有严格的 IAM 策略,就可以使用过度预置的部署用户。

相关内容

  • 没有找到相关文章