Azure PowerShell を使用して Bastion をデプロイする

この記事では、PowerShell を使用して Standard SKU で Azure Bastion をデプロイする方法について示します。 Azure Bastion は、お客様に代わって保守管理が行われる PaaS サービスであり、お客様が VM にご自分でインストールして保守管理する bastion ホストではありません。 Azure Bastion デプロイは、サブスクリプション/アカウントや仮想マシン単位ではなく、仮想ネットワーク単位です。 Azure Bastion の詳細については、「Azure Bastion とは」を参照してください。

Bastion を仮想ネットワークにデプロイすると、プライベート IP アドレスを使用して VM に接続できるようになります。 このシームレスな RDP/SSH エクスペリエンスは、同じ仮想ネットワーク内のすべての VM で使用できます。 VM のパブリック IP アドレスは、他の用途に必要でなければ削除してかまいません。

Diagram showing Azure Bastion architecture.

この記事では、PowerShell を使用して Azure Bastion をデプロイして VM に接続します。仮想ネットワークがまだない場合は作成します。 次の他の方法を使用して Bastion をデプロイすることもできます。

Note

Azure プライベート DNS ゾーンでは、Azure Bastion の使用がサポートされています。 ただし、制限があります。 詳細については、Azure Bastion の FAQ に関する記事を参照してください。

作業を開始する前に

Azure サブスクリプションを持っていることを確認します。 Azure サブスクリプションをまだお持ちでない場合は、MSDN サブスクライバーの特典を有効にするか、無料アカウントにサインアップしてください。

PowerShell

この記事では、PowerShell コマンドレットを使用します。 コマンドレットを実行するには、Azure Cloud Shell を使用できます。 Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。

Cloud Shell を開くには、コード ブロックの右上の隅にある [Cloudshell を開く] を選択するだけです。 https://shell.azure.com/powershell に移動して、別のブラウザー タブで Cloud Shell を開くこともできます。 [コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けてから、Enter キーを押して実行します。

Azure PowerShell コマンドレットは、ローカルのコンピューターにインストールして実行することもできます。 PowerShell コマンドレットは、頻繁に更新されます。 最新バージョンをインストールしていないと、手順で指定されている値は失敗する場合があります。 コンピューターにインストールされている Azure PowerShell のバージョンを確認するには、Get-Module -ListAvailable Az コマンドレットを使用します。 インストールまたは更新するには、「Install the Azure PowerShell module (Azure PowerShell モジュールのインストール)」を参照してください。

値の例

この構成を作成する際は、次の例の値を使用できます。また、独自の値に置き換えることもできます。

** 例の VNet 値と VM 値:**

名前 Value
仮想マシン TestVM
Resource group TestRG1
リージョン 米国東部
仮想ネットワーク VNet1
アドレス空間 10.1.0.0/16
サブネット FrontEnd: 10.1.0.0/24

Azure Bastion の値:

名前 Value
名前 VNet1-bastion
サブネット名 FrontEnd
サブネット名 AzureBastionSubnet
AzureBastionSubnet アドレス サブネット マスクが /26 以上の VNet アドレス空間内のサブネット。
例: 10.1.1.0/26。
価格レベルまたは SKU Standard
パブリック IP アドレス 新規作成
パブリック IP アドレス名 VNet1-ip
パブリック IP アドレスの SKU Standard
譲渡 Static

Bastion をデプロイする

このセクションでは、Azure PowerShell を使用して、仮想ネットワークとサブネットを作成し、Azure Bastion をデプロイする方法について説明します。

重要

