terraformでif文的なものを使ったユースケース例
usecase
EC2インスタンス、ELB、security_groupあたりがまとまったmoduleがあるんだけど、特定の役割のインスタンスにだけiam_roleにSNSFullAccessをつけたい。
設定内容
variable "allow_sns_full_access" { default = false }
- 対象のリソースでtrueならcount = 1、falseならcount = 0にする。
resource "aws_iam_role_policy_attachment" "app_sns_full_access" { count = "${var.allow_sns_full_access ? 1 : 0}" role = "${aws_iam_role.app.name}" policy_arn = "arn:aws:iam::aws:policy/AmazonSNSFullAccess" }
- 利用したいやつだけ、trueにする
module "app" { source = "../modules/app" allow_sns_full_access = true }
結果
+ module.app.aws_iam_role_policy_attachment.app_sns_full_access
policy_arn: "arn:aws:iam::aws:policy/AmazonSNSFullAccess"
role: "app"