App Service 環境からバックエンド リソースに安全に接続するConnect securely to back end resources from an App Service environment

App Service 環境は常に Azure Resource Manager 仮想ネットワーク または クラシック デプロイ モデル 仮想ネットワークいずれか に作成されるため、App Service 環境から他のバックエンド リソースへの送信接続は、仮想ネットワーク経由でのみ行うことができます。Since an App Service Environment is always created in either an Azure Resource Manager virtual network, or a classic deployment model virtual network, outbound connections from an App Service Environment to other backend resources can flow exclusively over the virtual network. 2016 年 6 月の時点で、ASE はパブリック アドレス範囲または RFC1918 アドレス空間 (プライベートアドレス) のいずれかを使用する仮想ネットワークにもデプロイすることができます。As of June 2016, ASEs can also be deployed into virtual networks that use either public address ranges or RFC1918 address spaces (private addresses).

たとえば、ポート 1433 がロックされている仮想マシンのクラスターで実行されている SQL Server がある場合があります。For example, there may be a SQL Server running on a cluster of virtual machines with port 1433 locked down. このエンドポイントは、同じ仮想ネットワークの他のリソースからのアクセスを許可する目的のみで使用されることがあります。The endpoint may be ACLd to only allow access from other resources on the same virtual network.

別の例として、機密性の高いエンドポイントがオンプレミスで実行されていて、サイト対サイト接続または Azure ExpressRoute 接続を使用して Azure に接続している場合があります。As another example, sensitive endpoints may run on-premises and be connected to Azure via either Site-to-Site or Azure ExpressRoute connections. その結果、サイト対サイトまたは ExpressRoute トンネルに接続されている仮想ネットワーク内のリソースのみがオンプレミスのエンドポイントにアクセスできます。As a result, only resources in virtual networks connected to the Site-to-Site or ExpressRoute tunnels may access on-premises endpoints.

これらのすべてのシナリオで、App Service Environment で実行中のアプリが、さまざまなサーバーとリソースに安全に接続できます。For all of these scenarios, apps running on an App Service Environment may securely connect to the various servers and resources. 送信トラフィックが、App Service Environment で実行されているアプリから、同じ仮想ネットワーク内または同じ仮想ネットワークに接続されているプライベート エンドポイントへの場合、仮想ネットワーク経由でのみ送信されます。If outbound traffic from apps runs in an App Service Environment to private endpoints in the same virtual network or connected to the same virtual network, it'll only flow over the virtual network. プライベート エンドポイントへの送信トラフィックがパブリック インターネット経由で送信されることはありません。Outbound traffic to private endpoints won't flow over the public Internet.

App Service Environment から仮想ネットワーク内のエンドポイントへの送信トラフィックには、問題が 1 つあります。One issue applies to outbound traffic from an App Service Environment to endpoints within a virtual network. App Service Environment から、App Service Environment と 同じ サブネットにある仮想マシンのエンドポイントに到達することはできません。App Service Environments can't reach endpoints of virtual machines that are located in the same subnet as the App Service Environment. App Service Environment が、App Service Environment 専用として予約されているサブネットにデプロイされている場合、通常、これは問題にはなりません。This limitation normally shouldn't be a problem, if App Service Environments are deployed into a subnet that's reserved for use exclusively by the App Service Environment.

注意

この記事は、Web アプリについて言及していますが、API アプリとモバイル アプリにも適用されます。Although this article refers to web apps, it also applies to API apps and mobile apps.

発信接続と DNS の要件Outbound Connectivity and DNS Requirements

App Service Environment が正常に機能するためには、さまざまなエンドポイントへの発信アクセスが必要となります。For an App Service Environment to function properly, it requires outbound access to various endpoints. ExpressRoute を使用した環境のネットワーク構成 の記事の「必要なネットワーク接続」というセクションに、App Service Environment で使用されるすべての外部エンドポイントが掲載されています。A full list of the external endpoints used by an ASE is in the "Required Network Connectivity" section of the Network Configuration for ExpressRoute article.

App Service Environment では、仮想ネットワーク用に構成された有効な DNS インフラストラクチャが必要です。App Service Environments require a valid DNS infrastructure configured for the virtual network. App Service Environment の作成後に DNS の構成が変更された場合、開発者は App Service Environment に、新しい DNS 構成の選択を強制できます。If the DNS configuration is changed after the creation of an App Service Environment, developers can force an App Service Environment to pick up the new DNS configuration. ポータルの App Service Environment の管理ブレードの上部にある [再起動] アイコンを使用して、ローリングする環境の再起動をトリガーします。これにより、環境で新しい DNS 構成が選択されます。At the top of the App Service Environment management blade in the portal, select the Restart icon to trigger a rolling environment reboot, which causes the environment to pick up the new DNS configuration.