時間単位の料金は、送信データの使用量に関係なく、Bastion がデプロイされた時点から発生します。 詳しくは、「価格」および「SKU」を参照してください。 チュートリアルまたはテストの一環で Bastion をデプロイする場合は、使用終了後に該当のリソースを削除することをお勧めします。

  1. Bastion 経由で接続する VM をデプロイするリソース グループ、仮想ネットワーク、フロントエンド サブネットを作成します。 PowerShell をローカルで実行している場合は、昇格された特権で PowerShell コンソールを開き、Connect-AzAccount コマンドを使用して Azure に接続します。

    New-AzResourceGroup -Name TestRG1 -Location EastUS ` 
    $frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name FrontEnd `
    -AddressPrefix "10.1.0.0/24" ` 
    $virtualNetwork = New-AzVirtualNetwork `
    -Name TestVNet1 -ResourceGroupName TestRG1 `
    -Location EastUS -AddressPrefix "10.1.0.0/16" `
    -Subnet $frontendSubnet ` 
    $virtualNetwork | Set-AzVirtualNetwork
    
  2. 仮想ネットワークの Azure Bastion サブネットを構成して設定します。 このサブネットは、Azure Bastion リソース専用に予約されています。 name 値に AzureBastionSubnet を使用して、このサブネットを作成する必要があります。 この値によって、Azure でリソースをデプロイするサブネットを把握できます。 以下のセクションの例は、既存の VNet に Azure Bastion サブネットを追加する場合に役立ちます。

    • 作成できる最小のサブネット AzureBastionSubnet サイズは /26 です。 ホストのスケーリングに対応するために、/26 以上のサイズを作成することをお勧めします。
    • ルート テーブルまたは委任なしで AzureBastionSubnet を作成します。
    • AzureBastionSubnet でネットワーク セキュリティ グループを使用する場合、NSG の使用に関する記事を参照してください。

    変数を設定します。

    $vnet = Get-AzVirtualNetwork -Name "TestVNet1" -ResourceGroupName "TestRG1"
    

    サブネットを追加します。

    Add-AzVirtualNetworkSubnetConfig `
    -Name "AzureBastionSubnet" -VirtualNetwork $vnet `
    -AddressPrefix "10.1.1.0/26" | Set-AzVirtualNetwork
    
  3. Azure Bastion のパブリック IP アドレスを作成します。 このパブリック IP は RDP/SSH が (ポート 443 経由で) アクセスされる Bastion リソースのパブリック IP アドレスです。 パブリック IP アドレスは、作成している Bastion リソースと同じリージョン内にある必要があります。

    $publicip = New-AzPublicIpAddress -ResourceGroupName "TestRG1" `
    -name "VNet1-ip" -location "EastUS" `
    -AllocationMethod Static -Sku Standard
    
  4. New-AzBastion コマンドを使用して、AzureBastionSubnet に新しい Azure Bastion リソースを作成します。 次の例では、Basic SKU を使います。 ただし、-Sku の値を "Standard" に変更することで、Standard SKU を使用して Bastion をデプロイすることもできます。 Standard SKU では、より多くの Bastion 機能を構成し、より多くの接続の種類を使用して VM に接続できます。 Developer SKU を使用して Bastion を自動的にデプロイすることもできます。 詳細については、Bastion SKU に関する記事を参照してください。

    New-AzBastion -ResourceGroupName "TestRG1" -Name "VNet1-bastion" `
    -PublicIpAddressRgName "TestRG1" -PublicIpAddressName "VNet1-ip" `
    -VirtualNetworkRgName "TestRG1" -VirtualNetworkName "TestVNet1" `
    -Sku "Basic"
    
  5. Bastion リソースのデプロイには、約 10 分かかります。 仮想ネットワークに Bastion がデプロイされる間、次のセクションで VM を作成できます。

VM の作成

PowerShell を使用した VM の作成に関するクイックスタートまたはポータルを使用した VM の作成に関するクイックスタートの記事を参照して、VM を作成できます。 VM は必ず Bastion をデプロイしたのと同じ仮想ネットワークにデプロイしてください。 このセクションで作成する VM は Bastion の構成には含まれず、bastion ホストになることもありません。 このチュートリアルの中で後から、Bastion 経由でこの VM に接続することになります。

次は、リソースに必要なロールです。

  • 必要な VM ロール:

    • 仮想マシンに対する閲覧者ロール。
    • 仮想マシンのプライベート IP を使用する NIC に対する閲覧者ロール。
  • 必要な受信ポート:

    • Windows VM の場合 - RDP (3389)
    • Linux VM の場合 - SSH (22)

