Just-In-Time を使用した仮想マシン アクセスの管理Manage virtual machine access using just-in-time

Just-In-Time (JIT) 仮想マシン (VM) アクセスを使用すると、Azure VM への受信トラフィックをロックダウンすることができるので、攻撃に対する露出が減り、VM への接続が必要な場合は簡単にアクセスできます。Just-in-time (JIT) virtual machine (VM) access can be used to lock down inbound traffic to your Azure VMs, reducing exposure to attacks while providing easy access to connect to VMs when needed.

注意

Just-In-Time 機能は、Security Center の Standard レベルで利用できます。The just-in-time feature is available on the Standard tier of Security Center. Security Center の価格レベルの詳細については、価格に関するページを参照してください。See Pricing to learn more about Security Center's pricing tiers.

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. インストール手順については、Azure PowerShell のインストール を参照してください。For installation instructions, see Install Azure PowerShell.

攻撃シナリオAttack scenario

ブルート フォース攻撃では、VM にアクセスする手段として一般に管理ポートがターゲットとされます。Brute force attacks commonly target management ports as a means to gain access to a VM. アクセスに成功した場合、攻撃者は VM の制御を奪い、攻撃対象の環境への足掛かりを築くことができます。If successful, an attacker can take control over the VM and establish a foothold into your environment.

ブルート フォース攻撃への露出を減らす方法の 1 つとして、ポートの開放時間を制限するという方法があります。One way to reduce exposure to a brute force attack is to limit the amount of time that a port is open. 管理ポートを常に開放しておく必要はありません。Management ports do not need to be open at all times. 管理ポートを開放しておく必要があるのは、管理タスクやメンテナンス タスクを実行する場合など、VM に接続している間だけです。They only need to be open while you are connected to the VM, for example to perform management or maintenance tasks. Just-In-Time が有効になっている場合、Security Center ではネットワーク セキュリティ グループ (NSG) ルールが使用されます。このルールにより管理ポートへのアクセスが制限されるため、攻撃者は管理ポートをターゲットにすることができなくなります。When just-in-time is enabled, Security Center uses network security group (NSG) rules, which restrict access to management ports so they cannot be targeted by attackers.

Just-In-Time のシナリオ

JIT アクセスはどのように機能しますか?How does JIT access work?

Just-In-Time が有効になっている場合、Security Center では NSG ルールの作成により Azure VM への受信トラフィックがロックダウンされます。When just-in-time is enabled, Security Center locks down inbound traffic to your Azure VMs by creating an NSG rule. ユーザーは VM 上の受信トラフィックがロックダウンされるポートを選択します。You select the ports on the VM to which inbound traffic will be locked down. これらのポートは、Just-In-Time ソリューションによって制御されます。These ports are controlled by the just-in-time solution.

ユーザーが VM へのアクセスを要求すると、VM へのアクセスを正常に要求できるように許可するロールベースのアクセス制御 (RBAC) アクセス許可が、そのユーザーにあるかどうかが、Security Center によってチェックされます。When a user requests access to a VM, Security Center checks that the user has Role-Based Access Control (RBAC) permissions that permit them to successfully request access to a VM. 要求が承認されると、Security Center では、選択したポートおよび要求されたソース IP アドレスまたは範囲への受信トラフィックを指定された時間だけ許可するように、ネットワーク セキュリティ グループ (NSG) が自動的に構成されます。If the request is approved, Security Center automatically configures the Network Security Groups (NSGs) to allow inbound traffic to the selected ports and requested source IP addresses or ranges, for the amount of time that was specified. 指定された時間が経過すると、Security Center により NSG が以前の状態に復元されます。After the time has expired, Security Center restores the NSGs to their previous states. 既に確立されているこれらの接続は中断されません。ただし次のようになります。Those connections that are already established are not being interrupted, however.

注意