また、App Service Environment を作成する前に、VNet 上のカスタム DNS サーバーを設定しておくことをお勧めします。It's also recommended that any custom DNS servers on the vnet be set up ahead of time before creating an App Service Environment. App Service Environment の作成中に仮想ネットワークの DNS 構成が変更されると、App Service Environment の作成プロセスは失敗します。If a virtual network's DNS configuration is changed during the creation of an App Service Environment, that will result in the App Service Environment creation process failing. VPN ゲートウェイのもう一方の端に、到達不能または使用できないカスタム DNS サーバーがある場合、App Service Environment の作成プロセスも失敗します。On the other end of a VPN gateway, if there's a custom DNS server that's unreachable or unavailable, the App Service Environment creation process will also fail.

SQL Server への接続Connecting to a SQL Server

SQL Server の構成には一般的に、ポート 1433 でリッスンしているエンドポイントがあります。A common SQL Server configuration has an endpoint listening on port 1433:

SQL Server エンドポイント

このエンドポイントへのトラフィックを制限する方法は 2 つあります。There are two approaches for restricting traffic to this endpoint:

ネットワーク ACL でのアクセスの制限Restricting Access With a Network ACL

ポート 1433 は、ネットワーク アクセス制御リストを使用して保護できます。Port 1433 can be secured using a network access control list. 次の例では、仮想ネットワーク内から送信されたクライアント アドレスを割り当てアクセス許可に追加し、他のすべてのクライアントへのアクセスをブロックします。The example below adds to assignment permissions the client addresses originating from within a virtual network, and blocks access to all other clients.

ネットワーク アクセス制御リストの例

SQL Server と同じ仮想ネットワーク内の App Service Environment で実行されるアプリケーションは、SQL Server インスタンスに接続できます。Any applications that run in App Service Environment, in the same virtual network as the SQL Server, may connect to the SQL Server instance. SQL Server 仮想マシンに VNet 内部 IP アドレスを使用します。Use the VNet internal IP address for the SQL Server virtual machine.

次の例の接続文字列は、プライベート IP アドレスを使用して SQL Server を参照します。The example connection string below references the SQL Server using its private IP address.

Server=tcp:10.0.1.6;Database=MyDatabase;User ID=MyUser;Password=PasswordHere;provider=System.Data.SqlClient

仮想マシンにはパブリック エンドポイントもありますが、ネットワーク ACL によって、パブリック IP アドレスを使用する接続の試行は拒否されます。Although the virtual machine has a public endpoint as well, connection attempts to use the public IP address will be rejected because of the network ACL.

ネットワーク セキュリティ グループを使用したアクセスの制限Restricting Access With a Network Security Group

アクセスを保護する方法にはほかに、ネットワーク セキュリティ グループを使用する方法があります。An alternative approach for securing access is with a network security group. ネットワーク セキュリティ グループは、個々の仮想マシン、または仮想マシンを含むサブネットに適用できます。Network security groups can be applied to individual virtual machines, or to a subnet containing virtual machines.

まず、ネットワーク セキュリティ グループを作成する必要があります。First, you'll need to create a network security group:

New-AzureNetworkSecurityGroup -Name "testNSGexample" -Location "South Central US" -Label "Example network security group for an app service environment"

ネットワーク セキュリティ グループを使用すると、アクセスを VNet の内部トラフィックのみに簡単に制限することができます。Restricting access to only VNet internal traffic is simple with a network security group. ネットワーク セキュリティ グループの既定の規則では、同じ仮想ネットワーク内の他のネットワーク クライアントからのアクセスのみが許可されます。The default rules in a network security group only allow access from other network clients in the same virtual network.

その結果、SQL Server へのアクセスを簡単にロックできます。As a result, locking down access to SQL Server is simple. 既定の規則を持つネットワーク セキュリティ グループを、SQL Server を実行している仮想マシン、または仮想マシンを含むサブネットのいずれかに適用するだけです。Just apply a network security group with its default rules to either the virtual machines running SQL Server, or the subnet containing the virtual machines.

次の例では、ネットワーク セキュリティ グループを、このグループを含むサブネットに適用します。The sample below applies a network security group to the containing subnet:

Get-AzureNetworkSecurityGroup -Name "testNSGExample" | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName 'testVNet' -SubnetName 'Subnet-1'

最終的な結果は、VNet 内部のアクセスを許可し、外部アクセスをブロックするセキュリティの規則のセットになります。The final result is a set of security rules that block external access, while allowing VNet internal access:

既定のネットワーク セキュリティ グループ

作業の開始Getting started

App Service Environment の使用を開始するには、「 App Service Environment の概要To get started with App Service Environments, see Introduction to App Service Environment

App Service Environment への着信トラフィックを制御する方法の詳細については、App Service Environment への着信トラフィックの制御に関するページを参照してください。For details around controlling inbound traffic to your App Service Environment, see Controlling inbound traffic to an App Service Environment

注意

Azure アカウントにサインアップする前に Azure App Service の使用を開始したい場合は、「Azure App Service アプリケーションの作成」を参照してください。そこでは、App Service で有効期間の短いスターター Web アプリをすぐに作成できます。If you want to get started with Azure App Service before signing up for an Azure account, go to Try App Service, where you can immediately create a short-lived starter web app in App Service. このサービスの利用にあたり、クレジット カードは必要ありません。契約も必要ありません。No credit cards required; no commitments.