質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

2101閲覧

AWS ELB、EC2間の通信

nobodytolove123

総合スコア61

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2019/11/06 12:52

お世話になります。

掲題の件につきまして、ご質問をさせていただきたいです。

現在REST APIサーバをAWSで構築しています。
構成としてALBがインターネットからのリクエストをhttpsで受け取り、EC2上で動いているNginxhttpでリクエストを流しています。

EC2が属すサブネットはパブリックサブネットとして、IGWにアタッチされています。

EC2上で動いているアプリケーションはFlask-JWTによる認証機能を持っていて、リクエストの際にユーザ名とパスワードを
クエリとしてアプリケーションに渡しています。

ここで一点ご質問させて頂きたいのですが、インターネット <-> ELBの間はhttpsで通信されているので、比較的通信の盗聴、改ざんのリスクが少ないと認識しています。
しかしELB <-> EC2間はhttpで通信がされているので、httpsに比べて盗聴、改ざんのリスクは高いままなのでしょうか?

もしそうであるならばNginxに外部で発行された証明書を乗せようと考えています。

恐れ入りますがご教授お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ALBからEC2の間に何か通信を傍受されるようなものを挟み込まれたらもちろんリスクはありますが、EC2に対するアクセスを適切にセキュリティグループで絞れば通常そんなことにはなりません。
ALB配下に置いているにもかかわらずEC2をインターネットに公開していたら何をされるかわかりませんが、そもそもEC2の方に何かされたらhttpだろうがhttpsだろうが関係ないような気もします。
あとはAWSがハックされたりした場合ですが、そうなったらそもそも通信云々ではないと思いますね。

ALB配下に置くならEC2インスタンスをプライベートサブネットに置くのもいいですが、ひと工夫は必要になります。
ただ、プロダクションで使うならぜひそうするべきだと自分は思っています。

投稿2019/11/06 13:51

yu_1985

総合スコア7440

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nobodytolove123

2019/11/06 14:32

ご回答ありがとうございます! AWS側に問題がある場合は確かにそうですね、ここでは一旦それは考えないものとさせてください。笑 また少し認識があっているか確認をさせてください。 EC2をプライベートサブネットに配置した場合、インターネットに接続が出来ないのでrpm等パッケージの取得やNTP同期が行えない認識です、またこれらは例えばVPC内のNATに通信を向けることで始めて実現できる認識です。 ALBからプライベートサブネットに配置されたEC2にリクエストを分散する場合も同様でIGWをアタッチしたパブリックサブネットが必要かと思います。 つまり何が言いたいかというと、ALBはEC2と直接ではなくインターネットに公開されたIGW経由でEC2にリクエストと送ると現状思っています。 認識あっていますでしょうか、長文すみません。
saka_nobori

2019/11/06 19:43

セキュリティで利用者からサーバまで通信の暗号化をしたいなら、インターネット→<HTTPS>→ALB→<HTTPS>→EC2にすべきです。 AWSのハック、悪意ある内部犯を除けば、インターネット→<HTTPS>→ALB→<HTTP>→EC2でも良いと思いますよ インターネット→EC2を避ける意味では、EC2にグローバルIPを付与していなければ、インターネットと通信はできません。 次に明示的にプライベートサブネットがそれを指しているなら、ルーティングテーブルにIGWを設定してもインターネットと通信はできません。 インターネットと通信させるには、今回のセキュリティを気にされているのであれば、NATゲートウェイを準備し、インターネット宛てはNATゲートウェイにすれば内側からインターネットへ通信ができるようになり、インターネットからEC2の通信を防ぐことができますよ
yu_1985

2019/11/07 01:31

ALBがパブリックサブネット内にあれば、EC2はプライベートサブネットにあっても問題ありません。 当然ながらALB→EC2の間で通信が可能であることが前提ですが、それはインターネットを経由するものではなくプライベートネットワーク内の通信になります。(ALBのターゲットにPublicIPを指定することも一応できますが、通常そんなことはしない) 同VPC内であればサブネットにはデフォルトで同VPC内の通信を許可する設定が入っているルートテーブルが関連付けられているので、セキュリティグループでALB→EC2のプライベートな通信を許可してやるだけで通信できます。 パブリックサブネットのCIDRブロックを指定してもいいですし、ALBに設定したセキュリティグループからの通信を許可するのもわかりやすいでしょう。 > またこれらは例えばVPC内のNATに通信を向けることで始めて実現できる認識です。 仰るとおりですが、NTPについてはAWS側にTime Sync Serviceという内部のNTPサーバがあり、それを利用できます。 https://aws.amazon.com/jp/blogs/news/keeping-time-with-amazon-time-sync-service/ NATについてはNATインスタンスを立ててもいいしNAT Gatewayを使うこともできます。(いずれも適切なルーティングが必要) 他に懸念することと言えばインターネットから直接SSHできなくなることですが、踏み台サーバを作るかSession Managerを使ってコンソールに入るか(あとはVPNやDirect Connectで繋ぐ方法もありますが…)、で回避できます。 > ALBはEC2と直接ではなくインターネットに公開されたIGW経由でEC2にリクエストと送ると現状思っています。 上記の通り、通常はそんなことはありません。 プライベートサブネットを使う場合の例についてのドキュメントを貼っておきます https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Scenario2.html
nobodytolove123

2019/11/07 02:20

saka_noboriさん ご回答ありがとうございます! EC2とインターネットとの通信を少し勘違いしていました。 わかりやすいご説明ありがとうございました!。
nobodytolove123

2019/11/07 02:22

yu_1985さん ご回答ありがとうございます! > それはインターネットを経由するものではなくプライベートネットワーク内の通信になります。 この点を見落としていました、分かりやすいご説明ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問