好きな所から読む
1 概要
マイクロソフトアズール(アズール)ネットワークを確実に接続する仮想マシン(VM)のために必要なインフラストラクチャを提供して互いに、及びクラウドとオンプレミスのデータセンター間のブリッジです。
Azureのネットワークサービスは、設計により、柔軟性、可用性、復元力、セキュリティ、および整合性を最大化します。このホワイトペーパーでは、Azureのネットワーク機能の詳細と、Azureのネイティブセキュリティ機能を使用して情報資産を保護する方法について説明します。
2 Azure仮想マシンを保護するためのガイドライン
Azureは、共有インフラストラクチャを使用して、80を超えるグローバルデータセンターで数百万の同時顧客をサポートするマルチテナントプラットフォームです。Azureの共有インフラストラクチャは何億ものアクティブなVMをホストするため、ネットワークトラフィックのセキュリティと機密性を保護することが重要です。
Azure Virtual Networksは、論理的な分離、ファイアウォール、アクセス制御、認証、および暗号化を組み合わせて使用して、転送中の顧客データを保護します。MicrosoftのAzureデータセンターの運用では、ISO 27001、SOC 1、SOC 2などの標準化された業界制御フレームワークを使用して、包括的な情報セキュリティポリシーとプロセスを実装します。サードパーティの監査人は、Azureインフラストラクチャの物理的側面と仮想的側面の両方に対するMicrosoftの遵守を定期的に認定します。
従来のデータセンターモデルでは、企業の情報技術(IT)組織が、ネットワーク機器への物理アクセスを含むネットワークシステムを制御しています。会社の従業員または請負業者は、ネットワークトポロジの物理的な変更、ルーター設定の変更、ファイアウォールデバイスの展開など、展開、構成、および管理の責任を負います。
クラウドサービスモデルでは、ネットワークの保護と管理の責任はクラウドプロバイダーとお客様の間で共有されます。顧客は物理的にアクセスできません–クラウドプロバイダーのデータセンターに足を踏み入れてサーバーラックを再配線することはできません。しかし、ゲストオペレーティングシステム(OS)ファイアウォール、仮想ネットワークゲートウェイ構成、仮想プライベートネットワークなどのツールを使用して、クラウド環境内で同等の論理を実装します。この物理的および論理的な分離により、お客様はインフラストラクチャを構築するときに、Azureによって提供される基本的なセキュリティ機能に依存することができます。
2.1プライベートネットワーク
パブリッククラウド上の顧客インフラストラクチャの論理的な分離は、セキュリティを維持するための基本です。Azureは、主に分散仮想ファイアウォールを介してこれを実現します。さらに、顧客は論理的に分離された複数のプライベートネットワークを展開できます。これらの細分化されたネットワークは、一般的に次の2つのカテゴリのいずれかに分類されます。
- 展開ネットワーク:各展開は、ネットワークレベルで他の展開から分離できます。デプロイ内の複数のVMは、プライベートIPアドレスを介して相互に通信できます。
- 仮想ネットワーク:各仮想ネットワークは、他の仮想ネットワークから分離されています。同じサブスクリプション内の複数のデプロイメントを同じ仮想ネットワークに配置し、プライベートIPアドレスを介して相互に通信できます。
ネットワーク管理者は、オンプレミスのプライベートネットワークの管理と同様の方法で、これらの分離されたプライベートネットワークを管理できます。
管理者がAzureプライベートネットワークのネットワークセキュリティを管理するメカニズムは、Azureクラウドアクセスレイヤーにあります。これは、インターネットに面した企業ネットワークのエッジに相当します。クラウドアクセスレイヤーには、ファイアウォール、ロードバランサー、および顧客管理者が管理するネットワークアドレス変換(NAT)機能が含まれています。
2.1.1インターネット通信の有効化
デフォルトでは、プライベートネットワーク内のVMはインターネットからの受信トラフィックを受信しません。管理者は、次の3つの方法のいずれかでインターネット通信を有効にできます。
- 管理者は、インターネットトラフィックやAzure内の他のVMからのトラフィックなど、デプロイメントの分離されたネットワークの外部から開始されたインバウンドトラフィックを受信するVMポートマッピングを指定する入力エンドポイントを定義できます。
- 管理者は、仮想ネットワークの外部から開始された受信トラフィックを受信するIPアドレスを指定するAzureセキュリティグループを定義することにより、セキュリティをさらに強化できます。管理者は入力エンドポイントのアクセス制御リスト(ACL)またはセキュリティグループのいずれかを定義できますが、両方は定義できないことに注意してください。
- 管理者は、インスタンスレベルのパブリックIPアドレスを仮想マシンに割り当てることができます。その後、VMのすべてのポートにインターネットからアクセスできます。
注:このペーパーで使用されている「受信トラフィック」という用語は、インターネット上のコンピューターまたはAzureのお客様のプライベートネットワークの外部で開始されたトラフィックを指します。これは、要求に対する応答である受信トラフィック(要請された受信トラフィックとも呼ばれます)と区別するために、非送信請求受信トラフィックとも呼ばれます。
2.1.2通信の保護
プライベートネットワーク内のVM間の通信の保護
展開ネットワーク内の仮想マシンは、プライベートIPアドレスを介して内部的に通信できます。サブスクリプションの複数の展開におけるVM間の通信セキュリティは、仮想ネットワークを使用することで強化できます。
アプリケーションがVPNなどを介して内部プライベートネットワーク経由で機密データを送受信する場合、データはIPsec、SSL / TLS、またはその他のアプリケーションレベルの暗号化技術を使用して暗号化できます。機密性やプライバシーの懸念が高いお客様(さまざまな業界の規制や標準への準拠など)は、リージョン内のVM間のすべてのプライベート通信が暗号化されるようにする必要があります。
暗号化を使用した仮想ネットワークの構成の詳細については、MSDNのAzure Virtual Networkのドキュメントを参照してください。
インターネットからのインバウンド通信の保護
既定では、Azureは、リモート管理ポートを除き、Azure管理ポータルを介して作成されたVM上のインターネットからの受信トラフィックをブロックします。
管理者は、受信トラフィックを介してインターネットからアクセスできるVMポートとIPアドレスを決定できます。さらに、管理者は多くの構成変更を実装して、インターネットからVMまたはVNETのポートへのネットワークレベルでのリモートアクセスを保護できます。
- クラウドアクセスレイヤーで入力エンドポイントを定義して、必要なときにのみポートを開く。管理者は、入力エンドポイントでアクセス制御リスト(ACL)を指定して、VMがトラフィックを許可するソースIPを制御できます。
- セキュリティグループを定義して、仮想ネットワーク内の特定のVMへのオープンインバウンドトラフィックを制御します。管理者は、入力エンドポイントACLまたはセキュリティグループのいずれかを定義できますが、両方を定義することはできません。
- VMで実行されるサードパーティのプロキシファイアウォール(Barracuda Web Application Firewall VxやNG Firewall Vx仮想アプライアンスなど)を使用して、他のVMへのトラフィックをフィルタリングします。VMを仮想ネットワークに追加し、プロキシファイアウォールのポートの入力エンドポイントを定義します。
- ゲストOS VM内のファイアウォールで開いているポートを定義します。
管理者が入力エンドポイントまたはIPアドレスを開く場合、管理者は、VMがインターネット上で開いて実行されている場合と同じセキュリティモデルに従う必要があります。アプリケーションが入力エンドポイントで機密データを送受信する場合は、すべての入力エンドポイントでサーバーとクライアントの認証を使用し、通信を暗号化する必要があります。アプリケーションが(ネットワーク内のパブリックIPアドレスを含む)パブリックネットワークを介して機密データを送受信する場合、SSLまたは同様のアプリケーションレベルの暗号化テクノロジを使用して通信を暗号化する必要があります。
サブスクリプション間の通信の保護
顧客には複数のサブスクリプションがあり、異なるサブスクリプションのVM間の通信が必要になる場合があります。このような場合、パブリック仮想IPアドレスを介して通信するようにVMを構成できます。さらに、VMが相互にのみ接続を開始できるように、IP ACLを入力エンドポイントで構成する必要があります。
IPアドレスACLが変更されないように、パブリック仮想IPアドレスに予約済みIPアドレスを使用することが重要です。
IPアドレスACLの構成の詳細については、「ネットワークアクセスコントロールリストについて」を参照してください。
オンプレミスネットワークへの通信の保護
ワークロードでAzure Virtual Networkとオンプレミスシステム間の安全な通信が必要な場合は、仮想ネットワークゲートウェイを使用してこれらのチャネルを保護するのが最適です。2つの展開シナリオがあります。
1.内部多層アプリケーション:
Azureにデプロイされた(Webベースのレコード処理システムのような)多層アプリケーション。インターネットからのインバウンド接続は必要ありませんが、お客様のオンプレミスネットワーク内のサーバーおよびアプリケーションへの接続が必要です。
管理者がVNET VNETへの接続を作成する必要がある場合、管理者は仮想ネットワークを作成し、仮想へのアプリケーション層の仮想マシンを追加することができ、ネットワークが、任意の入力エンドポイントを定義する必要はありません。さらに、管理者は次のことを行う必要があります。
- リモート管理入力エンドポイントを削除するか、以下の「多層防御のための仮想ネットワーク内のVMの分離」というタイトルのセクションにあるガイダンスを使用してそれらをロックダウンし、管理エンドポイントを保護します。
- 仮想ネットワークゲートウェイまたはExpressRouteを構成して、企業ネットワーク宛てのトラフィックがVPNを通過するようにします。
2.公共向けの多層アプリケーション:
Azureにデプロイされた多層アプリケーション、およびフロントエンド層には、インターネットからのインバウンド接続(SSLポート443経由)が必要です。バックエンド層にはインターネットからのインバウンド接続は必要ありませんが、顧客の企業ネットワークへの接続は必要です。
この場合、管理者は次のことを行う必要があります。
- 各アプリケーション層から適切なVMを使用して仮想ネットワークを作成します。
- フロントエンド層のVMの受信インターネットトラフィックの入力エンドポイントを定義します。
- すべてのVMのリモート管理入力エンドポイントを削除するか、それらをロックダウンします。
- 企業ネットワーク宛てのトラフィックがVPN接続を介して企業ネットワークに流れるように、仮想ネットワークゲートウェイを構成します。
仮想ネットワークゲートウェイは、IPsecトンネルを確立して、仮想ネットワークと顧客のVPNデバイス間のトラフィックをルーティングします。これは、ハードウェアVPNデバイスでも、Windows Server 2012ルーティングおよびリモートアクセスサービスなどのソフトウェアVPNでもかまいません。
Azure内に仮想プライベートネットワークを作成すると、オンプレミスネットワークをより安全にAzureに拡張できます。この接続は、サイト間またはポイントツーサイトVPNにすることができます。
地域内のVPNが仮想ネットワークゲートウェイを介してインターネット経由で企業ネットワークに接続されている場合、構成は企業ネットワーク上のゲートウェイのサイト間VPNに依存しますが、これらの通信はデフォルトでAES-256などの標準で暗号化されます。
リージョン内の仮想プライベートネットワークがAzure ExpressRouteなどの直接接続テクノロジーを使用して企業ネットワークに接続している場合、このトラフィックはMPLSネットワークを介してISPを通過するため、通常はより安全であると見なされます。セキュリティに関する追加の懸念があるお客様は、仮想ハードディスク(VHD)ファイルを移動するときに、IPsec、TLS、またはBitLockerなどの他のアプリケーションレベルの暗号化テクノロジを使用して通信を暗号化する必要があります。
仮想ネットワークゲートウェイの構成の詳細については、「管理ポータルで仮想ネットワークゲートウェイを構成する」を参照してください。
2.2セキュリティ管理と脅威防御
VMのリモート管理の保護
管理者は、Azure管理ポータルまたはWindows PowerShellを使用してVMを作成できます。
管理者がAzure管理ポータルを使用してVMを作成すると、リモートデスクトッププロトコル(RDP)およびリモートWindows PowerShellポートがデフォルトで開かれます。次に、Azure管理ポータルはRDPとリモートのWindows PowerShellのランダムなポート番号を割り当てて、パスワードディクショナリ攻撃の可能性を減らします。
管理者がWindows PowerShellを使用してVMを作成する場合、RDPおよびリモートWindows PowerShellポートを明示的に開く必要があります。
- 管理者は、RDPおよびリモートWindows PowerShellポートをインターネットに開いたままにすることを選択できますが、最低でも、強力なパスワードを使用してRDPおよびリモートWindows PowerShell接続を作成できるアカウントを保護する必要があります。
- 管理者は、上記のインターネットからのインバウンド通信を保護するための一般的なオプションの使用も検討する必要があります。
DDoSからの保護
Microsoftは、Azureプラットフォームサービスを保護するために、Azureの継続的な監視プロセスの一部である分散型サービス拒否(DDoS)防御システムを提供しており、侵入テストを通じて継続的に改善されています。AzureのDDoS防御システムは、外部からの攻撃だけでなく、他のAzureテナントからの攻撃にも耐えられるように設計されています。
- ネットワーク層の大量攻撃。これらの攻撃は、ネットワークでパケットをフラッディングすることにより、ネットワークパイプとパケット処理機能を妨害します。Azure DDoS防御テクノロジーは、SYN Cookie、レート制限、接続制限などの検出および軽減技術を提供して、このような攻撃がお客様の環境に影響を与えないようにします。
- アプリケーション層攻撃。これらの攻撃は、お客様のVMに対して実行される可能性があります。インフラストラクチャは顧客のアプリケーションの予想される動作を解釈しないため、Azureは緩和策を提供せず、個々の顧客の展開に影響を与えるネットワークトラフィックを積極的にブロックしません。この場合、オンプレミス展開と同様に、軽減には次のものが含まれます。
-
- 負荷分散されたパブリックIPアドレスの背後で複数のVMインスタンスを実行します。
- トラフィックを終了してVMで実行されているエンドポイントに転送するWebアプリケーションファイアウォール(WAF)などのファイアウォールプロキシデバイスを使用します。これにより、広範囲のDoSや、低速、HTTP、およびその他のアプリケーション層の脅威などのその他の攻撃に対する保護が提供されます。侵入検知と防止の両方を実行するバラクーダネットワークスなどのいくつかの仮想化ソリューションが利用可能です。
- 特定のDoS攻撃から保護するWebサーバーアドオン。
- ネットワークACL。特定のIPアドレスからのパケットがVMに到達するのを防ぐことができます。
アプリケーションが攻撃を受けているとお客様が判断した場合は、すぐにAzureカスタマーサポートに連絡してサポートを受けてください。Azureカスタマーサポートの担当者は、これらの種類の要求に優先順位を付けます。
内部DNSによる内部VM名の保護
クラウドサービス内のVMを名前でアドレス指定するために、Azureは内部DNSサービスを提供しています。VM名は、同じサブスクリプション内であっても、クラウドサービス全体のプライバシーを維持しながら、クラウドサービス内のプライベートIPアドレスに解決されます。
クラウドサービスの役割と仮想マシンの両方に割り当てられたプライベートIPアドレスは、クラウドインフラストラクチャの修復中に変更される可能性があります。この可能性があるため、Azureがホストするサービス内のロール間の通信は、IPアドレスではなくDNS名を介して解決する必要があります。このルールの1つの例外は、仮想ネットワークがカスタムIPアドレススペースに使用されている場合です。これらの場合、IPアドレスは静的です。また、プライベートIPアドレスは変更される可能性があるため、クライアントではDNS応答のDNS存続時間(TTL)値を尊重する必要があります。
多層防御のための仮想ネットワーク内のVMの分離
管理者は、ネットワークセキュリティグループを使用して、仮想ネットワーク内のネットワークレイヤーでイントラネットトラフィックをセグメント化できます。ネットワークセキュリティグループは、仮想ネットワークのサブネットに適用できます。
イントラネットトラフィックのセグメント化に加えて、ネットワークセキュリティグループ(NSG)は、インターネットに出入りするトラフィックを制御することもできます。
ネットワークセキュリティグループは、VMまたはサブネットに適用でき、場合によっては両方に適用できます。NSGのいくつかの重要な側面は次のとおりです。
- NSGルールには5タプル(送信元IP、送信元ポート、宛先IP、宛先ポート、プロトコル)が含まれています。
- NSGルールはステートフルです。したがって、ポートでのトラフィックを許可するインバウンドルールがある場合、パケットが同じポートを流れるために、アウトバウンド側の一致するルールは必要ありません。
- すべてのNSGには、仮想ネットワーク内の接続とインターネットへのアウトバウンドアクセスを許可するデフォルトのルールが含まれています。カスタマー管理者は、デフォルトのルールを上書きできます。
- NSGは優先度に基づいてルールを処理します。値が小さい(優先度が高い)ルールは、値が大きい(優先度が低い)ルールより前に処理されます。
- Azureは、仮想ネットワーク外のパブリックIPアドレス空間と顧客のネットワークアドレス空間全体をそれぞれ参照するINTERNETやVIRTUAL_NETWORKなどのデフォルトタグを提供します。タグは、アクセス制御ルールの一部として使用できます。
VMからMicrosoft Azure SQLデータベースへの通信の保護
Microsoft Azure SQL Databaseには、着信トラフィックをフィルタリングするための組み込みファイアウォールも用意されています。最初は、SQLデータベースとのすべての通信がブロックされています。データベースとの通信を有効にするには、管理者はAzure SQL Databaseでファイアウォールルールを定義して、AzureのVMのパブリックIPアドレスがデータソースと通信できるようにする必要があります。
さらに、管理者はパブリック仮想アドレスが変更されるたびにIPアドレスACLを更新する必要があります。これにより、サービス障害が発生する可能性があり、管理者に追加の負担がかかります。さらに、パブリック仮想IPアドレスは、VMのシャットダウン時にコンピューティングリソースが割り当て解除された後、またはデプロイメントが削除された後に変更される可能性があります。
ただし、インプレースアップグレードを使用すると、管理者はVMのパブリックIPアドレスを変更せずにサービスの新しいバージョンを展開できます。
IP ACLの構成方法の詳細については、「ネットワークアクセスコントロールリストについて」を参照してください。サーバーレベルとデータベースレベルの両方でルールを指定するようにSQLデータベースファイアウォールを構成する方法については、次の記事を参照してください。
- Microsoft Azure SQLデータベースファイアウォール
- sp_set_firewall_rule (Microsoft Azure SQLデータベース)
3 Azureクラウドサービスを保護するためのガイドライン
上記のAzure VMおよびVNETのガイドラインは、Azure Cloud Service Webロールとワーカーロールにも適用されます。
VMと同様に、Azure Portalを介して作成されたすべてのクラウドサービスロールには、デフォルトでインターネットとリモート管理ポートの両方からブロックされる受信トラフィックフローがあります。管理者がリモートデスクトップサーバーの役割を有効にすると、RDPポートが開きます。RDPポート番号は、ランダムな番号を使用して割り当てられ、広範なスキャンおよびパスワードディクショナリ攻撃の可能性を低減します。
お客様はRDPポートをインターネットに開いたままにすることを選択できますが、最低でも、強力なパスワードを使用するアカウントで役割を保護する必要があります。RDPを使用する場合は、AzureポータルからRDPポートを有効にしますが、使用後はポートを無効にします。
同様に、他のポートは、サービス定義ファイル(.csdef )のWebRole またはWorkerRole スキーマのEndpoints要素で定義することによってのみ開きます。詳細については、MSDNのWebRole スキーマおよびWorkerRole スキーマのガイダンスを参照してください。