この記事では、既存の仮想マシン (VM) にパブリック IP アドレスを関連付ける方法について説明します。 これを行うには、VM にアタッチされているネットワーク インターフェイスの IP 構成にパブリック IP アドレスを関連付けます。 使用する方法のタブを選択することで、Azure portal、Azure CLI、または Azure PowerShell を使用できます。
代わりにパブリック IP アドレスを備えた新しい VM を作成する場合は、Azure portal、Azure CLI、または Azure PowerShell を使用できます。
パブリック IP アドレスには、わずかな料金がかかります。 詳細については、価格のページを参照してください。 サブスクリプションごとに使用できるパブリック IP アドレスの数には制限があります。 詳しくは、制限に関する記事をご覧ください。
注
パブリック IP アドレスが割り当てられていないか、内部の Basic Azure Load Balancer のバックエンド プールにある VM に対しては、Azure によって既定の送信アクセス IP が提供されます。 デフォルト送信アクセス IP メカニズムは、構成できないアウトバウンド IP アドレスを提供します。
次のいずれかのイベントが発生すると、既定のアウトバウンド アクセス IP は無効になります:
- パブリック IP アドレスが VM に割り当てられます。
- アウトバウンド規則の有無にかかわらず、VM は標準ロード バランサーのバックエンド プール内に配置されます。
- Azure NAT Gateway リソースが VM のサブネットに割り当てられている。
フレキシブル オーケストレーション モードの仮想マシン スケール セットによって作成された VM には、既定のアウトバウンド アクセスがありません。
Azure のアウトバウンド接続の詳細については、「Azure での既定の送信アクセス」および「送信接続での送信元ネットワーク アドレス変換 (SNAT)を使用する」を参照してください。
前提条件
Azure portal にサインインします。
ポータルで、パブリック IP アドレスを追加する VM を検索して選択します。
左ペインの [設定] の下にある [ネットワーク] を選択して、パブリック IP アドレスを追加するネットワーク インターフェイスを選択します。
注
パブリック IP アドレスは、VM にアタッチされたネットワーク インターフェイスに関連付けられます。 このスクリーンショットでは、VM にネットワーク インターフェイスが 1 つだけあります。 VM に複数のネットワーク インターフェイスがある場合は、それらすべてが表示され、パブリック IP アドレスを関連付けるネットワーク インターフェイスを選択します。
[ネットワーク インターフェイス] ウィンドウの [設定] で、[IP 構成]* を選択し、一覧から IP 構成を選択します。
注
パブリック IP アドレスは、ネットワーク インターフェイスの IP 構成に関連付けられます。 このスクリーンショットでは、ネットワーク インターフェイスには IP 構成が 1 つだけあります。 ネットワーク インターフェイスに複数の IP 構成がある場合は、それらすべてが表示され、パブリック IP アドレスを関連付ける IP 構成を選択します。
[IP 構成の編集] ウィンドウで、[パブリック IP アドレスを関連付ける] を選択し、[パブリック IP アドレス] を選択して、ドロップダウン リストから既存のパブリック IP アドレスを選択します。 パブリック IP アドレスが表示されない場合は、1 つ作成する必要があります。 方法については、「パブリック IP アドレスの作成」をご覧ください。
注
ドロップダウン リストに表示されるパブリック IP アドレスは、VM と同じリージョン内に存在するものです。 リージョン内に複数のパブリック IP アドレスが作成されている場合は、ここにすべて表示されます。 別のリソースに既に関連付けられているアドレスはすべて淡色表示されます。
[保存] を選択します。
[IP 構成] ウィンドウで、IP 構成に割り当てられているパブリック IP アドレスを表示します。 新規に関連付けられた IP アドレスが表示されるまでに、数秒かかる場合があります。
ネットワーク セキュリティ グループのセキュリティ規則を調整して、セキュリティ グループで必要なポートを開きます。 詳細については、「VM へのネットワーク トラフィックを許可する」を参照してください。
コンピューターに Azure CLI をインストールするか、Azure Cloud Shell を使用します。 Cloud Shell は、Azure portal 内で直接実行できる無料の Bash シェルです。 これには事前にインストールされた Azure CLI が含まれ、Azure アカウントで使用できるように構成されています。 次の Azure CLI コード例で [Open Cloudshell] (Cloudshell を開く) ボタンを選択します。 [Open Cloudshell] (Cloudshell を開く) を選択すると、ブラウザーに Cloud Shell が読み込まれて、Azure アカウントにサインインするように求められます。
Bash でローカルに Azure CLI を使用している場合は、az login
を使って Azure にサインインします。
az network nic-ip-config update コマンドを使用して、IP 構成にパブリック IP アドレスを関連付けます。 次の例では、myPublicIP という名前の既存のパブリック IP アドレスを ipconfig1 という名前の IP 構成に関連付けます。 この IP 構成は、myResourceGroup という名前のリソース グループ内の myVMNic という名前の既存のネットワーク インターフェイスに属します。
az network nic ip-config update \
--name ipconfig1 \
--nic-name myVMNic \
--resource-group myResourceGroup \
--public-ip-address myPublicIP
既存のパブリック IP アドレスがない場合は、az network public-ip create コマンドを使用して作成します。 たとえば、次のコマンドでは、myResourceGroup というリソース グループに、myPublicIP という名前のパブリック IP アドレスを作成します。
az network public-ip create --name myPublicIP --resource-group myResourceGroup
注
このコマンドでは、カスタマイズ可能ないくつかの設定には既定値を使用して、パブリック IP アドレスを作成しています。 すべてのパブリック IP アドレス設定について詳しくは、「パブリック IP アドレスの作成」をご覧ください。 IP アドレスは、Azure リージョン用に予約されたパブリック IP アドレスのプールから割り当てられます。 各リージョン内で使用されるアドレス プールの一覧については、Azure の IP 範囲とサービス タグに関するページをご覧ください。 特定のプレフィックスからアドレスが割り当てられる必要がある場合は、パブリック IP アドレスのプレフィックスを使用してください。
VM に接続されているネットワーク インターフェイスの名前がわからない場合は、az vm nic list コマンドを使用して表示します。 たとえば、次のコマンドは、myResourceGroup というリソース グループ内の myVM という VM にアタッチされているネットワーク インターフェイスを一覧表示します。
az vm nic list --vm-name myVM --resource-group myResourceGroup
出力には、次の例のような 1 行以上の行が含まれます。ここで、myVMNic はネットワーク インターフェイスの名前です。
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic",
ネットワーク インターフェイスの IP 構成の名前がわからない場合は、az network nic ip-config list コマンドを使用して取得します。 たとえば、次のコマンドは、myResourceGroup というリソース グループ内の myVMNic というネットワーク インターフェイスに対応する IP 構成の名前を一覧表示します:
az network nic ip-config list --nic-name myVMNic --resource-group myResourceGroup --out table
az vm list-ip-addresses コマンドを使って、IP 構成に割り当てられているパブリック IP アドレスを表示します。 次の例は、myResourceGroup というリソース グループ内の myVM という既存の VM に割り当てられている IP アドレスを表示します。
az vm list-ip-addresses --name myVM --resource-group myResourceGroup --out table
受信セキュリティ規則を調整することで、ネットワーク セキュリティ グループで必要なポートを開きます。 詳細については、「VM へのネットワーク トラフィックを許可する」を参照してください。
コンピューターに Azure PowerShell をインストールするか、Cloud Shell を使用します。 Cloud Shell は、Azure portal 内で直接実行できる無料の Bash シェルです。 これには事前にインストールされた Azure PowerShell が含まれ、Azure アカウントで使用できるように構成されています。 次の Azure PowerShell コード例で [Open Cloudshell] (Cloudshell を開く) ボタンを選択します。 [Open Cloudshell] (Cloudshell を開く) を選択すると、ブラウザーに Cloud Shell が読み込まれて、Azure アカウントにサインインするように求められます。
Azure PowerShell をローカルで使用している場合は、Connect-AzAccount
を使って Azure にサインインします。
Get-AzVirtualNetwork コマンドを使用して、リソース グループ内の仮想ネットワークを取得します。 次に、Get-AzVirtualNetworkSubnetConfig コマンドを使用して、仮想ネットワーク内のサブネット構成を取得します。
Get-AzNetworkInterface コマンドを使用して、リソース グループ内のネットワーク インターフェイスを取得します。 次に、Get-AzPublicIpAddress コマンドを使用して、リソース グループ内の既存のパブリック IP アドレスを取得します。
Set-AzNetworkInterfaceIpConfig コマンドを使用して、IP 構成にパブリック IP アドレスを関連付けます。 次に、Set-AzNetworkInterface コマンドを使用して、新しい IP 構成をネットワーク インターフェイスに書き込みます。
次の例では、myPublicIP という名前の既存のパブリック IP アドレスを ipconfig1 という名前の IP 構成に関連付けます。 この IP 構成は、myVNet という仮想ネットワーク内の mySubnet というサブネットに存在する myVMNic という既存のネットワーク インターフェイスに属しています。 すべてのリソースは、myResourceGroup というリソース グループ内にあります。
$vnet = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup
$subnet = Get-AzVirtualNetworkSubnetConfig -Name mySubnet -VirtualNetwork $vnet
$nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroupName myResourceGroup
$pip = Get-AzPublicIpAddress -Name myPublicIP -ResourceGroupName myResourceGroup
$nic | Set-AzNetworkInterfaceIpConfig -Name ipconfig1 -PublicIPAddress $pip -Subnet $subnet
$nic | Set-AzNetworkInterface
既存のパブリック IP アドレスがない場合は、New-AzPublicIpAddress コマンドを使用して作成します。 たとえば、次のコマンドでは、eastus リージョンにある myResourceGroup というリソース グループに、myPublicIP という名前の dynamic パブリック IP アドレスを作成します。
New-AzPublicIpAddress -Name myPublicIP -ResourceGroupName myResourceGroup -AllocationMethod Dynamic -Location eastus
注
このコマンドでは、カスタマイズ可能ないくつかの設定には既定値を使用して、パブリック IP アドレスを作成しています。 すべてのパブリック IP アドレス設定について詳しくは、「パブリック IP アドレスの作成」をご覧ください。 IP アドレスは、Azure リージョン用に予約されたパブリック IP アドレスのプールから割り当てられます。 各リージョン内で使用されるアドレス プールの一覧については、Azure の IP 範囲とサービス タグに関するページをご覧ください。 特定のプレフィックスからアドレスが割り当てられる必要がある場合は、パブリック IP アドレスのプレフィックスを使用してください。
VM に接続されているネットワーク インターフェイスの名前とプロパティがわからない場合は、Get-AzVM コマンドを使用して表示します。 たとえば、次のコマンドは、myResourceGroup というリソース グループ内の myVM という VM にアタッチされているネットワーク インターフェイスを一覧表示します:
$vm = Get-AzVM -name myVM -ResourceGroupName myResourceGroup
$vm.NetworkProfile
出力には、次の例とよく似た行が 1 つ以上含まれます。 出力例では、myVMNic はネットワーク インターフェイスの名前です。
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic",
ネットワーク インターフェイスが存在する仮想ネットワークまたはサブネットの名前を取得するには、Get-AzNetworkInterface コマンドを使用します。 たとえば、次のコマンドは、myResourceGroup というリソース グループ内の myVMNic というネットワーク インターフェイスに対応する仮想ネットワークおよびサブネット情報を取得します:
$nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroupName myResourceGroup
$ipConfigs = $nic.IpConfigurations
$ipConfigs.Subnet | Select Id
出力には、次の例とよく似た行が 1 つ以上含まれます。 出力例では、myVNet は仮想ネットワークの名前、mySubnet はサブネットの名前です。
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet/subnets/mySubnet",
ネットワーク インターフェイスの IP 構成の名前を取得するには、Get-AzNetworkInterface コマンドを使用します。 たとえば、次のコマンドは、myResourceGroup というリソース グループ内の myVMNic というネットワーク インターフェイスに対応する IP 構成の名前を一覧表示します:
$nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroupName myResourceGroup
$nic.IPConfigurations
出力には、次の例とよく似た行が 1 つ以上含まれます。 出力例では、ipconfig1 が IP 構成の名前です。
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic/ipConfigurations/ipconfig1
Get-AzPublicIpAddress コマンドを使って、IP 構成に割り当てられているパブリック IP アドレスを表示します。 次の例では、myResourceGroup というリソース グループにある myPublicIP というパブリック IP アドレスに割り当てられたアドレスを取得します。
Get-AzPublicIpAddress -Name myPublicIP -ResourceGroupName myResourceGroup | Select IpAddress
IP 構成に割り当てられたパブリック IP アドレスの一覧については、次のコマンドを実行します:
$nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroupName myResourceGroup
$nic.IPConfigurations
$address = $nic.IPConfigurations.PublicIpAddress
$address | Select Id
出力には、次の例とよく似た行が 1 つ以上含まれます。 出力例では、myPublicIP が IP 構成に割り当てられているパブリック IP アドレスの名前です。
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIP"
受信セキュリティ規則を調整することで、ネットワーク セキュリティ グループで必要なポートを開きます。 詳細については、「VM へのネットワーク トラフィックを許可する」を参照してください。
注
VM を外部ユーザーと共有するには、VM にパブリック IP アドレスを追加する必要があります。 または、外部ユーザーは Azure Bastion 経由で VM のプライベート IP アドレスに接続できます。
VM へのネットワーク トラフィックを許可する
インターネットからパブリック IP アドレスに接続するには、ネットワーク セキュリティ グループで必要なポート/プロトコルを開く必要があります。 これらのポートは、ネットワーク インターフェイス、ネットワーク インターフェイスのサブネット、またはその両方に関連付けられているネットワーク セキュリティ グループで開く必要があります。 ネットワーク セキュリティ グループは、ネットワーク インターフェイスのプライベート IP アドレスへのトラフィックをフィルターにかけますが、受信したインターネット トラフィックがパブリック IP アドレスに到達すると、Azure がパブリック アドレスをプライベート IP アドレスに変換します。 そのため、ネットワーク セキュリティ グループによってトラフィック フローが妨げられると、パブリック IP アドレスによる通信は失敗します。
Azure portal、Azure CLI、または Azure PowerShell のネットワーク インターフェイスとそのサブネットに対する有効なセキュリティ規則を確認できます。
制限
- 新しいパブリック IP アドレスが VM に追加され、トラフィックを新しい IP アドレスに切り替える必要がある場合、既存のフローがすべてリセットされるため、VM を再起動する必要があります。
次のステップ
この記事では、Azure portal、Azure CLI、Azure PowerShell のいずれかを使用して、パブリック IP アドレスを VM に関連付ける方法について説明しました。