CI / CD管道的IAM权限

时间:2020-06-17 12:54:29

标签: amazon-web-services amazon-iam

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

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

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

我一直在寻找资源来帮助解决此问题,但是一般的做法似乎是对IAM政策进行超额配置,我认为这是一种非常糟糕的方法。

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

1 个答案:

答案 0 :(得分:2)

很遗憾,答案很棘手。

对于所有基础架构代码提供程序(无服务器,CDK,CloudFormation,Terraform等),您都遇到了一些麻烦的问题。

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

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

这就是为什么大多数人使用超额配置的部署用户来部署其应用程序的原因。出于以下两个原因,它不被认为是一种不好的方法:

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

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