Security Center の Just-In-Time VM アクセスでは、現在 Azure Resource Manager 経由でデプロイされた VM のみがサポートされています。Security Center just-in-time VM access currently supports only VMs deployed through Azure Resource Manager. クラシック デプロイ モデルと Resource Manager デプロイ モデルの詳細については、Azure Resource Manager とクラシック デプロイの比較に関するページを参照してください。To learn more about the classic and Resource Manager deployment models see Azure Resource Manager vs. classic deployment.

以下の手順で JIT にアクセスできます。You can access JIT through:

Azure Security Center での JIT アクセスの使用Using JIT access in Azure Security Center

  1. [Security Center] ダッシュボードを開きます。Open the Security Center dashboard.

  2. 左のウィンドウで、[Just-in-time VM access] (Just-In-Time VM アクセス) を選択します。In the left pane, select Just-in-time VM access.

[Just-in-time VM access] (Just-In-Time VM アクセス) タイル

[Just-in-time VM access] (Just-In-Time VM アクセス) ウィンドウが開きます。The Just-in-time VM access window opens.

[Just-in-time VM access] (Just-In-Time VM アクセス) タイル

[Just-in-time VM access] (Just-In-Time VM アクセス) には、VM の状態に関する情報が表示されます。Just-in-time VM access provides information on the state of your VMs:

  • [構成済み] - Just-In-Time VM アクセスをサポートするように構成されている VM。Configured - VMs that have been configured to support just-in-time VM access. 表示されるデータは 1 週間以内のものであり、VM ごとに承認済みの要求の数、最終アクセス日時、最後のユーザーの情報が含まれます。The data presented is for the last week and includes for each VM the number of approved requests, last access date and time, and last user.
  • [推奨] - Just-In-Time VM アクセスをサポートできるが、そのように構成されてはいない VM。Recommended - VMs that can support just-in-time VM access but have not been configured to. これらの VM では Just-In-Time VM アクセス制御を有効にすることをお勧めします。We recommend that you enable just-in-time VM access control for these VMs. Just-In-Time アクセス ポリシーの構成に関するページを参照してください。See Configuring a just-in-time access policy.
  • [推奨なし] - 以下のような VM には、ジャスト イン タイム VM アクセスは推奨されない場合があります。No recommendation - Reasons that can cause a VM not to be recommended are:
    • NSG がない - Just-In-Time ソリューションには設定済みの NSG が必要です。Missing NSG - The just-in-time solution requires an NSG to be in place.
    • クラシック VM - Security Center の Just-In-Time VM アクセスでは、現在 Azure Resource Manager 経由でデプロイされた VM のみがサポートされています。Classic VM - Security Center just-in-time VM access currently supports only VMs deployed through Azure Resource Manager. Just-In-Time ソリューションではクラシック デプロイはサポートされていません。A classic deployment is not supported by the just-in-time solution.
    • その他 - VM がこのカテゴリに含まれるのは、サブスクリプションまたはリソース グループのセキュリティ ポリシー内で Just-In-Time ソリューションが無効になっている場合か、VM にパブリック IP と設定済みの NSG がない場合です。Other - A VM is in this category if the just-in-time solution is turned off in the security policy of the subscription or the resource group, or that the VM is missing a public IP and doesn't have an NSG in place.

JIT アクセス ポリシーの構成Configuring a JIT access policy

