Table of contents
TOC
目次を折りたたむ
目次を展開する

VMM でポート ACL を管理する

Rayne Wiselman|最終更新日: 2017/04/15
|
1 投稿者

適用対象: System Center 2016 - Virtual Machine Manager

System Center 2016 - Virtual Machine Manager (VMM) では、Hyper-V ポートのアクセス制御リスト (ACL) を一元的に構成して管理できます。 ポート ACL は、ネットワーク コントローラーで管理されているファブリックとネットワーク コントローラーで管理されていないネットワークの両方に構成できます。

  • ポート ACL は、レイヤー 2 ポート レベルでのトラフィックをフィルター処理するルールのセットです。 VMM のポート ACL は、特定の VMM オブジェクトへのアクセスをフィルター処理します。 1 つのネットワーク オブジェクトには、ポート ACL を 1 つだけ接続することができます。
  • ACL にはルールが含まれており、任意の数のネットワーク オブジェクトに接続することができます。 ルールを含まない ACL を作成し、後でルールを追加できます。 各 ACL ルールが対応するポート ACL は 1 つだけです。
  • ACL に複数のルールがある場合は、優先順位に基づいて適用されます。 あるルールが条件に一致して適用されると、他のルールは処理されません。
  • グローバル設定のポート ACL は、インフラストラクチャ内のすべての VM の仮想ネットワーク アダプターに適用されます。 グローバル設定には個別のオブジェクトの種類はありません。 代わりに、グローバル設定のポート ACL は VMM 管理サーバー自体に接続されます。
  • ポート ACL の設定は、VMM の PowerShell コマンドレットを介してのみ公開され、VMM コンソールでは構成できません。
  • ポート ACL は次の項目に適用できます。
    • ネットワーク コント ローラーの展開での仮想サブネットとアダプター。
    • ネットワーク コント ローラーで管理されていないネットワークでの仮想サブネット、ネットワーク アダプター、VM ネットワーク、VMM 管理サーバー。

アップグレードを開始する前に

  • ネットワーク コント ローラーで管理されるオブジェクトに ACL を適用するには、ManagedByNC フラグを使用し、このフラグを True に設定します。 True に設定されていない場合、ACL はネットワーク コント ローラーで管理されていないネットワーク オブジェクトにのみ適用されます。
  • ACL の種類は交換できません。 つまり、ManagedByNCfalse として設定された ACL を、ネットワーク コントローラーで管理されているオブジェクトには適用できません。その逆も同様です。
  • これら 2 つの ACL の主要な違いは、ネットワーク コント ローラーで管理されていないオブジェクトに ACL を適用した後、各ネットワーク アダプターを修復する必要があることです。
  • 優先度の範囲にも相違点があります。
    • HYPER-V ポート ACL (ネットワーク コント ローラーで管理されていない): 1 - 65535
    • SDN ポート ACL (ネットワーク コント ローラーで管理されている): 1 - 64500
  • グローバル設定にポート ACL を接続するには、完全な VMM 管理者アクセス許可が必要です。 ACL を VMM オブジェクト (VM ネットワーク、サブネット、仮想ネットワーク アダプター) に接続するには、VMM 管理者、テナント管理者、またはセルフサービス ユーザーである必要があります。

サポートされていないシナリオ

現在は、次の作業を行うことはできません。

  • ACL が複数のインスタンスと共有されている場合に、1 つのインスタンスに対する個々のルールを管理する。 すべてのルールは親 ACL 内で一元的に管理され、ACL が接続されるすべての場所に適用されます。
  • 複数の ACL を 1 つのエンティティに接続する。
  • ポート ACL を、Hyper-V の親パーティション (管理オペレーティング システム) 内の仮想ネットワーク アダプターに適用する。
  • VMM で IP レベルのプロトコル (TCP または UDP を除く) を含むポート ACL ルールを作成する。 他のプロトコルは引き続き Hyper-V でネイティブにサポートされています。
  • ポート ACL を、論理ネットワーク、ネットワーク サイト (論理ネットワーク定義)、サブネット vLAN、および具体的にサポートされていると記述されていない他の VMM ネットワーク オブジェクトに適用する。

展開の手順

