Azure CLI 使用した VM へのポートの開放とエンドポイント

適用対象: ✔️ Linux VM ✔️ フレキシブル スケール セット

サブネットまたは仮想マシン (VM) ネットワーク インターフェイスでネットワーク フィルターを作成して、Azure で VM へのポートを開くか、エンドポイントを作成します。 着信および発信の両方のトラフィックを制御するこれらのフィルターを、トラフィックを受信するリソースに接続されているネットワーク セキュリティ グループに配置します。 ポート 80 での Web トラフィックの一般的な例を使用して説明します。 この記事では、Azure CLI を使用して VM へのポートを開く方法を説明します。

ネットワーク セキュリティ グループとルールを作成するには、最新の Azure CLI がインストールされ、az login を使用して Azure アカウントにログインしている必要があります。

次の例では、パラメーター名を独自の値を置き換えます。 たとえば、myResourceGroupmyNetworkSecurityGroupmyVnet といったパラメーター名にします。

VM 用のポートを簡単に開く

開発/テスト シナリオで VM 用のポートを簡単に開く必要がある場合は、az vm open-port コマンドを使用できます。 このコマンドは、ネットワーク セキュリティ グループを作成して規則を追加し、これを VM またはサブネットに適用します。 次の例では、myResourceGroup というリソース グループ内の myVM という VM に、ポート 80 を開きます。

az vm open-port --resource-group myResourceGroup --name myVM --port 80

発信元 IP アドレスの範囲を定義するなど、規則をより細かく制御するには、この記事の追加の手順を続行します。

ネットワーク セキュリティ グループと規則の作成

az network nsg create で、ネットワーク セキュリティ グループを作成します。 次の例では、myNetworkSecurityGroup という名前のネットワーク セキュリティ グループを eastus に作成します。

az network nsg create \
    --resource-group myResourceGroup \
    --location eastus \
    --name myNetworkSecurityGroup

az network nsg rule create を使用して、Web サーバーへの HTTP トラフィックを許可する規則を追加します (または SSH アクセス、データベース接続など、独自のシナリオに合わせて調整します)。 次の例では、myNetworkSecurityGroupRule という名前の規則を作成して、ポート 80 での TCP トラフィックを許可します。

az network nsg rule create \
    --resource-group myResourceGroup \
    --nsg-name myNetworkSecurityGroup \
    --name myNetworkSecurityGroupRule \
    --protocol tcp \
    --priority 1000 \
    --destination-port-range 80

ネットワーク セキュリティ グループを VM に適用する

az network nic updateを使用して、ネットワーク セキュリティ グループと仮想マシンのネットワーク インターフェイス (NIC) を関連付けます。 次の例では、myNic という名前の既存の NIC を myNetworkSecurityGroup という名前のネットワーク セキュリティ グループに関連付けます。

az network nic update \
    --resource-group myResourceGroup \
    --name myNic \
    --network-security-group myNetworkSecurityGroup

また、ネットワーク セキュリティ グループは、単一の VM のネットワーク インターフェイスに関連付けるのではなく、az network vnet subnet update を使用して、仮想ネットワークのサブネットに関連付けることもできます。 次の例では、myVnet 仮想ネットワーク内の mySubnet という名前の既存のサブネットを myNetworkSecurityGroup という名前のネットワーク セキュリティ グループに関連付けます。

az network vnet subnet update \
    --resource-group myResourceGroup \
    --vnet-name myVnet \
    --name mySubnet \
    --network-security-group myNetworkSecurityGroup

ネットワーク セキュリティ グループの詳細

このページのクイック コマンドでは、VM にフローするトラフィックの開始と実行を行うことができます。 ネットワーク セキュリティ グループには優れた機能が多数用意されており、リソースへのアクセスをきめ細かく制御できます。 詳細については、 ネットワーク セキュリティ グループと ACL 規則の作成に関するページをご覧ください。

高可用性 Web アプリケーション用に、Azure Load Balancer の背後に VM を配置する必要があります。 ロード バランサーは、トラフィックをフィルターできるネットワーク セキュリティ グループとともに、VM のトラフィックを分散します。 詳細については、Azure の Linux 仮想マシンを負荷分散して高可用性アプリケーションを作成する方法に関するページをご覧ください。

次のステップ

この例では、HTTP トラフィックを許可する単純な規則を作成します。 より精密な環境の作成については、次の記事で確認できます。