有効にする VM を選択するには、以下の手順に従います。To select the VMs that you want to enable:

  1. [Just-in-time VM access] (Just-In-Time VM アクセス)[推奨] タブを選択します。Under Just-in-time VM access, select the Recommended tab.

    Just In Time VM アクセスの有効化

  2. [仮想マシン] で、有効にする VM を選択します。Under VIRTUAL MACHINE, select the VMs that you want to enable. VM の横にチェックマークが付きます。This puts a checkmark next to a VM.

  3. [<選択した VM 数> 台の VM で JIT を有効にする] を選択します。Select Enable JIT on VMs.

    1. このブレードには、Azure Security Center で推奨される既定のポートが表示されます。This blade displays the default ports recommended by Azure Security Center:
      • 22 - SSH22 - SSH
      • 3389 - RDP3389 - RDP
      • 5985 - WinRM5985 - WinRM
      • 5986 - WinRM5986 - WinRM
    2. カスタム ポートを構成することもできます。You can also configure custom ports. これを行うには、[追加] を選択します。To do this, select Add.
    3. [ポート構成の追加] で、既定でもカスタムでも構成するポートごとに、以下の設定をカスタマイズできます。In Add port configuration, for each port you choose to configure, both default and custom, you can customize the following settings:
      • [プロトコルの種類] - 要求が承認されたときにこのポートで許可されるプロトコル。Protocol type- The protocol that is allowed on this port when a request is approved.
      • [Allowed source IP addresses] (許可されるソース IP アドレス) - 要求が承認されたときにこのポートで許可される IP 範囲。Allowed source IP addresses- The IP ranges that are allowed on this port when a request is approved.
      • [最大要求時間] - 特定のポートを開放しておくことができる最大時間枠。Maximum request time- The maximum time window during which a specific port can be opened.
  4. [保存] を選択します。Select Save.

注意

VM に対して JIT VM アクセスが有効になっている場合、Azure Security Center では、関連付けられているネットワーク セキュリティ グループ内の選択されたポートについて、"すべての受信トラフィックを拒否" という規則が作成されます。When JIT VM Access is enabled for a VM, Azure Security Center creates "deny all inbound traffic" rules for the selected ports in the network security groups associated with it. 選択したポートに対して他の規則が作成されている場合は、既存の規則が新しい "すべての受信トラフィックを拒否" 規則よりも優先されます。If other rules had been created for the selected ports, then the existing rules take priority over the new “deny all inbound traffic” rules. 選択したポートに既存の規則がない場合は、新しい "すべての着信トラフィックを拒否する" 規則がネットワーク セキュリティ グループで最優先されます。If there are no existing rules on the selected ports, then the new “deny all inbound traffic” rules take top priority in the Network Security Groups.

VM への JIT アクセスを要求するRequest JIT access to a VM

VM へのアクセス権を要求するには、以下の手順に従います。To request access to a VM:

  1. [Just-in-time VM access] (Just-In-Time VM アクセス) で、[構成済み] を選択します。Under Just in time VM access, select Configured.
  2. [VM] で、Just-In-Time アクセスを有効にする VM を確認します。Under VMs, check the VMs that you want to enable just-in-time access for.
  3. [アクセス権の要求] を選択します。Select Request access. VM へのアクセス権を要求するrequest access to vm
  4. [アクセス権の要求] では、開放するポート、ポートの開放先のソース IP アドレス、ポートを開放しておく時間枠を VM ごとに構成します。Under Request access, for each VM, configure the ports that you want to open and the source IP addresses that the port is opened on and the time window for which the port will be open. Just-In-Time ポリシーで構成されているポートへのアクセス権のみ要求できます。It will only be possible to request access to the ports that are configured in the just-in-time policy. ポートごとに Just-In-Time ポリシーから派生した最大許容時間があります。Each port has a maximum allowed time derived from the just-in-time policy.
  5. [Open ports](ポートを開く) を選択します。Select Open ports.

注意

アクセスを要求しているユーザーがプロキシの背後にいる場合は、My IP オプションが機能しない場合があります。If a user who is requesting access is behind a proxy, the option My IP may not work. 組織のすべての IP アドレス範囲を定義する必要がある場合があります。You may need to define the full IP address range of the organization.

JIT アクセス ポリシーの編集Editing a JIT access policy

VM の既存の Just-In-Time ポリシーを変更する場合、その VM 用に保護する新しいポートを追加して構成するか、既に保護されているポートに関連するその他の設定を変更します。You can change a VM's existing just-in-time policy by adding and configuring a new port to protect for that VM, or by changing any other setting related to an already protected port.

