仮想マシンへのパブリック IP アドレスの関連付け

この記事では、既存の仮想マシン (VM) にパブリック IP アドレスを関連付ける方法について説明します。 パブリック IP アドレスを備えた新しい VM を作成する場合は、Azure portalAzure CLI、または Azure PowerShell を使用して行うことができます。 パブリック IP アドレスには、わずかな費用がかかります。 詳細については、価格のページを参照してください。 サブスクリプションごとに使用できるパブリック IP アドレスの数には制限があります。 詳しくは、制限に関する記事をご覧ください。

パブリック IP アドレスを VM に関連付けるには、Azure portalAzure CLI、または Azure PowerShell を使用できます。

Note

パブリック IP アドレスが割り当てられていないか、内部の Basic Azure Load Balancer のバックエンド プールにある VM に対しては、Azure によってデフォルト送信アクセス IP が提供されます。 デフォルト送信アクセス IP メカニズムは、構成できないアウトバウンド IP アドレスを提供します。

パブリック IP アドレスが VM に割り当てられている場合、アウトバウンド規則の有無にかかわらず VM が Standard Load Balancer のバックエンド プールに配置されている場合、または VM のサブネットに Azure Virtual Network NAT ゲートウェイ リソースが割り当てられている場合、既定の送信アクセス IP は無効になります。

フレキシブル オーケストレーション モードの仮想マシン スケール セットによって作成された VM には、既定の送信アクセスがありません。

Azureのアウトバウンド接続の詳細については、「Azure での既定の送信アクセス」および「送信接続での送信元ネットワーク アドレス変換 (SNAT)を使用する」を参照してください。

Azure portal

  1. Azure portal にサインインします。

  2. パブリック IP アドレスを追加する仮想マシンを参照または検索して、選択します。

  3. 以下の画像に示すように、 [設定] 下にある [ネットワーク] を選択して、パブリック IP アドレスを追加するネットワーク インターフェイスを選択します。

    仮想マシンのネットワーク インターフェイスを選択する方法を示すスクリーンショット。

    Note

    パブリック IP アドレスは、VM にアタッチされたネットワーク インターフェイスに関連付けられます。 上記の画像では、VM には 1 つのネットワーク インターフェイスしかありません。 VM に複数のネットワーク インターフェイスがある場合は、それらすべてが表示され、パブリック IP アドレスを関連付けるネットワーク インターフェイスを選択します。

  4. 以下の画像に示すように、 [IP 構成] を選択してから、1 つの IP 構成を選択します。

    ネットワーク インターフェイスの I P 構成を選択する方法を示すスクリーンショット。

    Note

    パブリック IP アドレスは、ネットワーク インターフェイスに対応する IP 構成に関連付けられます。 上記の画像では、ネットワーク インターフェイスに IP 構成が 1 つしかありません。 ネットワーク インターフェイスに複数の IP 構成がある場合は、それらすべてが表示され、パブリック IP アドレスを関連付ける IP 構成を選択します。

  5. [関連付け] を選択したら、[パブリック IP アドレスの選択] を選択して既存のパブリック IP アドレスを選択します。 使用可能なパブリック IP アドレスが一覧に何も表示されない場合は、作成する必要があります。 方法については、「パブリック IP アドレスの作成」をご覧ください。

    既存のパブリック I P を選択して関連付ける方法を示すスクリーンショット。

  6. 以下の画像に示すように、 [保存] を選択してから、IP 構成のボックスを閉じます。

    選択したパブリック I P を示すスクリーンショット。

    Note

    表示されるパブリック IP アドレスは、VM と同じリージョン内に存在するものです。 リージョン内に複数のパブリック IP アドレスが作成されている場合は、ここにすべて表示されます。 灰色表示されているものは、アドレスが既に別のリソースに関連付けられているためです。

  7. 次の画像に示すように、IP 構成に割り当てられているパブリック IP アドレスを表示します。 IP アドレスが表示されるまでに、数秒かかる場合があります。

    新しく割り当てたパブリック I P を示すスクリーンショット。

    Note

    アドレスは、各 Azure リージョン内で使用されるアドレスのプールから割り当てられます。 各リージョン内で使用されるアドレス プールの一覧を表示するには、Azure の IP 範囲とサービス タグに関するページをご覧ください。 割り当てられるアドレスには、リージョンに使用されているプール内の任意のアドレスを指定できます。 リージョン内の特定のプールからアドレスが割り当てられる必要がある場合は、パブリック IP アドレスのプレフィックスを使用してください。

  8. ネットワーク セキュリティ グループにおけるセキュリティ規則を利用して、VM へのネットワーク トラフィックを許可します。

