AWS CloudFormation-通过模板将现有托管策略附加到现有角色

时间:2020-11-06 21:06:04

标签: amazon-web-services amazon-cloudformation amazon-iam

我正在将CloudFormation模板部署到AWS。我要导入的模板正在为我的Lambda调用创建角色,而我无法直接对其进行修改。我希望修改该角色以附加我的AWS账户中已经存在的AWS托管策略AWSLambdaVPCAccessExecutionRole。到目前为止,我所有的搜索都为空。

  1. 我找到了有关如何使用现有托管策略创建新角色的说明
  2. 我找到了有关如何创建新策略并将其附加到现有角色的说明。
  3. 我找到了有关如何使用AWS控制台或CLI而不是通过模板(YAML或JSON)更新堆栈的说明
  4. 我找到了在Terraform中调用名为aws_iam_role_policy_attachment的指令,但这对我来说不可用

我希望获得以下类似信息,但我找不到任何证据表明存在于任何地方。有什么可以做我想做的事吗?

---
Resources:
  AdditionalRolePermissions:
    Type: "AWS::IAM::RolePolicyAttachment"
    Properties:
      Roles:
        - Ref: ExistingRole
      PolicyName:
        - Ref: ExistingPolicy

到目前为止,我想到的最好的解决方案是创建一个新策略,该策略具有一个手动创建的PolicyDocument,该文档与AWSLambdaVPCAccessExecutionRole 的现有策略相同,并在创建后将其附加到角色上。我宁愿不这样做,因为那样将很难维护。

1 个答案:

答案 0 :(得分:1)

不幸的是,除非创建custom resource,否则您不能在纯CloudFormation中执行此操作,但是那时候这还不是纯CloudFormation,因为您需要创建lambda和其他资源来实现自定义资源。目前,CloudFormation中没有策略附件的概念,这些附件仅在您定义策略或角色资源时发生。

最简单的方法是采用创建重复AWSLambdaVPCAccessExecutionRole的策略的解决方案。该策略非常简单,与其他一些复杂策略相比,您的CloudFormation模板不应过于混乱。