VM の既存の Just-In-Time ポリシーを編集するには:To edit an existing just-in-time policy of a VM:

  1. [構成済み] タブの [VM] で、ポートを追加する VM の行内にある 3 つの点をクリックしてその VM を選択します。In the Configured tab, under VMs, select a VM to which to add a port by clicking on the three dots within the row for that VM.
  2. [編集] を選択します。Select Edit.
  3. [JIT VM アクセス構成] では、既に保護されているポートの既存の設定を編集するか、新しいカスタム ポートを追加できます。Under JIT VM access configuration, you can either edit the existing settings of an already protected port or add a new custom port. 詳しくは、Just-In-Time アクセス ポリシーの構成に関するページをご覧ください。For more information, see Configuring a just-in-time access policy. JIT VM アクセスjit vm access

Azure VM ブレードでの JIT アクセスの使用Using JIT access in an Azure VM blade

作業を容易にするため、Azure の VM ブレード内から直接 JIT を使用して VM に接続できます。For your convenience, you can connect to a VM using JIT directly from within the VM blade in Azure.

Just-In-Time アクセス ポリシーの構成Configuring a just-in-time access policy

VM への Just-In-Time アクセスのロールアウトを容易にするには、VM 内からの直接的な Just-In-Time アクセスのみを許可するように VM を設定できます。To make it easy to roll out just-in-time access across your VMs, you can set a VM to allow only just-in-time access directly from within the VM.

  1. Azure portal で、[仮想マシン] を選択します。In the Azure portal, select Virtual machines.
  2. Just-In-Time アクセスに制限する仮想マシンをクリックします。Click on the virtual machine you want to limit to just-in-time access.
  3. メニューで [構成] をクリックします。In the menu, click Configuration.
  4. [Just-In-Time アクセス][Just-In-Time ポリシーを有効にする] をクリックします。Under Just-in-time-access click Enable just-in-time policy.

これにより、以下の設定を使用する VM の Just-In-Time アクセスが有効になります。This enables just-in-time access for the VM using the following settings:

  • Windows サーバー:Windows servers:
    • RDP ポート 3389RDP port 3389
    • 3 時間の最大許容アクセス3 hours of maximum allowed access
    • 許可されるソース IP アドレスは [すべて] に設定されますAllowed source IP addresses is set to Any
  • Linux サーバー:Linux servers:
    • SSH ポート 22SSH port 22
    • 3 時間の最大許容アクセス3 hours of maximum allowed access
    • 許可されるソース IP アドレスは [すべて] に設定されますAllowed source IP addresses is set to Any

VM で Just-In-Time が既に有効になっている場合、VM の構成ページに移動すると、Just-In-Time が有効になっていることが示され、リンクを使用して Azure Security Center でポリシーを開き、設定を確認および変更できます。If a VM already has just-in-time enabled, when you go to its configuration page you will be able to see that just-in-time is enabled and you can use the link to open the policy in Azure Security Center to view and change the settings.

VM での JIT の構成

VM への JIT アクセスの要求Requesting JIT access to a VM

Azure portal では、VM に接続しようとすると、Azure は、Just-In-Time アクセス ポリシーをその VM 上で構成しているかどうかを確認します。In the Azure portal, when you try to connect to a VM, Azure checks to see if you have a just-in-time access policy configured on that VM.

  • VM 上で JIT を構成していない場合、JIT ポリシーを構成するように求められます。If you do not have JIT configured on a VM, you will be prompted to configure a JIT policy it.

    JIT プロンプト

  • VM 上で JIT を構成している場合、[アクセスの要求] をクリックして、その VM 用に設定された JIT ポリシーに従ってアクセス可能にすることができます。If you do have a JIT policy configured on the VM, you can click Request access to enable you to have access in accordance with the JIT policy set for the VM. アクセスは、次の規定のパラメーターを使用して要求します。The access is requested with the following default parameters:

    • 接続元 IP アドレス:"任意" (*) (変更できません)source IP: ‘Any’ (*) (cannot be changed)
    • 時間範囲:3 時間 (変更できません)time range: 3 hours (cannot be changed)
    • ポート番号: Windows の場合は RDP ポート 3389/Linux の場合はポート 22 (ポート番号は、[仮想マシンに接続する] ダイアログ ボックスで変更できます。)port number RDP port 3389 for Windows / port 22 for Linux (You can change the port number in the Connect to virtual machine dialog box.)

    JIT のアクセスの要求

