LINEで送る
Pocket

今回はWordPress/wp-admin 配下をALBのリスナールールでIP制限をしてみたのですが、Terraformでの参考サイトが全く見つからないということでブログします。以前書いたブログを参考にすればできるはず!!

しかし今まではNginxで以下のように書けばIP制限が可能なのですが、設定ファイルにごちゃごちゃ書きたくないということもあり、ALBで処理するのがベストですね。

[AWS][Terraform]ALBのリスナールールを複数追加する


■ALBリスナールール

  • 送信元IPを適当に、パスが /wp-admin/wp-login.php に対して転送先を適当なターゲットグループを指定
  • パスが wp-adminwp-login.php に対して固定レスポンスを返す、404のtext/plan Not Foundを指定

上記のように特定のIP以外アクセスするとNot Foundと返ってくればOK。これをTerraform化します。


■Terraform

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_listener_rule

  • elb.tf

ハマったところは

Error: Only one of field, host_header, http_header, http_request_method, path_pattern, query_string or source_ip can be set in a condition block

10~13行目source_ip(送信元IP)path_patternと同じcondition内に書いてエラー食らったところですかね。別conditionとして分ければOK。他にも複数のIPを指定しまくるとリスナールールの条件値制限が5つまでなので注意するところですかね。以下より。

  • 条件値のルール制限、ワイルドカード、および全体のルール。
  • 100 アプリケーションのロードバランサーごとの合計ルール
  • 5 ルールあたりの条件値
  • 5 ルールあたりのワイルドカード
  • 5 ルールあたりの加重ターゲットグループ

■まとめ

ALB凄すぎか!ちなみにTerraformでのALBリスナールールは手動で優先順位を変更しても差分にならないことを知った。

LINEで送る
Pocket

カテゴリー: AWSTerraform

adachin

1989年生まれのLancers SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、AnsibleやTerraformでのインフラコード化を推進。副業では数社サーバー保守、未経験によるエンジニアのメンターなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。現在はサービスの信頼性向上、可用性、レイテンシ、パフォーマンス、モニタリング、緊急対応、インフラコード化、リファクタリング、セキュリティ強化、新技術の検証、Docker開発環境の提供、AWSでのインフラ構築、グループ会社のインフラをECS/Fargateへ移行、CakePHP4での管理画面作成、メンター、分析基盤の運用を担当している。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください