本記事では、API Managementを内部モードにする手順を解説します。
目次
API Management 内部モードについて
API Managementを内部モードにすると、API Managementが外部からアクセスされない状態を作る事が出来ます。
これにより、APIに外部から直接通信させない状態を作る事ができ、APIをセキュアに守る事が出来ます。
併せて利用される事が多いサービスとしてApplication Gatewayが挙げられます。
Application GatewayをAPI Managementの前に配置し、API Managementを内部モードにする事で、API Managementへの通信をApplicatio Gatewayからのみに限定させる事が出来ます。
今回は以下のように仮想ネットワークの中のサブネットにAPI ManagementとVirtual Machineを配置するシンプルな構成を作成します。
実施手順としては以下のようになります。
- ログイン:Azureにログインします。
- 仮想ネットワークの作成:リソースを配置する為の仮想ネットワークを作成します。
- ネットワークセキュリティグループの作成:API Managementを内部モードで作成する為には、サブネットにネットワークセキュリティグループを正しく設定する必要があります。
- パブリックIPアドレスの作成:API Managementを内部モードで作成する際に、コントロールプレーントラフィック用のパブリックIPを作成する必要があります。
- API Managementの作成・内部モード化:上記の準備が完了したら、API Managementを作成します。
- 仮想マシンの作成:仮想マシンを作成し、開発者ポータルへアクセスします。
ログイン
まずは、Azure公式ページからAzureにログインしましょう。
Azureアカウントを保持している方はSign inを、保持していない方はFree accountよりアカウントを作成しましょう。
仮想ネットワークの作成
まず、仮想ネットワークを作成します。この仮想ネットワークは、API Managementと開発者ポータルにアクセスする為のVMを配置する為に利用します。
検索バーに”Vnet”などと入力し、”仮想ネットワーク”を選択しましょう。
“基本”タブにて任意の基本情報を設定します。今回はリソース名を”test-apim-vnet”とします。
“IPアドレス”タブでは、サブネット名を”default”から”test-apim-subnet”に変更します(変更しなくても問題ありません)。
上記の設定が完了したら、仮想ネットワークを作成します。
ネットワークセキュリティグループの作成
API Managementを内部モードで作成するには、ネットワークセキュリティグループをカスタマイズして設定する必要があります。
まず、検索バーに”nsg”などと入力し、”ネットワークセキュリティグループ”を選択し、作成します。
“基本”タブに任意の基本情報を設定します。今回はリソース名を”test-apim-nsg”とします。
上記の設定が完了したら、作成します。
公式ページに記載がある通り、以下の様にインバウンドとアウトバウンドのルールを追加します。
ポート番号やその他設定の詳細は公式ページを参照下さい。
受信セキュリティ規則には以下を許可するルールを追加します。
- 任意の場所→仮想ネットワーク (ポート3389) ※外部からRDP接続を行えるようにするため
- インターネット→仮想ネットワーク
- API Management→仮想ネットワーク
- Azure Load Balancer→仮想ネットワーク
送信セキュリティ規則に以下を許可するルールを追加します。
- 仮想ネットワーク→ストレージ
- 仮想ネットワーク→SQL
- 仮想ネットワーク→Azure Key Vault
上記のルールが追加できたら、”サブネット”タブより、”test-apim-subnet”に関連付けを行います。
パブリックIPアドレスの作成
続いて、パブリックIPアドレスを作成します。内部モードであっても、API MangementにパブリックIPを付与する必要があります。
このパブリックIPアドレスは管理エンドポイントへのコントロールプレーントラフィックにのみ使用されます。
検索バーに”パブリックIP”などと入力し、”パブリック IP アドレス”を選択します。
“基本”タブより、任意の名前を付与し、IPバージョンがIPv4、SKUがStandardであるを確認し作成します。
作成が完了したら、”構成”タブより、任意のDNS名を付与します。
API Managementの作成
ではいよいよAPI Managementの作成に入ります。
まず、検索バー、”API Management”などと入力し、”API Managementサービス”を選択し、作成します。
“基本”タブでは、任意の基本情報を入力します。
価格レベルは、”Developer”を選択します(デモ目的のため)。
“監視”、”スケーリング”、”マネージドID”については全てデフォルトのまま変更する必要はありません。
“仮想ネットワーク”タブでは、”接続の種類”を”なし”とします。
“なし”を選択する事で、API Managementはどの仮想ネットワークにも紐づかない状態で作成される事となりますが、デプロイ後に内部モードに切り替えます。
個人的に後から内部モードにする方が、デバッグが容易な様に感じるためです。
上記の設定が完了したら、API Managementを作成します。作成には30分程度かかります。
作成が完了したら、API Mangementの”ネットワーク”タブより、内部モードに切り替えていきます。
“仮想ネットワーク”にて”内部”を選択し、紐づけるサブネットとパブリックIPアドレスを選択します。どちらも先程作成したものを選択します。
上記にてAPI Managementの内部モード化が完了です。
以下にて内部モードにて開発者ポータルにアクセスする手順を解説します。
仮想マシンの作成
内部モードでAPI Managementの開発者ポータルにアクセスするには、仮想マシンからアクセスする必要があります。
以降でその仮想マシンを作成して行きます。
検索バーに”Virtual Machine”などと入力し、”Virtual Machines”を選択し、作成します。
仮想マシンの作成は、以下の様に、Windowsのイメージを作成、RDPからのアクセスが可能な状態で作成します。
※仮想マシン作成の詳細に関しては、【Azure】Virtual Machines(仮想マシン/VM)とは?使い方徹底解説!を参照下さい。
仮想マシンが作成できたら、RDP接続を実施し、hostsファイルに追記をします。
hostsファイルは”C:\Windows\System32\drivers\etc\”配下に存在します。
hostsファイルを開いたら、以下の様に、API ManagementのプライベートIP(API Managementの概要タブより確認可能)とそれに紐づく5つのエンドポイントを登録します。
登録するエンドピントは以下となります。
- ${API Managementのリソース名}.azure-api.com
- ${API Managementのリソース名}.portal.azure-api.com
- ${API Managementのリソース名}.developer.azure-api.com
- ${API Managementのリソース名}.management.azure-api.com
- ${API Managementのリソース名}.scm.azure-api.com
登録が完了したら、保存します。
続いて開発者ポータルにアクセスする為のURLを取得します。
API Managementの”概要”タブより、”開発者ポータル”の文字を押下します。
すると、新しいタブが開くので、新しいタブにてURLを全てコピーします。
仮想マシンに戻り、Micorsoft Edgeを開き、コピーしたURLを貼り付けます。するとAPI Mangementの開発者ポータルにアクセスする事が可能です。
※Internet Explorerを利用すると、上手くアクセスできないので注意が必要です。
【関連記事】