0
0

【AWS】ELBリスナールールで送信元IPとホストヘッダーをAND条件にする

Posted at

概要

ELBのリスナーのルールで、送信元IP(source-ip)とホストヘッダー(host-header)をAND条件にする方法を紹介します。

前提

AWS ELBでは、複数のConditionsを指定すると、それらはAND条件として扱われます。
つまり、条件の全てが満たされる場合のみ、適用されます。

今回は、「特定のGIPから、特定のドメインにアクセスがあった場合のみアクションするという条件を設定したい」と仮定しています。

サンプルテンプレート

以下が、Cloudformationのサンプルテンプレートです。
(ELBやリスナーなどの部分は省略しています)


Parameters:
  SampleIP:
    Type: String
    Default: "111.222.333.444/32"

  SampleDomainName:
    Type: String
    Default: "example.com"

Resources:

  ## (省略)ELBやリスナーなどを記載 ##

  HttpsListenerRule:
    Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
    Properties:
      Actions:
        - Type: forward
          ForwardConfig:
            TargetGroups:
              - TargetGroupArn: !Ref TargetGroup
                Weight: 1
      Conditions:
        - Field: source-ip
          SourceIpConfig:
            Values:
              - !Ref SampleIP
        - Field: host-header
          Values:
            - !Ref SampleDomainName
      ListenerArn: !Ref HttpsDefaultListener
      Priority: 1

上記により、リスナールールは、host-header!Ref SampleDomainNameに一致し、かつ送信元IPアドレスが!Ref SampleIPに一致するリクエストに対してのみ適用されます。

管理コンソールから確認すると以下のようになります。

image.png

検証環境とかのもので、自社GIPからしかアクセスできないようにしたい、といった場合に活用できると思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0