VMM PowerShell インターフェイスを使用し、次の作業を行います。

  1. ポート ACL とルールを定義します。
    • ルールは、"拡張ポート ACL" (VMNetworkAdapterExtendedAcl) として、Hyper-V サーバー上の仮想スイッチ ポートに適用されます。 つまり、Windows Server 2012 R2 以降を実行しているホストにのみ適用できます。VMM は、以前のバージョン用の従来の HYPER-V ポート ACL (VMNetworkAdapterAcl) を作成しないためです。
    • VMM で定義されたすべてのポート ACL ルールは、TCP に対してステートフルです。 ステートレスな TCP ACL ルールを作成することはできません。
  2. ポート ACL をグローバル設定に接続します。 これにより、すべての VM の仮想ネットワーク アダプターに ACL が適用されます。
  3. VM ネットワーク、VM サブネット、または VM 仮想ネットワーク アダプターにポート ACL を接続する。
  4. ポート ACL ルールを管理します。

ポート ACL の作成

  1. VMM で PowerShell を開きます。
  2. New-SCPortACL コマンドレットでポート ACL を作成します。

     New-SCPortACL [-Name] <String> [-Description <String>] [-JobVariable <String>] [-ManagedByNC] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-Owner <String>] [-PROTipID <Guid>] [-RunAsynchronously] [-UserRole <UserRole>] [-VMMServer <ServerConnection>] [<CommonParameters>]
    

パラメーター

パラメーター詳細
Name、Descriptionポート ACL の名前と説明。
JobVariableジョブの進行状況を格納します。
ManagedByNCネットワーク コント ローラーでオブジェクトを管理するかどうかを指定します。
OnBehalfOfUser/OnBehalfOfRoleユーザー名またはロールを使用してジョブを実行します。
Owner有効なドメイン ユーザー アカウントの形式で VMM オブジェクトの所有者を指定します。 例: Contoso\PattiFuller または PattiFuller@Contoso
PROTipIDアクションをトリガーした ProTip の ID。
RunAsychronouslyジョブが非同期的に実行されるかどうかを指定します。
UserRoleユーザー ロールを指定します。
VMMServerVMM サーバーを指定します。
CommonParameters詳細情報

ネットワーク コントローラー "DemoACLManagedByNC" で管理されるオブジェクトのポート ACL を作成します。

PS: C:\> New-SCPortACL -Name "DemoACLManagedByNC" -Description "PortACL Example Managed by NC" -ManagedByN

ネットワーク コントローラー "DemPortACL" で管理されないオブジェクトのポート ACL を作成します。

PS: C:\> New-SCPortACL -Name "DemoPortACL" -Description "Port ACL Example Non Managed by NC"

ポート ACL のポート ACL ルールを定義する

  1. VMM で PowerShell を開きます。
  2. New-SCPortACLRule コマンドレットを使用して、1 つまたは複数のルールを作成します。

     New-SCPortACLrule -PortACL <PortACL> -Name <string> [-Description <string>] -Type <Inbound | Outbound> -Action <Allow | Deny> -Priority <uint16> -Protocol <Tcp | Udp | Any> [-LocalAddressPrefix <string: IPAddress | IPSubnet>] [-LocalPortRange <string:X|X-Y|Any>] [-RemoteAddressPrefix <string: IPAddress | IPSubnet>] [-RemotePortRange <string:X|X-Y|Any>]
    

パラメーター

パラメーター詳細
Name、Descriptionルール名と説明。
ACL が適用されるのトラフィックの方向 (Inbound または Outbound) を指定します。
操作ACL がトラフィックを許可するか、ブロックするか (Allow または Deny) を指定します。
LocalAddressPrefixフィルター処理するトラフィックを識別するために使用される発信元 IP アドレスまたはサブネットを指定します。
LocalPortRangeトラフィックを識別するために使用される発信元ポート範囲を指定します。
RemoteAddressPrefixフィルター処理するトラフィックを識別するために使用される接続先 IP アドレスまたはサブネットを指定します。
RemotePortRangeトラフィックを識別するために使用される接続先ポート範囲を指定します。
プロトコルルールを適用するプロトコルを指定します。
優先順位ポート ACL でのルールの優先度を指定します。 ルールは、順序に従って適用されます。 1 - 65535 の間の優先度を設定します。最小の番号が最も高い優先度となります。 ネットワーク コント ローラーによって管理されるオブジェクトのポート ACL のルールは、100 以上に設定してください。 現在、ネットワーク コントローラーは 100 未満の優先度をサポートしていません。

ポート ACL を作成し、$portACL にオブジェクトを格納します。

PS: C:\> $portACL = New-SCPortACL -Name "RDP ACL" -Description "Acl on RDP access"

リモート サブネットからの RDP アクセスを許可するようにポート ACL ルールを作成します。

PS: C:\> New-SCPortACLRule -Name "AllowRDPAccess" -PortACL $portACL -Description "Allow RDP Rule from a subnet" -Action Allow -Type Inbound -Priority 110 -Protocol Tcp -LocalPortRange 3389 -RemoteAddressPrefix 10.184.20.0/24

