クイックスタート: Azure PowerShell を使用した NAT ゲートウェイの作成

このクイックスタートでは、PowerShell を使用して NAT ゲートウェイを作成する方法について説明します。 NAT Gateway サービスは、Azure 内の仮想マシンに送信接続を提供します。

NAT Gateway のクイックスタートで作成されたリソースの図。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます

  • Azure Cloud Shell または Azure PowerShell。

    このクイックスタートの手順では、Azure Cloud Shell で Azure PowerShell コマンドレットを対話型で実行します。 Cloud Shell でコマンドを実行するには、コード ブロックの右上隅にある [Cloudshell を開く] を選択します。 [コピー] を選択してコードをコピーし、続いて Cloud Shell に貼り付けて実行します。 Azure portal 内から Cloud Shell を実行することもできます。

    また、Azure PowerShell をローカルにインストールしてコマンドレットを実行することもできます。 この記事の手順では、バージョン 5.4.1 以降の Azure PowerShell モジュールが必要です。 Get-Module -ListAvailable Az を実行して、インストールされているバージョンを見つけます。 アップグレードする必要がある場合は、Azure PowerShell モジュールの更新を参照してください。

リソース グループを作成する

New-AzResourceGroup を使用して Azure リソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。

次の例では、test-rg という名前のリソース グループを eastus2 の場所に作成します。

$rsg = @{
    Name = 'test-rg'
    Location = 'eastus2'
}
New-AzResourceGroup @rsg

NAT ゲートウェイの作成

このセクションでは、NAT ゲートウェイとサポート リソースを作成します。

  • インターネットにアクセスするには、NAT ゲートウェイに 1 つ以上のパブリック IP アドレスが必要です。 New-AzPublicIpAddress を使用して、test-rgpublic-ip-nat というパブリック IP アドレス リソースを作成します。

  • New-AzNatGateway を使用して、グローバル Azure NAT ゲートウェイを作成します。 このコマンドの結果、パブリック IP アドレス public-ip-nat を使用する nat-gateway という名前のゲートウェイ リソースが作成されます。 アイドル タイムアウトは 10 分に設定されています。

  • New-AzVirtualNetworkSubnetConfig を使用した subnet-1 という名前のサブネットを持つ vnet-1 という名前の仮想ネットワークを、New-AzVirtualNetwork を使用して test-rg 内に作成します。 この仮想ネットワークの IP アドレス空間は 10.0.0.0/16 です。 この仮想ネットワーク内のサブネットは 10.0.0.0/24 です。

  • 仮想マシンにアクセスするための bastion という名前の Azure Bastion ホストを作成します。 New-AzBastion を使用して、bastion ホストを作成します。 New-AzPublicIpAddress を使用して、bastion ホストのパブリック IP アドレスを作成します。

## Create public IP address for NAT gateway ##
$ip = @{
    Name = 'public-ip-nat'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
    Zone = 1,2,3
}
$publicIP = New-AzPublicIpAddress @ip

## Create NAT gateway resource ##
$nat = @{
    ResourceGroupName = 'test-rg'
    Name = 'nat-gateway'
    IdleTimeoutInMinutes = '10'
    Sku = 'Standard'
    Location = 'eastus2'
    PublicIpAddress = $publicIP
}
$natGateway = New-AzNatGateway @nat

## Create subnet config and associate NAT gateway to subnet##
$subnet = @{
    Name = 'subnet-1'
    AddressPrefix = '10.0.0.0/24'
    NatGateway = $natGateway
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet 

## Create Azure Bastion subnet. ##
$bastsubnet = @{
    Name = 'AzureBastionSubnet' 
    AddressPrefix = '10.0.1.0/26'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet

## Create the virtual network ##
$net = @{
    Name = 'vnet-1'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    AddressPrefix = '10.0.0.0/16'
    Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net

## Create public IP address for bastion host. ##
$ip = @{
    Name = 'public-ip'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
    Zone = 1,2,3
}
$publicip = New-AzPublicIpAddress @ip

## Create bastion host ##
$bastion = @{
    Name = 'bastion'
    ResourceGroupName = 'test-rg'
    PublicIpAddressRgName = 'test-rg'
    PublicIpAddressName = 'public-ip'
    VirtualNetworkRgName = 'test-rg'
    VirtualNetworkName = 'vnet-1'
    Sku = 'Basic'
}
New-AzBastion @bastion

bastion ホストのデプロイには数分かかる場合があります。 bastion ホストがデプロイされるまで待ってから、次のセクションに進みます。

仮想マシン

このセクションでは、NAT ゲートウェイをテストする仮想マシンを作成し、アウトバウンド接続のパブリック IP アドレスを確認します。

# Set the administrator and password for the VMs. ##
$cred = Get-Credential

## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'

## Create network interface for virtual machine. ##
$nic = @{
    Name = "nic-1"
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic

## Create a virtual machine configuration for VMs ##
$vmsz = @{
    VMName = 'vm-1'
    VMSize = 'Standard_DS1_v2'  
}
$vmos = @{
    ComputerName = 'vm-1'
    Credential = $cred
}
$vmimage = @{
    PublisherName = 'Canonical'
    Offer = '0001-com-ubuntu-server-jammy'
    Skus = '22_04-lts-gen2'
    Version = 'latest'     
}
$vmConfig = New-AzVMConfig @vmsz `
    | Set-AzVMOperatingSystem @vmos -Linux `
    | Set-AzVMSourceImage @vmimage `
    | Add-AzVMNetworkInterface -Id $nicVM.Id

## Create the virtual machine for VMs ##
$vm = @{
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    VM = $vmConfig
}
New-AzVM @vm

仮想マシンの作成が完了するのを待って次のセクションに進みます。

NAT ゲートウェイをテストする

このセクションで、NAT ゲートウェイをテストします。 まず、NAT ゲートウェイのパブリック IP を検出します。 次に、テスト仮想マシンに接続し、NAT ゲートウェイ経由のアウトバウンド接続を確認します。

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

  2. ポータルの上部にある検索ボックスに、「パブリック IP」と入力します。 検索結果から [パブリック IP アドレス] を選択します。

  3. public-ip-nat を選択します。

  4. パブリック IP アドレスを書き留めておきます。

    NAT ゲートウェイのパブリック IP アドレスを検出する

  5. ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。

  6. vm-1 を選択します。

  7. [概要] ページで、[接続] を選択し、[Bastion] タブを選択します。

  8. [Bastion を使用する] を選択します。

  9. VM 作成時に入力したユーザー名とパスワードを入力します。 [接続] を選択します。

  10. bash プロンプトで、次のコマンドを入力します。

    curl ifconfig.me
    
  11. コマンドが返す IP アドレスが NAT ゲートウェイのパブリック IP アドレスと一致することを確認します。

    azureuser@vm-1:~$ curl ifconfig.me
    20.7.200.36
    

リソースをクリーンアップする

今後このアプリケーションを使う予定がなければ、次の手順を使用して、仮想ネットワーク、仮想マシン、および NAT ゲートウェイを削除します。

Remove-AzResourceGroup -Name 'test-rg' -Force

次のステップ

Azure NAT Gateway について詳しくは、次を参照してください。