Azure CLI

Azure CLI をインストールするか、または Azure Cloud Shell を使用します。 Azure Cloud Shell は、Azure Portal 内で直接実行できる無料の Bash シェルです。 Azure CLI が事前にインストールされており、アカウントで使用できるように構成されています。 次の CLI コマンドの [使ってみる] ボタンを選択します。 [使ってみる] を選択すると Cloud Shell が起動され、お使いの Azure アカウントにサインインできます。

  1. Bash でローカルに CLI を使用している場合は、az login を使って Azure にサインインします。

  2. パブリック IP アドレスが、VM にアタッチされているネットワーク インターフェイスの IP 構成に関連付けられます。 az network nic-ip-config update コマンドを使用して、IP 構成にパブリック IP アドレスを関連付けます。 次の例では、myPublicIP という既存のパブリック IP アドレスを、myResourceGroup というリソース グループ内に存在する myVMNic という既存のネットワーク インターフェイスの ipconfig1 という名前の IP 構成に関連付けています。

    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
      

      Note

      上記のコマンドでは、カスタマイズ可能ないくつかの設定には既定値を使用して、パブリック IP アドレスを作成しています。 すべてのパブリック IP アドレス設定について詳しくは、「パブリック IP アドレスの作成」をご覧ください。 アドレスは、各 Azure リージョンに使用されるパブリック IP アドレスのプールから割り当てられます。 各リージョン内で使用されるアドレス プールの一覧を表示するには、Azure の IP 範囲とサービス タグに関するページをご覧ください。

    • VM にアタッチされているネットワーク インターフェイスの名前がわからない場合は、az vm nic list コマンドを使用して表示します。 たとえば、次のコマンドは、myResourceGroup というリソース グループ内の myVM という VM にアタッチされているネットワーク インターフェイスの名前を一覧表示します。

      az vm nic list --vm-name myVM --resource-group myResourceGroup
      

      出力には、次の例とよく似た 1 つ以上の行が含まれます。

      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic",
      

      上記の例では、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
      
  3. az vm list-ip-addresses コマンドを使って、IP 構成に割り当てられているパブリック IP アドレスを表示します。 次の例は、myResourceGroup というリソース グループ内の myVM という既存の VM に割り当てられている IP アドレスを表示します。

    az vm list-ip-addresses --name myVM --resource-group myResourceGroup --out table
    

    Note

    アドレスは、各 Azure リージョン内で使用されるアドレスのプールから割り当てられます。 各リージョン内で使用されるアドレス プールの一覧を表示するには、Azure の IP 範囲とサービス タグに関するページをご覧ください。 割り当てられるアドレスには、リージョンに使用されているプール内の任意のアドレスを指定できます。 リージョン内の特定のプールからアドレスが割り当てられる必要がある場合は、パブリック IP アドレスのプレフィックスを使用してください。

  4. ネットワーク セキュリティ グループにおけるセキュリティ規則を利用して、VM へのネットワーク トラフィックを許可します。

PowerShell