VM への接続

以下のセクションの接続手順を使用して VM に接続できます。 次のいずれかの記事を使用して VM に接続することもできます。 一部の種類の接続では、Bastion Standard SKU が必要です。

接続ステップ

  1. Azure portal で、接続先の仮想マシンに移動します。

  2. ペインの上部で、[接続]>[Bastion] を選び、[Bastion] ペインに移動します。 左側のメニューを使って、[Bastion] ペインに移動することもできます。

  3. [Bastion] ペインで使用できるオプションは、Bastion SKU によって異なります。 Basic SKU を使用している場合は、RDP とポート 3389 を使って Windows コンピューターに接続します。 また、Basic SKU の場合、SSH とポート 22 を使って Linux コンピューターに接続します。 ポート番号やプロトコルを変更するオプションはありません。 ただし、[接続設定] を展開することで、RDP のキーボード言語を変更できます。

    Screenshot of Azure Bastion connection settings.

    Standard SKU を使っている場合は、さらに多くの接続プロトコルとポートのオプションを使用できます。 [接続設定] を展開すると、それらのオプションが表示されます。 通常、VM に対して異なる設定を構成しない限り、RDP とポート 3389 を使って Windows コンピューターに接続します。 SSH とポート 22 を使って、Linux コンピューターに接続します。

    Screenshot of expanded connection settings.

  4. [認証の種類] については、ドロップダウン リストから選びます。 プロトコルによって、利用できる認証の種類が決まります。 必要な認証の値を指定します。

    Screenshot that shows the dropdown list box for authentication type.

  5. 新しいブラウザー タブで VM セッションを開くには、[新しいブラウザー タブで開く] を選択したままにします。

  6. [接続] を選択して VM に接続します。

  7. ポート 443 と Bastion サービスを使って、(HTML5 を介して) Azure portal で仮想マシンへの接続が直接開かれることを確認します。

    Screenshot of a computer desktop with an open connection over port 443.

    Note

    接続したときの VM のデスクトップの外観は、例のスクリーンショットとは異なるものになります。

VM に接続しているときにキーボード ショートカット キーを使うと、ローカル コンピューターのショートカット キーとは同じ動作にならないことがあります。 たとえば、Windows クライアントから Windows VM に接続している場合、Ctrl + Alt + End は、ローカル コンピューターの Ctrl + Alt + Delete のキーボード ショートカットになります。 Windows VM に接続しているときに Mac からこれを行うには、キーボード ショートカットは Fn + Ctrl + Alt + Backspace になります。

オーディオ出力を有効にするには

VM のリモートオーディオ出力を有効にすることができます。 この設定が自動的に有効になる VM もありますが、オーディオ設定を手動で有効にすることが必要なものもあります。 設定は VM 自体で変更されます。 Bastion のデプロイでは、リモート オーディオ出力を有効にするための特別な構成設定は必要ありません。

Note

オーディオ出力には、インターネット接続の帯域幅が使用されます。

Windows VM でリモート オーディオ出力を有効にするには:

  1. VM に接続すると、ツール バーの右下隅に [オーディオ] ボタンが表示されます。 [オーディオ] ボタンを右クリックし、[サウンド] を選びます。
  2. Windows オーディオ サービスを有効にするかどうかを確認するポップアップ メッセージが表示されます。 [はい] を選択します。 [サウンド] 設定で、より多くのオーディオ オプションを構成できます。
  3. サウンド出力を確認するには、ツールバーの [オーディオ] ボタンの上にカーソルを合わせます。

VM のパブリック IP アドレスを削除する

Azure Bastion では、クライアント VM への接続にパブリック IP アドレスは使用されません。 VM ではパブリック IP アドレスを他のことで必要としない場合、削除してかまいません。 「パブリック IP アドレスの関連付けを Azure VM から解除する」を参照してください。

次のステップ

  • Azure Bastion サブネットでネットワーク セキュリティ グループを使用する方法については、NSG の使用に関するページを参照してください。
  • VNet ピアリングの詳細については、「VNet ピアリングと Azure Bastion」を参照してください。