JIT アクセス アクティビティの監査Auditing JIT access activity

ログ検索を使用して VM アクティビティについての情報が得ることができます。You can gain insights into VM activities using log search. ログを表示するには、以下の手順に従います。To view logs:

  1. [Just-in-time VM access] (Just-In-Time VM アクセス) で、[構成済み] タブを選択します。Under Just-in-time VM access, select the Configured tab.

  2. [VM] で、情報を表示する VM の行内にある 3 つの点をクリックしてその VM を選択します。Under VMs, select a VM to view information about by clicking on the three dots within the row for that VM. メニューが開きます。This opens a menu.

  3. メニューで [アクティビティ ログ] を選択します。Select Activity Log in the menu. [アクティビティ ログ] が開きます。This opens Activity log.

    [アクティビティ ログ] を選択する

    [アクティビティ ログ] には、選択した VM の前回の操作、時間、日付、サブスクリプションがフィルター処理されて表示されます。Activity log provides a filtered view of previous operations for that VM along with time, date, and subscription.

[すべての項目を csv としてダウンロードするにはここをクリックしてください。] を選択すると、ログ情報をダウンロードできます。You can download the log information by selecting Click here to download all the items as CSV.

フィルターを変更し、[適用] を選択して検索ログを作成します。Modify the filters and select Apply to create a search and log.

JIT を構成および使用するために必要なアクセス許可Permissions needed to configure and use JIT

ユーザーが VM 用に JIT ポリシーを構成したり編集したりできるように、これらの必要な特権を設定します。Set these required privileges to enable a user to configure or edit a JIT policy for a VM.

これらのアクションをロールに割り当てます。Assign these actions to the role:

  • VM に関連付けられているサブスクリプションまたはリソース グループの範囲:On the scope of a subscription or Resource Group that is associated with the VM:
    • Microsoft.Security/locations/jitNetworkAccessPolicies/writeMicrosoft.Security/locations/jitNetworkAccessPolicies/write
  • VM のサブスクリプションまたはリソース グループの範囲:On the scope of a subscription or Resource Group or VM:
    • Microsoft.Compute/virtualMachines/writeMicrosoft.Compute/virtualMachines/write

ユーザーが VM への JIT アクセスを正常に要求できるようにこれらの特権を設定します。これらのアクションをユーザーに割り当てます。Set these privileges to enable a user to successfully request JIT access to a VM: Assign these actions to the user:

  • VM に関連付けられているサブスクリプションまたはリソース グループの範囲:On the scope of a subscription or Resource Group that is associated with the VM:
    • Microsoft.Security/locations/{the_location_of_the_VM}/jitNetworkAccessPolicies/ initiate/actionMicrosoft.Security/locations/{the_location_of_the_VM}/jitNetworkAccessPolicies/ initiate/action
  • VM のサブスクリプションまたはリソース グループの範囲:On the scope of a Subscription or Resource Group or VM:
    • Microsoft.Compute/virtualMachines/readMicrosoft.Compute/virtualMachines/read

プログラムで JIT を使用するUse JIT programmatically

REST API および PowerShell から Just-In-Time を設定し使用できます。You can set up and use just-in-time via REST APIs and via PowerShell.

REST API による Just-In-Time VM アクセスの使用Using just-in-time VM access via REST APIs

Just-In-Time VM アクセス機能は、Azure Security Center API から使用できます。The just-in-time VM access feature can be used via the Azure Security Center API. この API を使用すると、構成済みの VM に関する情報を取得したり、新しい VM を追加したり、VM へのアクセスを要求したりすることができます。You can get information about configured VMs, add new ones, request access to a VM, and more, via this API. Just-In-Time REST API について詳しくは、「Jit Network Access Policies (JIT ネットワーク アクセス ポリシー)」をご覧ください。See Jit Network Access Policies, to learn more about the just-in-time REST API.

PowerShell による JIT VM アクセスの使用Using JIT VM access via PowerShell

