Elastic-Load-Balancing

ELBを介してもクライアント認証を使いたいッ! その②

ごあいさつ

こんばんは。

今回は、EC2を使ったクライアント認証付WEBサイトにて
ELBを使うためのあれこれを書いていきます。
結構複雑なお話なので、気張っていきましょう!

その②って……

その②では、その①で作ったEC2で作ったクライアント認証付のテスト用サイトを、
クライアント認証の機能をそのままでELBにアタッチさせる方法をご紹介いたします。

まずクライアント認証の設定がわからん! という方は、その①をご確認ください。

ELBっていうけれど……

ELBのうちどれを使うの?! と、思われた方もいらっしゃることでしょう。

まずはNLBでの設定方法、それから、ALBのお話をします。
しかもおまけにcloudfrontの話付き!

ということで、さっそくNLBから!↓

NLBで使うためのあれこれ

ターゲットグループを作成

ELBを使うには、ターゲットグループが必要です。

①ターゲットタイプは「インスタンス」
②プロトコルは「TCP」
③ポートは「443」
④ヘルスチェックは「TCP」
⑤ターゲットはその①で作ったクライアント認証付のサイトが乗ったインスタンス

以上の設定で作成しましょう。

NLBを作成

ターゲットグループができたら、NLBを作成しましょう。

①リスナーは「TCP:443」
②ターゲットグループは↑で作成したもの

以上。あとはデフォルトでOKです。

できあがったものがこちら!

DNS設定

さくっとDNSを設定しましょう。
※設定しないで↑のNLBのDNS名から直でアクセスしてもうまくいかないはず(多分……)

Route53のエイリアスレコードでうにゃうにゃやりましょう!

接続して確認


うおおおおおおお(画像じゃできてるのかわからんね)
できてます!

NLBにアタッチしたEC2でクライアント認証を使うことができました。

ALBで使うためのあれこれ

ALBでは、クライアント認証が使えません!

……というか、実は先ほどまでのNLBでの設定もほぼ裏技のようなかんじで、
公式的にはELBはクライアント認証使えません ということになっています。
ちなみに、CLBでもNLBと同様の方法でクライアント認証が使えます。

cloudfrontで使うためのあれこれ

ほなNLB +cloudfrontとかで使えたりするのかしらん? と思ったり思わなかったりしたのですが……↓
カスタムオリジンの場合のリクエストおよびレスポンスの動作 - Amazon CloudFront

クライアント側の SSL 認証
CloudFront はクライアント側の SSL 証明書を使用したクライアント認証をサポートしていません。オリジンがクライアント側証明書をリクエストした場合、CloudFront はリクエストを削除します。

……cloudfrontでも使えません!

まとめ

ロードバランサー的な何某を使いつつクライアント認証を使用するには、
今のところNLBかCLBを使う方法しか手段がなさそうです。

ALBとNLBでは負荷分散の仕組みが違うので、「どうしてもALBが使いたい!」というときは
クライアント認証をあきらめるしかなさそうですね……。

ほかにもこんな方法があるよ! というものをご存じの方はコメント下さい!

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA