0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ALBでCookieをもとに公開範囲を限定する

Posted at

はじめに

サービスを開発していると、社内の人だけ見れるように公開したいということが多くあると思います。
その際に、接続元のIPをNetwork ACLやSecurity Groupで絞ってアクセスを制限するという方法があります。これは、社内ネットワークがしっかり構築されていてIPが統一されればいいですけど、そうでない場合各自のIPを許可していくのは面倒かなと思います。
そこでCookieでアクセスを絞れば各自ブラウザにセットするだけでいいので良いかなと思いました。それを実現するために行ったことを記載します。

ALBのリスナールールを利用する

アクセスの制限はALBのリスナールールで行います。
リスナールールについてはこちら
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/listener-update-rules.html

  - host-header
  - http-request-method
  - path-pattern
  - source-ip
  - http-header
  - query-string

の条件でアクセス先を振り分けることができます。

Cookieをもとにアクセス先を振り分ける

リスナールールでhttp-headerをもとにアクセス先を振り分けられうことがわかったので、ここでCookieを利用します。

ここからはALB構築されている前提で話します。
まず、ALBのリスナーというタブから「ルールの表示/編集」をクリックします。
スクリーンショット 2021-09-11 18.08.41.png

すると、リスナールールを変更できると思うので以下のように設定します。
スクリーンショット 2021-09-11 18.15.45.png

ルールID:1でHTTPヘッダーを選択してCookie=alb-listener-value=hogeと設定します。Cookieの名前や値は各自に任せます。なるべく推測されないものの方がより安全でしょう。
そして、デフォルトのルールは固定レスポンスで503とか返すようにしておけばいいと思います。
設定はこれで終わりです。

これでCookieに何もセットしないとアクセスできないけど、alb-listener-value=hogeをセットするとアクセスできるようになったと思います。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?