解决Terraform的局限性

时间:2018-02-23 10:13:27

标签: ruby amazon-web-services terraform

我正在尝试设置terraform来处理细粒度用户权限的创建,并且能够创建:

  1. Cognito用户池,标识池
  2. IAM角色,权限
  3. 我正在努力的是如何将它们联系在一起。我有两种类型的用户:

    1. 标准用户
    2. 管理器
    3. 因此,我找到了两种方法可以在登录时正确连接正确的IAM策略:

      • 方法1 - 创建自定义属性,并使用“选择规则角色”设置规则以根据属性设置IAM策略

      • 方法2 - 创建Cognito Groups,并将用户和所需的IAM策略链接到每个组。

      据我所知,问题是Terraform目前不支持这两种情况,所以我需要找一个解决方法。所以,我的问题基本上是,如何解决terraform在某些领域缺乏支持?

      我见过一些使用[Ruby,Go等]来弥补一些限制的项目,但我不太清楚从哪里开始,哪些是我需要的最佳选择。我还没有在谷歌找到太多东西(可能是https://github.com/infrablocks/ruby_terraform)。有没有人有一个很好的指南或资源我可以用来开始?

1 个答案:

答案 0 :(得分:1)

如果terraform不支持​​某些内容,您可以使用local-exec配置程序在创建资源后执行命令。例如,您可以使用aws cli添加自定义属性:

resource "aws_cognito_identity_pool" "main" {
  # ...    
  provisioner "local-exec" {
    command = "aws cognito-idp add-custom-attributes --user-pool-id ${aws_cognito_identity_pool.main.id} --custom-attributes <your attributes>"
  }
}

local-exec docs

相关问题