目次
Azureネットワークセキュリティサービス
以下にAzureのネットワークセキュリティサービス一覧を示します。本記事ではこれらのサービスについて詳しく解説していきます。
サービス | 役割 | デプロイ場所 |
DDoS Protection | Azureで利用するパブリックIPに対するDDoS攻撃からの保護 | VNet外 |
WAF(Azure Front Door) | SQLインジェクションやXSSなどのWebアプリケーションに対する攻撃からの保護 | VNet外 |
WAF(Application Gateway) | SQLインジェクションやXSSなどのWebアプリケーションに対する攻撃からの保護 | VNet内 |
Azure Firewall | HTTP/HTTPS、MSSQLに関してはFQDNベースのL7のアクセス制御、その他プロトコルに対してはL4のアクセス制御を行い、悪意ある第三者からの通信を防ぐ | VNet内 |
NSG | L4のアクセス制御を行い、悪意ある第三者からの通信を防ぐ | VNet内 |
プライベートエンドポイント/サービスエンドポイント | PaaSに対してアクセス可能なVNet、リソースを制御し第三者からのPaaSへの通信を防ぐ | VNet |
DDoS Protection
概要
Azureで利用するパブリックIPに対するDDoS攻撃から保護するサービス。
SKU
- DDoS Infrastructure Protection
- 無償
- パブリックIP利用時にはデフォルトで機能する
- ユーザ側で閾値が設定できず、メトリックの監視も行えない
- DDoS IP Protection
- 有償
- パブリックIP1つずつに対して設定する
- DDoS Network Protection
- 有償
- パブリックIPに対して最小100個から設定する
Azure Front Door、Application GatewayのWAF
概要
SQLインジェクションやXSSなどのWebアプリケーションに対する攻撃から保護するサービス。
特徴
- WAFポリシーを構成しアタッチ(追加)することで利用できる
- ユーザが作成したカスタムルール
- Azureで管理するマネージドルールセット
- WAFを機能させるためにはHTTPSの暗号化されたペイロードを検査する必要があるため、あわせてSSL/TLSオフロードを設定する必要がある
カスタムルールとマネージドルールがどちらも設定されている場合、カスタムルールを処理した後にマネージドルールが処理される。
Azure Firewall
概要
HTTP/HTTPS、MSSQLに関してはFQDNベースのL7のアクセス制御、その他のプロトコルに対してはL4のアクセス制御を行い、悪意ある第三者からの通信を防ぐことができるサービスです。
特徴
ステートフル(通信を往復で処理)なファイアウォールです。アプリケーションルール、ネットワークルール、DNATルールに基づいてトラフィックを処理します。
NSG
概要
ステートフルなL4通信制御機能です。
特徴
NSGの拡張機能として、ASG(アプリケーションセキュリティグループ)があります。仮想マシン(NIC)をグループ化することができ、NSGの送信元/宛先として適用できる。同じ役割のサーバ同士をグルーピングすることで、アプリケーションの通信パターンに適応したNSG設定が容易になります。
ASGを使う際、1つのASGに所属させるNICはすべて同じVNet内に存在する必要がある点に注意が必要である。またNSGで送信元と宛先双方にASGを設定する場合、それぞれのASGに所属するNICは同一のVNet内に存在する必要がある。そのため、送信元と宛先両方にASGを使う場合は、1つのVNet内の通信にのみ適用可能である。
プライベートエンドポイント/サービスエンドポイント
概要
PaaSに対してアクセス可能なVNet、リソースを制御し第三者からのPaaSへの通信を防ぐことができるサービス。
違い
プライベートエンドポイントとサービスエンドポイントの違いは以下の通りです。
項目 | プライベートエンドポイント | サービスエンドポイント |
---|---|---|
接続方法 | プライベートIP | パブリックIP(許可されたVNet) |
通信経路 | 完全なVNet内(閉域) | Azureのバックボーン |
セキュリティ強度 | 高 | 中 |
利用例 | 高度な分離・セキュリティが必要 | 簡易なアクセス制御 |
アクセス方法
本題に入る前に、VNet外のPaaSにVNet内からアクセスする方法は3つあります。
- インターネットへのアウトバウンドと同様の送信元NAT(SNAT)を使ったアクセス
- サービスエンドポイント(サブネットに付加)を経由してのアクセス
- プライベートエンドポイント(PaaSに付加)を経由してのアクセス
1.インターネットへのアウトバウンドと同様の送信元NAT(SNAT)を使ったアクセス
Microsoft以外のISPなどネットワーク運営者のネットワークを経由せずに、通信はMicrosoftが管理するバックボーンネットワークで完結します。
2.サービスエンドポイント(サブネットに付加)を経由してのアクセス
サービスエンドポイントを経由してVNet内からPaaSにアクセスすると送信元IPはNATされず、VNet内で利用しているプライベートIPアドレスのまま通信を行います。実際には、VNetのIDおよびサブネットのIDを埋め込んだ特殊なパケットフォーマット(プロトコル)を使うことで、PaaS側で通信元の特定などを実現しています。
サービスエンドポイント経由のアクセス先はあくまでPaaSのパブリックエンドポイントとなります。
デメリット
- オンプレミスからのプライベート通信には利用できない
- サービスエンドポイントを利用する場合、VNet内からPaaSのカテゴリごとに許可を行います。たとえば、ストレージアカウントにアクセスする場合はサービスエンドポイントを利用するサブネットでMicrosoft.Storageに対するアクセスを許可します。
上記の問題に対処するためには、プライベートエンドポイントを利用する必要があります。
3.プライベートエンドポイント(PaaSに付加)を経由してのアクセス
プライベートエンドポイントを使うと直接PaaSにアクセスできます。(PaaSを閉域ネットワークからのアクセスだけに限定することが可能)
特徴
- オンプレミスからの通信もプライベートエンドポイントを経由することが可能
- NSGを使って通信を制限することも可能
- 「Paasはマルチテナントの構成を取っている」「TLSレベルではホスト名で通信先を認証する」ことから、プライベートエンドポイントを設定してもホスト名を指定してアクセスする必要がある
オンプレミスからプライベートエンドポイントにアクセスするための代表的なDNSインフラとして、オンプレミスのDNSからプライベートエンドポイント用のドメイン、もしくはホスト名については条件付きフォワードでVNetにデプロイしたDNSフォワーダーに転送する。
上記以外にも「PaaSにアクセスするクライアントそれぞれでhostsファイルを書く」や「オンプレミスのDNSにてプライベートDNSゾーンと同様にプライベートエンドポイント用のドメインを管理する」などがあるが、前者も後者も管理コストがかかる。
さらにDNSフォワーダーを構築する場合、Private DNS Resolver(VNet内のリソースが、プライベートな名前を安全に解決するためのDNSサービス)を利用することが一般的である。
「VMを使ってDNSサーバを構築し、転送されてきたDNSクエリをさらに168.63.129.16のエンドポイントへ転送するように設定する」や「Azure FirewallのDNSプロキシの機能(Azure FirewallをDNS経由の通信の中継点にすることで、DNSアクセスを制御・監視できる機能)を利用する」などもあるが、管理コストがかかる
Private DNS Resolverは、2種類のエンドポイントをホストする機能を持っている。
- オンプレミスから発信されたクエリをプライベートDNSゾーンで解決するための受信エンドポイント
- VNetから発信されたクエリをオンプレミスに転送するための送信エンドポイント