TerraformがALBのaws_lb_listener_ruleでhttp-headerに対応していなかった

いやもう結論タイトルなのですが、現時点(2019/9)ではALBのリスナーで、http-headerを判定してごにょごにょという事が、Terraformでは対応されていませんでした。

以下の公式ドキュメントにも記載がないように、host-headerはあるけどhttp-headerはありません。

https://www.terraform.io/docs/providers/aws/r/lb_listener_rule.html

CloudFrontとALBを連携する際に、CloudFront経由以外のALBへの直接アクセスは遮断したい場合など、CloudFront経由時にヘッダーに任意キーを付けて、それをALBでチェックする。というやり方があると思いますが、それがTerraformでは対応していないので、出来ません。

そういった事をやりたい場合、ALBにWAFを付けられますので、WAFで対応するという事になります。WAFのhttp-headerはTerraformでも対応しています。