プライベート仮想ネットワークに Azure API Management インスタンスを挿入する - Premium v2 レベル
適用対象: Premium v2
この記事では、仮想ネットワークに Azure API Management Premium v2 (プレビュー) インスタンスを挿入するための要件について説明します。
Note
従来の Developer レベルまたは Premium レベルのインスタンスを仮想ネットワークに挿入する場合、要件と構成は異なります。 詳細情報。
API Management Premium v2 インスタンスを仮想ネットワークに挿入すると:
- API Management ゲートウェイ エンドポイントには、仮想ネットワークを経由してプライベート IP アドレスでアクセスできます。
- API Management は、ネットワーク内で分離された API バックエンドに送信要求を行うことができます。
この構成は、API Management インスタンスとバックエンド API の両方へのネットワーク トラフィックを分離するシナリオに推奨されます。
Standard v2 または Premium v2 レベルの API Management インスタンスへの "パブリック" 受信アクセスを有効にし、ネットワーク分離バックエンドへの送信アクセスを制限する場合は、「送信接続のために仮想ネットワークと統合する」を参照してください。
重要
- この記事で説明する仮想ネットワーク インジェクションは、Premium v2 レベル (プレビュー) の API Management インスタンスでのみ使用できます。 さまざまなレベルのネットワーク オプションについては、「Azure API Management で仮想ネットワークを使用する」を参照してください。
- 現在、Premium v2 インスタンスを仮想ネットワークに挿入できるのは、インスタンスが作成される場合のみです。 既存の Premium v2 インスタンスを仮想ネットワークに挿入することはできません。 ただし、インスタンスの作成後に、インジェクション用のサブネット設定を更新できます。
- 現時点では、Premium v2 インスタンスの仮想ネットワーク インジェクションと仮想ネットワーク統合を切り替えることはできません。
前提条件
- Premium v2 価格レベルの Azure API Management インスタンス。
- クライアント アプリと API Management バックエンド API がホストされている仮想ネットワーク。 API Management instance で使用される仮想ネットワークとサブネットの要件と推奨事項については、次のセクションを参照してください。
ネットワークの場所
- 仮想ネットワークは、API Management インスタンスと同じリージョンおよび Azure サブスクリプションに存在する必要があります。
サブネットの要件
- API Management インスタンスのサブネットを別の Azure リソースと共有することはできません。
サブネットのサイズ
- 最小: /27 (32 アドレス)
- 推奨: /24 (256 アドレス) - API Management インスタンスのスケーリングに対応するため
ネットワーク セキュリティ グループ
ネットワーク セキュリティ グループをサブネットに関連付ける必要があります。
サブネットの委任
このサブネットは Microsoft.Web/hostingEnvironments サービスに委任する必要があります。
Note
サブネットをサービスに委任できるように、サブスクリプションに Microsoft.Web/hostingEnvironments
リソース プロバイダーを登録することが必要になる場合があります。
サブネットの委任の構成の詳細については、「サブネットの委任を追加または削除する」を参照してください。
addressPrefix プロパティ
Premium v2 レベルの仮想ネットワークの挿入では、addressPrefix
サブネット プロパティが有効な CIDR ブロックに設定されている必要があります。
Azure portal を使用してサブネットを構成する場合、サブネットはアドレス プレフィックスの一覧で構成される addressPrefixes
(複数形) プロパティを設定します。 ただし、API Management では、addressPrefix
プロパティの値として 1 つの CIDR ブロックが必要です。
addressPrefix
を使用してサブネットを作成または更新するには、Azure PowerShell、Azure Resource Manager テンプレート、REST API などのツールを使用します。 たとえば、次のように Set-AzVirtualNetworkSubnetConfig Azure PowerShell コマンドレットを使用してサブネットを更新します。
# Set values for the variables that are appropriate for your environment.
$resourceGroupName = "MyResourceGroup"
$virtualNetworkName = "MyVirtualNetwork"
$subnetName = "ApimSubnet"
$addressPrefix = "10.0.3.0/24"
$virtualNetwork = Get-AzVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $resourceGroupName
Set-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $virtualNetwork -AddressPrefix $addressPrefix
$virtualNetwork | Set-AzVirtualNetwork
アクセス許可
仮想ネットワークの挿入を構成するには、サブネットまたは上位レベルで少なくとも次のロールベースのアクセス制御のアクセス許可を持っている必要があります。
アクション | 説明 |
---|---|
Microsoft.Network/virtualNetworks/read | 仮想ネットワークの定義を読み取ります |
Microsoft.Network/virtualNetworks/subnets/read | 仮想ネットワーク サブネットの定義を読み取ります |
Microsoft.Network/virtualNetworks/subnets/join/action | 仮想ネットワークに参加します。 |
仮想ネットワークに API Management を挿入する
Azure portal を使用して Premium v2 インスタンスを作成するとき、必要に応じて仮想ネットワーク インジェクションの設定を構成できます。
- API Management サービスの作成ウィザードで、[ネットワーク] タブを選択します。
- [接続の種類] で、[仮想ネットワーク] を選択します。
- [種類] で、[仮想ネットワーク インジェクション] を選択します。
- [仮想ネットワークの構成] で、挿入する仮想ネットワークと委任されたサブネットを選択します。
- ウィザードを完了して、API Management インスタンスを作成します。
プライベート IP アドレスにアクセスするための DNS 設定
Premium v2 API Management インスタンスが仮想ネットワークに挿入されるとき、API Management への受信アクセスを有効にするには、自らの DNS を管理する必要があります。
自らのカスタム DNS サーバーを使用するオプションは用意されていますが、次のことをお勧めします。
- Azure DNS プライベート ゾーンを構成します。
- 仮想ネットワークに Azure DNS プライベート ゾーンをリンクします。
Azure DNS でのプライベート ゾーンの設定方法を確認してください。
既定のホスト名でのエンドポイント アクセス
Premium v2 レベルで API Management インスタンスを作成すると、次のエンドポイントに既定のホスト名が割り当てられます。
- ゲートウェイ - 例:
contoso-apim.azure-api.net
DNS レコードを構成する
仮想ネットワーク内から API Management インスタンスにアクセスするための A レコードを DNS サーバーに作成します。 エンドポイント レコードを API Management インスタンスのプライベート VIP アドレスにマップします。
テスト目的で、API Management がデプロイされている仮想ネットワークに接続されているサブネット内の仮想マシン上のホスト ファイルを更新できます。 API Management インスタンスのプライベート仮想 IP アドレスを 10.1.0.5 と仮定すると、次の例に示すようにホスト ファイルをマップできます。 hosts マッピング ファイルは、%SystemDrive%\drivers\etc\hosts
(Windows) または /etc/hosts
(Linux、macOS) にあります。 次に例を示します。
内部仮想 IP アドレス | ゲートウェイ ホスト名 |
---|---|
10.1.0.5 | contoso-apim.portal.azure-api.net |