PowerShell をインストールするか、または Azure Cloud Shell を使用します。 Azure Cloud Shell は、Azure Portal 内で直接実行できる無料のシェルです。 PowerShell が事前にインストールされており、アカウントで使用できるように構成されています。 次の PowerShell コマンドの [使ってみる] ボタンを選択します。 [使ってみる] を選択すると Cloud Shell が起動され、お使いの Azure アカウントにサインインできます。

  1. PowerShell をローカルで使用している場合は、Connect-AzAccount を使って Azure にサインインします。

  2. パブリック IP アドレスが、VM にアタッチされているネットワーク インターフェイスの IP 構成に関連付けられます。 Get-AzVirtualNetwork および Get-AzVirtualNetworkSubnetConfig コマンドを使用して、そのネットワーク インターフェイスが属する仮想ネットワークとサブネットを取得します。 次に、Get-AzNetworkInterface コマンドを使用してネットワーク インターフェイスを取得し、Get-AzPublicIpAddress コマンドを使用して既存のパブリック IP アドレスを取得します。 その後、Set-AzNetworkInterfaceIpConfig コマンドを使用してパブリック IP アドレスを IP 構成に関連付け、Set-AzNetworkInterface コマンドを使用してネットワーク インターフェイスへの新しい IP 構成を書き込みます。

    次の例では、myPublicIP という既存のパブリック IP アドレスを、myVNet という仮想ネットワーク内の mySubnet というサブネットに存在する myVMNic という既存のネットワーク インターフェイスの ipconfig1 という名前の IP 構成に関連付けています。 すべてのリソースは、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
      

      Note

      上記のコマンドでは、カスタマイズ可能ないくつかの設定には既定値を使用して、パブリック IP アドレスを作成しています。 すべてのパブリック IP アドレス設定について詳しくは、「パブリック IP アドレスの作成」をご覧ください。 アドレスは、各 Azure リージョンに使用されるパブリック IP アドレスのプールから割り当てられます。 各リージョン内で使用されるアドレス プールの一覧を表示するには、Azure の 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
      
  3. 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"
    

    Note

    アドレスは、各 Azure リージョン内で使用されるアドレスのプールから割り当てられます。 各リージョン内で使用されるアドレス プールの一覧を表示するには、Azure の IP 範囲とサービス タグに関するページをご覧ください。 割り当てられるアドレスには、リージョンに使用されているプール内の任意のアドレスを指定できます。 リージョン内の特定のプールからアドレスが割り当てられる必要がある場合は、パブリック IP アドレスのプレフィックスを使用してください。

  4. ネットワーク セキュリティ グループにおけるセキュリティ規則を利用して、VM へのネットワーク トラフィックを許可します。

VM へのネットワーク トラフィックを許可する

インターネットからパブリック IP アドレスに接続するには、事前に、ネットワーク インターフェイスまたはそのネットワーク インターフェイスが存在しているサブネット、あるいはその両方に関連付けたはずのネットワーク セキュリティ グループにおいて、必要なポートが開かれていることを確認してください。 セキュリティ グループでは、ネットワーク インターフェイスのプライベート IP アドレスへのトラフィックをフィルター処理しますが、受信したインターネット トラフィックがパブリック IP アドレスに到達すると、Azure によってパブリック アドレスがプライベート IP アドレスに変換されます。そのため、ネットワーク セキュリティ グループによってトラフィック フローが妨げられると、パブリック IP アドレスによる通信は失敗します。 ポータルCLI、または PowerShell を使用して、ネットワーク インターフェイスとそのサブネットに対する有効なセキュリティ規則を確認できます。

次のステップ

この記事では、Azure portal、Azure CLI、Azure PowerShell のいずれかを使用して、パブリック IP アドレスを VM に関連付ける方法について説明しました。

VM への受信インターネット トラフィックを許可するには、ネットワーク セキュリティ グループを利用します。 ネットワーク セキュリティ グループを作成する方法については、ネットワーク セキュリティ グループの操作に関するページをご覧ください。