ACL ルールの優先度を変更します。

PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -Priority 220

最初のコマンドは、"AllowRDPAccess" という名前のポート ACL ルールを取得します。 2 番目のコマンドは、ルールの優先度を 220 に変更します。

ポート ACL ルールの送信先アドレスの範囲とルールのプロトコルを変更します。

PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -RemoteAddressPrefix 172.185.21.0/24 -Protocol Udp

最初のコマンドは、"AllowRDPAccess" というルールを取得します。 2 番目のコマンドは、UDP プロトコルに変更し、接続先をサブネット 172.185.21.0/24 に設定します。

ポート ACL の接続と接続解除

ポート ACL は、グローバル設定、VM ネットワーク、VM サブネット、および仮想ネットワーク アダプターに接続できます。 グローバル設定に接続されているポート ACL は、既定で、すべての VM の仮想ネットワーク アダプターに適用されます。

  1. VMM で PowerShell を開きます。
  2. Set-SCVMMServer コマンドレットを使用して、ポート ACL を接続します。

     Set-SCVMMServer –VMMServer <VMMServer> [-PortACL <NetworkAccessControlList> | -RemovePortACL ]
    

パラメーター

パラメーター詳細
VMM サーバーポート ACL が適用されている VMM サーバーの名前。
PortACL必要に応じて、指定されたポート ACL をグローバル設定に接続します。

ポート ACL をグローバル設定に接続します。

Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl`` <br/><br/> ExampleL: `` Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl

ポート ACL をグローバル設定から接続解除します。

Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -RemovePortACL

作成時に VM ネットワークに ACL を接続します。

New-SCVMNetwork [–PortACL <NetworkAccessControlList>] [rest of the parameters]

既存の VM ネットワークに ACL を接続します。

Set-SCVMNetwork -PortACL $acl`

作成時に VM サブネットに ACL を接続します。

New-SCVMSubnet [–PortACL <NetworkAccessControlList>] [rest of the parameters]

既存の VM サブネットに ACL を接続します。

Set-SCVMSubnet [–PortACL <NetworkAccessControlList> | -RemovePortACL] [rest of the parameters]

ポート ACL とルールの取得と表示

  1. VMM で PowerShell を開きます。
  2. ポート ACL を取得して表示するには、Get-SCPortACL コマンドレットを実行します。

     Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    
  3. ルールを取得して表示するには、Get-SCPortACLRule コマンドレットを実行します。

     Get-SCPortACLRule [-Name <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-PortACL <PortACL> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>] 
    

パラメーター

パラメーター詳細
パラメーターなしすべての ACL を取得します。
Name/ID名前または GUID によって取得します。
OnBehalfOfUser/OnBehalfOfUserRoleユーザー名またはロールを使用して実行します。
VMMServer特定の VMM サーバー上の ACL を取得します。
CommonParameters詳細情報

特定の ACL を取得します。

    PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"

特定の ACL のルールを取得します。

    PS: C:> Get-SCPortACLRule -Name "AllowRDPAccess"

ACL のすべてのルールを取得します。

    PS: C:> Get-SCPortACLRule -PortACL $portACL

ポート ACL とルールの変更

  1. VMM で PowerShell を開きます。
  2. ポート ACL を変更するには、Set-SCPortACL コマンドレットを実行します。

     Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
    
  3. ACL を削除するには、Remove-SCPortACL を実行します。

     Remove-SCPortACL [-PortACL] <PortACL> [-Confirm] [-JobVariable <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [-WhatIf] [<CommonParameters>]
    

    パラメーター

パラメーター詳細
Name/Descriptionポート ACL の名前と説明です。
JobVariableジョブの進行状況を格納します。
OnBehalfOfUser/OnBehalfOfUserRoleユーザー名またはロールを使用して実行します。
PROTipIDアクションをトリガーした ProTip の ID。
RunAsynchronouslyジョブが非同期的に実行されるかどうかを指定します。
確認ジョブを実行する前に確認を求めます。
WhatIfコマンドを実行せず結果を示します。

ACL の説明を設定します。

PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Set-SCPortACL -PortACL $portACL -Description "Port ACL Example Non Managed by Network Controller"

最初のコマンドレットは ACL を取得し、2 つ目は ACL に説明を設定します。

ACL を削除します。

PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Remove-SCPortACL -PortACL $portACL

最初のコマンドレットは ACL を取得し、2 つ目は ACL を削除します。

© 2017 Microsoft