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

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

パブリック IP アドレスを VM に関連付けるには、Azure portal、Azure コマンド ライン インターフェイス (CLI)、または PowerShell を使用できます。

注意

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

既定の送信アクセスの詳細については、「Azure での既定の送信アクセス」を参照してください。

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

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

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

Azure portal

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

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

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

    ネットワーク インターフェイスを選択する

    注意

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

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

    IP 構成を選択する

    注意

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

  5. [有効] を選択して、 [IP アドレス] (" [必要な設定の構成] ") を選択します。 既存のパブリック IP アドレスを選択します。 [パブリック IP アドレスの選択] ボックスは自動的に閉じられます。 使用可能なパブリック IP アドレスが一覧に何も表示されない場合は、作成する必要があります。 方法については、「パブリック IP アドレスの作成」をご覧ください。 以下の画像に示すように、 [保存] を選択してから、IP 構成のボックスを閉じます。

    パブリック IP アドレスを有効にする

    注意

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

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

    割り当てられているパブリック IP アドレスを表示する

    注意

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

  7. ネットワーク セキュリティ グループにおけるセキュリティ規則を利用して、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 アドレスを関連付けます。 次の例では、myVMPublicIP という既存のパブリック IP アドレスを、myResourceGroup というリソース グループ内に存在する myVMVMNic という既存のネットワーク インターフェイスの ipconfigmyVM という名前の IP 構成に関連付けています。

    az network nic ip-config update \
      --name ipconfigmyVM \
      --nic-name myVMVMNic \
      --resource-group myResourceGroup \
      --public-ip-address myVMPublicIP
    
    • 既存のパブリック IP アドレスがない場合は、az network public-ip create コマンドを使用して作成します。 たとえば、次のコマンドでは、myResourceGroup というリソース グループに、myVMPublicIP という名前のパブリック IP アドレスを作成します。

      az network public-ip create --name myVMPublicIP --resource-group myResourceGroup
      

      注意

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

      上記の例では、myVMVMNic がネットワーク インターフェイスの名前です。

    • ネットワーク インターフェイスの IP 構成の名前がわからない場合は、az network nic ip-config list コマンドを使用して取得します。 たとえば、次のコマンドは、myResourceGroup というリソース グループ内の myVMVMNic というネットワーク インターフェイスに対応する IP 構成の名前を一覧表示します。

      az network nic ip-config list --nic-name myVMVMNic --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
    

    注意

    アドレスは、各 Azure リージョン内で使用されるアドレスのプールから割り当てられます。 各リージョン内で使用されるアドレス プールの一覧を表示するには、Microsoft 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 構成を書き込みます。

    次の例では、myVMPublicIP という既存のパブリック IP アドレスを、myVMVNet という仮想ネットワーク内の myVMSubnet というサブネットに存在する myVMVMNic という既存のネットワーク インターフェイスの ipconfigmyVM という名前の IP 構成に関連付けています。 すべてのリソースは、myResourceGroup というリソース グループ内にあります。

    $vnet = Get-AzVirtualNetwork -Name myVMVNet -ResourceGroupName myResourceGroup
    $subnet = Get-AzVirtualNetworkSubnetConfig -Name myVMSubnet -VirtualNetwork $vnet
    $nic = Get-AzNetworkInterface -Name myVMVMNic -ResourceGroupName myResourceGroup
    $pip = Get-AzPublicIpAddress -Name myVMPublicIP -ResourceGroupName myResourceGroup
    $nic | Set-AzNetworkInterfaceIpConfig -Name ipconfigmyVM -PublicIPAddress $pip -Subnet $subnet
    $nic | Set-AzNetworkInterface
    
    • 既存のパブリック IP アドレスがない場合は、New-AzPublicIpAddress コマンドを使用して作成します。 たとえば、次のコマンドでは、eastus リージョンにある myResourceGroup というリソース グループに、myVMPublicIP という名前の dynamic パブリック IP アドレスを作成します。

      New-AzPublicIpAddress -Name myVMPublicIP -ResourceGroupName myResourceGroup -AllocationMethod Dynamic -Location eastus
      

      注意

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

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

      $vm = Get-AzVM -name myVM -ResourceGroupName myResourceGroup
      $vm.NetworkProfile
      

      出力には、次の例とよく似た行が 1 つ以上含まれます。 出力例では、myVMVMNic はネットワーク インターフェイスの名前です。

      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMVMNic",
      
    • ネットワーク インターフェイスが存在する仮想ネットワークの名前またはサブネットがわからない場合は、Get-AzNetworkInterface コマンドを使用して情報を表示します。 たとえば、次のコマンドは、myResourceGroup というリソース グループ内の myVMVMNic というネットワーク インターフェイスに対応する仮想ネットワークおよびサブネット情報を取得します。

      $nic = Get-AzNetworkInterface -Name myVMVMNic -ResourceGroupName myResourceGroup
      $ipConfigs = $nic.IpConfigurations
      $ipConfigs.Subnet | Select Id
      

      出力には、次の例とよく似た行が 1 つ以上含まれます。 出力例では、 myVMVNET は仮想ネットワークの名前であり、myVMSubnet はサブネットの名前です。

      "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVMVNET/subnets/myVMSubnet",
      
    • ネットワーク インターフェイスの IP 構成の名前がわからない場合は、Get-AzNetworkInterface コマンドを使用して取得します。 たとえば、次のコマンドは、myResourceGroup というリソース グループ内の myVMVMNic というネットワーク インターフェイスに対応する IP 構成の名前を一覧表示します。

      $nic = Get-AzNetworkInterface -Name myVMVMNic -ResourceGroupName myResourceGroup
      $nic.IPConfigurations
      

      出力には、次の例とよく似た行が 1 つ以上含まれます。 出力例では、ipconfigmyVM が IP 構成の名前です。

      Id     : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMVMNic/ipConfigurations/ipconfigmyVM
      
  3. Get-AzPublicIpAddress コマンドを使って、IP 構成に割り当てられているパブリック IP アドレスを表示します。 次の例では、myResourceGroup というリソース グループにある myVMPublicIP というパブリック IP アドレスに割り当てられたアドレスを示しています。

    Get-AzPublicIpAddress -Name myVMPublicIP -ResourceGroupName myResourceGroup | Select IpAddress
    

    IP 構成に割り当てられているパブリック IP アドレスの名前がわからない場合は、次のコマンドを実行して取得します。

    $nic = Get-AzNetworkInterface -Name myVMVMNic -ResourceGroupName myResourceGroup
    $nic.IPConfigurations
    $address = $nic.IPConfigurations.PublicIpAddress
    $address | Select Id
    

    出力には、次の例とよく似た行が 1 つ以上含まれます。 出力例では、myVMPublicIP が IP 構成に割り当てられているパブリック IP アドレスの名前です。

    "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myVMPublicIP"
    

    注意

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

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

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

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

次のステップ

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