PowerShell による Just-In-Time VM アクセス ソリューションを使用するには、公式の Azure Security Center の PowerShell コマンド (つまり、Set-AzJitNetworkAccessPolicy) を使用します。To use the just-in-time VM access solution via PowerShell, use the official Azure Security Center PowerShell cmdlets, and specifically Set-AzJitNetworkAccessPolicy.

次の例では、特定の VM 上で Just-In-Time VM アクセス ポリシーを設定し、以下のように設定します。The following example sets a just-in-time VM access policy on a specific VM, and sets the following:

  1. ポート 22 と 3389 を閉じます。Close ports 22 and 3389.
  2. 承認された要求ごとに開けるように、それぞれ最大 3 時間の時間枠を設定します。Set a maximum time window of 3 hours for each so they can be opened per approved request.
  3. アクセス権を要求するユーザーがソース IP アドレスを制御できるようにし、承認された Just-In-Time アクセス要求時に正常なセッションを確立できるようにします。Allows the user who is requesting access to control the source IP addresses and allows the user to establish a successful session upon an approved just-in-time access request.

これを実現するには、PowerShell で以下を実行します。Run the following in PowerShell to accomplish this:

  1. VM に対する Just-In-Time VM アクセス ポリシーを保持する変数を割り当てます。Assign a variable that holds the just-in-time VM access policy for a VM:

    $JitPolicy = (@{
     id="/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Compute/virtualMachines/VMNAME"
    ports=(@{
         number=22;
         protocol="*";
         allowedSourceAddressPrefix=@("*");
         maxRequestAccessDuration="PT3H"},
         @{
         number=3389;
         protocol="*";
         allowedSourceAddressPrefix=@("*");
         maxRequestAccessDuration="PT3H"})})
    
  2. VM の Just-In-Time VM アクセス ポリシーを配列に挿入します。Insert the VM just-in-time VM access policy to an array:

    $JitPolicyArr=@($JitPolicy)
    
  3. 選択した VM で Just-In-Time VM アクセス ポリシーを構成します。Configure the just-in-time VM access policy on the selected VM:

    Set-AzJitNetworkAccessPolicy -Kind "Basic" -Location "LOCATION" -Name "default" -ResourceGroupName "RESOURCEGROUP" -VirtualMachine $JitPolicyArr 
    

VM へのアクセス権の要求Requesting access to a VM

次の例では、特定の IP アドレスおよび特定の期間にポート 22 を開くことを要求する、特定の VM への Just-In-Time VM アクセス要求が示されています。In the following example, you can see a just-in-time VM access request to a specific VM in which port 22 is requested to be opened for a specific IP address and for a specific amount of time:

PowerShell で以下を実行します。Run the following in PowerShell:

  1. VM 要求アクセス プロパティを構成します。Configure the VM request access properties

    $JitPolicyVm1 = (@{
      id="/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Compute/virtualMachines/VMNAME"
    ports=(@{
       number=22;
       endTimeUtc="2018-09-17T17:00:00.3658798Z";
       allowedSourceAddressPrefix=@("IPV4ADDRESS")})})
    
  2. 配列内に VM アクセス要求パラメーターを挿入します。Insert the VM access request parameters in an array:

    $JitPolicyArr=@($JitPolicyVm1)
    
  3. 要求アクセスを送信します (手順 1 で取得したリソース ID を使用)。Send the request access (use the resource ID you got in step 1)

    Start-AzJitNetworkAccessPolicy -ResourceId "/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Security/locations/LOCATION/jitNetworkAccessPolicies/default" -VirtualMachine $JitPolicyArr
    

詳細については、PowerShell コマンドレットのドキュメントをご覧ください。For more information, see the PowerShell cmdlet documentation.

次の手順Next steps

この記事では、Security Center の Just-In-Time VM アクセスを活用して Azure 仮想マシンへのアクセスを制御する方法について説明しました。In this article, you learned how just-in-time VM access in Security Center helps you control access to your Azure virtual machines.

セキュリティ センターの詳細については、次を参照してください。To learn more about Security Center, see the following: