仮想ネットワークの Azure API Management との使用
API Managementには、Azure 仮想ネットワークを使用して、API Management インスタンスと API へのアクセスをセキュリティで保護するためのオプションがいくつか用意されています。 API Management では、相互に排他的な次のオプションがサポートされています。
仮想ネットワークへのAPI Management インスタンスの統合 (インジェクション) により、ゲートウェイがネットワーク内のリソースにアクセスできるようにします。
外部または内部の 2 つの統合モードのいずれかを選択できます。 これらは、ゲートウェイとその他の API Management エンドポイントへの受信接続について、インターネットからの接続も許可するか、仮想ネットワーク内からの接続のみを許可するかという点が異なります。
"プライベート エンドポイント" を使用した API Management ゲートウェイへのセキュリティ保護されたプライベート受信接続を有効にします。
次の表に、仮想ネットワーク オプションの比較を示します。 詳細については、この記事の後のセクションと詳細なガイダンスへのリンクを参照してください。
ネットワーク モデル | サポートされるレベル | サポートされているコンポーネント | サポートされているトラフィック | 使用シナリオ |
---|---|---|---|---|
仮想ネットワーク - 外部 | 開発者、プレミアム | Azure portal、ゲートウェイ、管理プレーン、Git リポジトリ | インターネット、ピアリングされた仮想ネットワーク、Express Route、および S2S VPN 接続に対して受信トラフィックと送信トラフィックを許可できます。 | プライベート バックエンドとオンプレミス バックエンドへの外部アクセス |
仮想ネットワーク - 内部 | 開発者、プレミアム | 開発者ポータル、ゲートウェイ、管理プレーン、Git リポジトリ | ピアリングされた仮想ネットワーク、Express Route、および S2S VPN 接続に対して受信トラフィックと送信トラフィックを許可できます。 | プライベート バックエンドとオンプレミス バックエンドへの内部アクセス |
受信プライベート エンドポイント | Developer、Basic、Standard、Premium | ゲートウェイのみ (マネージド ゲートウェイがサポートされ、セルフホステッド ゲートウェイはサポートされていません)。 | インターネット、ピアリングされた仮想ネットワーク、Express Route、および S2S VPN 接続からの受信トラフィックのみを許可できます。 | API Management ゲートウェイへのクライアント接続をセキュリティで保護する |
仮想ネットワークの統合
Azure Virtual Network (VNet) では、API Management インスタンスをインターネット以外のルーティング可能なネットワークに配置 (挿入) し、アクセスを制御できます。 仮想ネットワークでの API Management インスタンスは、ネットワーク接続された他の Azure リソースに安全にアクセスでき、さまざまな VPN テクノロジを使ってオンプレミス ネットワークにも接続できます。 Azure VNet の詳細については、最初に Azure Virtual Network の概要に関するページの情報をご覧ください。
Azure portal、Azure CLI、Azure Resource Manager テンプレート、またはその他のツールを構成に使用できます。 API Management がデプロイされるサブネットへの受信トラフィックと送信トラフィックは、ネットワーク セキュリティ グループを使用して制御します。
デプロイの詳細な手順とネットワーク構成については、以下を参照してください。
アクセス オプション
仮想ネットワークを使用すると、開発者ポータル、API ゲートウェイ、およびその他の API Management エンドポイントを、インターネット (外部モード) または VNet 内 (内部モード) のみのいずれかからアクセスできるように構成できます。
外部: API Management エンドポイントは、パブリック インターネットから外部ロード バランサーを使用してアクセスできます。 ゲートウェイでは、VNet 内のリソースにアクセスできます。
仮想ネットワークにデプロイされているバックエンド サービスにアクセスするには、外部モードで API Management を使用します。
内部: API Management のエンドポイントは、VNet 内から内部ロード バランサーを使用してのみアクセスできます。 ゲートウェイでは、VNet 内のリソースにアクセスできます。
API Management を内部モードで使用するのは、次のようなケースです。
- Azure VPN 接続または Azure ExpressRoute を使用することで、プライベート データセンターでホストされている API へのアクセスを、サード パーティが安全に行うことができるようにします。
- 一般的なゲートウェイを通じてクラウド ベースの API とオンプレミスの API を公開することによって、ハイブリッド クラウドのシナリオを有効にします。
- 単一のゲートウェイ エンドポイントを使用して複数の地理的な場所でホストされている API を管理します。
ネットワーク リソースの要件
API Management の仮想ネットワーク リソース要件は次のとおりです。 一部の要件は、API Management インスタンスをホストしているstv2
のバージョン (stv2
または stv1
) によって異なります。
- Azure Resource Manager 仮想ネットワークが必要です。
- 仮想ネットワークとサブネットを指定するだけでなく、Standard SKU パブリック IPv4 アドレスを指定する必要があります。
- API Management インスタンスへの接続に使用されるサブネットには、他の Azure リソースの種類が含まれる場合があります。
- API Management インスタンスへの接続に使用されるサブネットでは、委任を有効にしないでください。 サブネットの [サブネットをサービスに委任] 設定は、[なし] に設定する必要があります。
- 上記のサブネットに接続されたネットワーク セキュリティ グループ。 受信接続を明示的に許可するには、ネットワーク セキュリティ グループ (NSG) が必要です。これは、API Management によって内部的に使用されるロード バランサーが既定でセキュリティ保護され、すべての受信トラフィックを拒否するためです。
- API Management サービス、仮想ネットワークとサブネット、およびパブリック IP アドレス リソースは、同じリージョンとサブスクリプション内に存在する必要があります。
- 複数リージョンの API Management デプロイの場合、場所ごとに仮想ネットワーク リソースを個別に構成します。
サブネットのサイズ
API Management をデプロイできるサブネットの最小サイズは /29 で、3 つの使用可能な IP アドレスが提供されます。 API Management の追加スケール ユニットごとに、さらに 2 つの IP アドレスが必要になります。 最小サイズ要件は、次の考慮事項に基づきます。
Azure では、各サブネット内で 5 つの IP アドレスが予約されており、これらを使用することはできません。 サブネットの最初と最後の IP アドレスは、プロトコルに準拠するために予約されています。 さらに 3 つのアドレスが Azure サービスのために使用されます。 詳細については、「これらのサブネット内の IP アドレスの使用に関する制限はありますか」をご覧ください。
Azure VNet インフラストラクチャによって使用される IP アドレスに加えて、サブネットの各 API Management インスタンスでは、以下が使用されます。
- Basic SKU、Standard SKU、または Premium SKU のユニットごとに 2 つの IP アドレス、または
- Developer SKU 用に 1 つの IP アドレス。
内部 VNet にデプロイする場合は、このインスタンスは、内部ロード バランサー用に追加の IP アドレスが必要です。
例
Basic SKU、Standard SKU、または Premium SKU を選択できます。
/29 サブネット: 8 個の使用可能な IP アドレス - 5 個の予約済み Azure IP アドレス - 2 個の API Management IP アドレス (1 つのインスタンス用) - 1 個の IP アドレス (内部ロード バランサー用、内部モードで使用する場合) = 残りの IP アドレス 0 個 (スケールアウト ユニット用の残り)。
/28 サブネット: 16 個の使用可能な IP アドレス - 5 個の予約済み Azure IP アドレス - 2 個の API Management IP アドレス (1 つのインスタンス用) - 1 個の IP アドレス (内部ロード バランサー用、内部モードで使用する場合) = 残りの IP アドレス 8 個 (スケールアウト ユニットあたり 2 個の IP アドレス)、計 5 ユニット。 このサブネットでは、Basic SKU と Standard SKU のスケールアウト制限が効率的に最大化されます。
/27 サブネット: 32 個の使用可能な IP アドレス - 5 個の予約済み Azure IP アドレス - 2 個の API Management IP アドレス (1 つのインスタンス用) - 1 個の IP アドレス (内部ロード バランサー用、内部モードで使用する場合) = 残りの IP アドレス 24 個 (スケールアウト ユニットあたり 2 個の IP アドレス)、計 13 ユニット。 このサブネットでは、論理的な制限の Premium SKU スケールアウト制限が効率的に最大化されます。
/26 サブネット: 64 個の使用可能な IP アドレス - 5 個の予約済み Azure IP アドレス - 2 個の API Management IP アドレス (1 つのインスタンス用) - 1 個の IP アドレス (内部ロード バランサー用、内部モードで使用する場合) = 残りの IP アドレス 56 個 (スケールアウト ユニットあたり 2 個の IP アドレス)、計 29 ユニット。 Azure サポート チケットを使用して、12 ユニットを超える Premium SKU をスケーリングできます。 このような高い需要が見込まれる場合は、/26 サブネットを検討してください。
/25 サブネット: 128 個の使用可能な IP アドレス - 5 個の予約済み Azure IP アドレス - 2 個の API Management IP アドレス (1 つのインスタンス用) - 1 個の IP アドレス (内部ロード バランサー用、内部モードで使用する場合) = 残りの IP アドレス 120 個 (スケールアウト ユニットあたり 2 個の IP アドレス)、計 61 ユニット。 これは、非常に大きい、理論上のスケールアウト ユニット数です。
ルーティング
API Management インスタンスを外部 VNet または内部 VNet にデプロイする場合は、ルーティングに関するガイダンスを参照してください。
詳細については、Azure API Management の IP アドレスに関するページを参照してください。
DNS
外部モードでは、VNet によって、API Management エンドポイントとその他の Azure リソースに対して Azure で提供される名前解決が既定で可能になります。 オンプレミスのリソースの名前解決は提供されません。 必要に応じて、独自の DNS ソリューションを構成します。
内部モードでは、API Management エンドポイントおよびその他の必要な Azure リソースに対する名前解決を保証するために、独自の DNS ソリューションを提供する必要があります。 Azure プライベート DNS ゾーンを構成することをお勧めします。
詳細については、API Management インスタンスを外部 VNet または内部 VNet にデプロイする場合の DNS に関するガイダンスを参照してください。
関連情報:
重要
VNet でカスタム DNS ソリューションを使用する予定の場合は、そのソリューションは、API Management サービスをデプロイする前に設定します。 それ以外の場合は、DNS サーバーを変更するたびに、[Apply Network Configuration Operation](ネットワーク構成操作の適用) を実行するか、または Azure portal でサービス インスタンスのネットワーク構成ウィンドウで [Apply network configuration](ネットワーク構成の適用) を選択して、API Management サービスを更新する必要があります。
制限事項
一部の仮想ネットワークの制限は、API Management インスタンスをホストするコンピューティング プラットフォームのバージョン (stv2
または stv1
) によって異なります。
- API Management インスタンスが含まれるサブネットは、サブスクリプション間で移動できません。
- 内部 VNet モードで構成された複数リージョンの API Management デプロイでは、ユーザーがルーティングを所有し、複数のリージョン間の負荷分散を管理する責任を負います。
- API を OpenAPI 仕様から API Management にインポートするには、仕様 URL が、パブリックにアクセス可能なインターネット アドレスでホストされている必要があります。
受信プライベート エンドポイント
API Management では、API Management インスタンスに対してセキュリティ保護された受信クライアント接続を行うために、プライベート エンドポイントをサポートしています。 セキュリティ保護された各接続では、仮想ネットワークと Azure Private Link からのプライベート IP アドレスが使用されます。
プライベート エンドポイントと Private Link を使うと、次のことが可能になります。
API Management インスタンスへの複数の Private Link 接続を作成します。
プライベート エンドポイントを使って、安全な接続でインバウンド トラフィックを送信します。
ポリシーを使って、プライベート エンドポイントから送信されるトラフィックを区別します。
受信トラフィックをプライベート エンドポイントのみに制限し、データ流出を防ぎます。
重要
詳細については、受信プライベート エンドポイントを使用した API Management へのプライベート接続に関する記事を参照してください。
高度なネットワークの構成
Web アプリケーション ファイアウォールを使用してAPI Management エンドポイントをセキュリティで保護する
API Management インスタンスへのセキュリティで保護された外部アクセスおよび内部アクセスの両方と、プライベート バックエンドとオンプレミス バックエンドにアクセスできる柔軟性が必要なシナリオがあります。 これらのシナリオでは、Web アプリケーション ファイアウォール (WAF) を使用して、API Management インスタンスのエンドポイントへの外部アクセスを管理することを選択できます。
1 つの例として、API Management インスタンスを内部仮想ネットワークにデプロイし、インターネットに接続されている Azure Application Gateway を使用してそのインスタンスへのパブリック アクセスをルーティングすることができます。
詳細については、「内部仮想ネットワーク内の API Management を Application Gateway と統合する」を参照してください。
次のステップ
各項目の詳細情報
API Management を使用した仮想ネットワークの構成
- Azure API Management を使用して外部仮想ネットワークに接続する。
- Azure API Management を使用して内部仮想ネットワークに接続する。
- プライベート エンドポイントを使って API Management に非公開で接続する
- DDoS 攻撃から Azure API Management インスタンスを保護する
関連記事: