年末でもこんにちは、きおかです。
ネスペの勉強を進める中で、レイヤ4まではかなり理解が深まってきた実感があります。
そんなこんなで改めてパブリッククラウドのネットワークについて調べていると、おもしろいことがわかりました。
パブリッククラウドはインターネット接続が大前提
それは、パブリッククラウドはそもそもインターネット接続を前提としており、VPCなどのプライベートなネットワークは(パブリッククラウドの前提に基づくなら)例外的なものだということです。
GCPはIGWを削除できない?AWSがIGWを削除できる?
例えばAWSはIGWを外すことができますが、GCPは削除できません。これはパブリッククラウドの考え方に基づくなら、GCPが例外というよりAWSが例外(多機能)と考えられそうです。
パブリッククラウドにおける「プライベート」の捉え方
VPCはENIの集まりであり、ENIを(パブリッククラウド内の)外部リソースとの接続ができないようにしたものがVPCです。
となると、パブリッククラウドの「プライベート」という概念は、パブリッククラウドのリソースへの通信経路をユーザーごとに分けたか、もしくはリソースへのアクセス権を分けたものと捉えるのが正しそうです。
VPCを作成することにより、他ユーザーのリソースからネットワークを分断し、また、アクセス権を制限するということになりますね。この状態を「プライベート」なネットワークと呼んでいるようです。
ではこのパブリッククラウドの「プライベート」なネットワークに、どのように接続すれば安全でしょうか?
パブリッククラウドへの「プライベート」な接続方法を考える
2つ方法があります。
- インターネット網を介するVPN接続
- WANサービスを介する接続
プライベートな接続方法と/通信とは
VPNとは、Virtual Private Networkの略であり、仮想的なプライベートネットワーク又その実現方法を表します。
仮想的にというとわかりにくいので、「接続元と接続先の間である程度プライベートな通信を作り出すこと」と言い換えてみます。そして、この「ある程度プライベートな通信」の「ある程度」について考えます。
WANサービスで実現するプライベートな通信
例えば、WANサービスを使えばプライベート性はある程度増します。特に、L1の専用線を使えば、拠点間のルーターが物理的に結ばれているので、完全にプライベートと言えます。L2の広域イーサ網やL3のIP-VPN網では、WANサービス提供事業者がパケットキャプチャなどを行っている場合はIPsecなどを用いて暗号化することで、仮想的にプライベートな通信を実現できます。
(専用線をVPNの1つと考えるのはナンセンスかもしれませんが、ここでは「プライベートな通信の実現方法」としてまとめて考えています。)
インターネットを介するプライベートな通信
インターネットを通る場合、当然WANサービスよりも開かれた環境になります。
なので通信元と通信先で通信データの暗号化や通信経路のトンネル化をする必要があります。
これらを実現するのが、IPsec VPNやSSL/TLS VPNです。
具体的な設定方法や通信プロトコルの内容はきおかも勉強中なので、別の機会にまとめさせてください。
ネットワークにおける脆弱性
ネットワークはRFCというインプットとアウトプットを定めたルールと、その実現アクションによって、成り立ちます。そして、このRFCと実現アクションにより、脆弱性が生まれるのでしょう。
RFCそのものに脆弱性がある場合もあれば、設定方法や処理方法により脆弱性が生まれる場合もあるということです。
私は知識も経験も少ないので実際どうかわかりませんが、恐らく後者の方が多いか、もしくはその境界を定めるのがそもそも難しいのかもしれません。
AWSにおけるプライベートな通信を実現するマネージドサービス
AWS Direct Connect
WANサービスによりVPCとオンプレを接続する方法です。広域イーサ網のようです。
AWS Site-to-Site VPN
IPsec VPNを用いて、VPCとオンプレ間でプライベートな接続を実現します。
AWS Client VPN
OpenVPNベースのVPNを用いて、VPCやオンプレとクライアント端末間でプライベートな接続を実現します。
さいごに
各マネージドサービスについて、具体的に調べたものやハンズオンをまたの機会に記事にしようと思います。
OpenVPNについても興味があるので、勉強していこうと思います。
ではまた!