我正在尝试设置terraform来处理细粒度用户权限的创建,并且能够创建:
我正在努力的是如何将它们联系在一起。我有两种类型的用户:
因此,我找到了两种方法可以在登录时正确连接正确的IAM策略:
方法1 - 创建自定义属性,并使用“选择规则角色”设置规则以根据属性设置IAM策略
方法2 - 创建Cognito Groups,并将用户和所需的IAM策略链接到每个组。
据我所知,问题是Terraform目前不支持这两种情况,所以我需要找一个解决方法。所以,我的问题基本上是,如何解决terraform在某些领域缺乏支持?
我见过一些使用[Ruby,Go等]来弥补一些限制的项目,但我不太清楚从哪里开始,哪些是我需要的最佳选择。我还没有在谷歌找到太多东西(可能是https://github.com/infrablocks/ruby_terraform)。有没有人有一个很好的指南或资源我可以用来开始?
答案 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>"
}
}