1.はじめに
インターネット上でサービスを安全かつ効率的に提供するためには、適切な技術選択が不可欠です。
特に、アクセス方法に関する選択は、サービスの可用性とセキュリティに直接的な影響を及ぼします。
この記事では、IPアドレスを直接使用するリスクと、ドメイン名を活用することの利点について、ネットワークやインフラの観点で学んだことをまとめてみました。
2.IPアドレス直打ちのリスク
IPアドレス直打ちのリスクは以下の2点と考えました。
- ロードバランサーの役割とサーバーへの影響
- SSL/TLS証明書の問題
2.1.ロードバランサーの役割とサーバーへの影響
通常、複数のサーバーで構成されるWebサービスではロードバランサーを使用します。
ロードバランサーは、入ってくるトラフィックを分散させ、一つのサーバーに過度の負荷がかからないようにします。
IPアドレスを直接叩くと、このメカニズムを無視し、単一のサーバーに全ての負荷が集中することになります。
結果として、サービスの可用性を損なうリスクを高め、最悪の場合、サーバーのダウンに繋がることがあります。
2.2.SSL/TLS証明書の問題
セキュリティ観点からも、IPアドレスで直接アクセスすることは推奨されません。
この方法は、攻撃者に対象を特定されやすくなり、様々な攻撃のリスクを高めます。
また、正式なSSL/TLS証明書は、ドメイン名に基づいて発行されるため、IPアドレスには適用されません。
結果として、データの暗号化と身元確認の両方を行う機能を失うことになります。
3.SSL/TLS証明書の種類とその役割
SSL/TLS証明書には、ドメイン認証証明書、ワイルドカードドメイン認証、組織認証証明書、拡張認証証明書といった種類があります。
SSL/TLS証明書は、ネットワーク上での通信の暗号化を保証し、サイトの信頼性を示すものです。
暗号化の強度は証明書の種類に関わらず同じですが、信頼性の証明レベルに違いがあります。
4.AWS Certificate Manager (ACM) と適用可能サービス
AWS環境であれば、AWS Certificate Managerを使用してSSL/TLS証明書の管理を簡単に行うことができます。
ただし、これはEC2インスタンスに直接は適用できず、Elastic Load BalancerやCloudFrontなどのサービスを通じて使用されます。
(NLBでは使用できない?を調査中です。)
5. Elastic Load Balancer (ELB) とSSL終端
ELBはApplication、Network、Gateway、Classic(非推奨)などの種類があり、サービスの要求に応じて選択します。
SSL終端はこのロードバランサーで行われることが多く、これによりサーバーまでの通信を暗号化し、セキュリティを高めます。
ロードバランサー説明は以下の記事が非常に分かりやすかったです。
https://zenn.dev/axpensive/articles/d80e4d102eefb4
6.ネットワークレイヤー
ネットワークレイヤーを以下の表にまとめます。
L | 階層 | 機能 | 主な技術 |
---|---|---|---|
L7 | アプリケーション層 | エンドユーザーサービス | HTTPS, SMTP, REST API |
L6 | プレゼンテーション層 | データ形式の調整 | JSON, XML |
L5 | セッション層 | 通信セッションの維持 | NetBIOS, RPC |
L4 | トランスポート層 | 信頼性のある通信 | TCP, UDP |
L3 | ネットワーク層 | ネットワークの転送 | IP, ICMP |
L2 | データリンク層 | ネットワークデバイス間の通信制御 | Ethernet, PPP |
L1 | 物理層 | ハードウェアを通じたデータ伝送 | 光ファイバー, 5G |
7.まとめ
IPアドレスを直接使用する方法は、特定の状況下で避けるべき多くのリスクを含んでいます。
ドメイン名を利用することで、これらのリスクを大幅に軽減し、セキュリティを強化することが可能です。
また適切な技術選択とサービス設計が、インターネット上での信頼性の高いサービス提供を実現する鍵となるのかなと考えました。
今後は、AWS以外の証明書発行や適応方法も学んでいこうと思います。