Azure 仮想ネットワークに Cloud Shell をデプロイするDeploy Cloud Shell into an Azure virtual network

注意

この機能はパブリック プレビュー段階です。This functionality is in public preview.

通常の Cloud Shell セッションは、リソースとは別の Microsoft ネットワーク内のコンテナーで実行されます。A regular Cloud Shell session runs in a container in a Microsoft network separate from your resources. これは、コンテナー内で実行されているコマンドが、特定の仮想ネットワークからのみアクセスできるリソースにアクセスできないことを意味します。This means that commands running inside the container cannot access resources that can only be accessed from a specific virtual network. たとえば、SSH を使用して、Cloud Shell からプライベート IP アドレスのみを持つ仮想マシンに接続したり、kubectl を使用して、アクセスがロックダウンされた Kubernetes クラスターに接続したりすることはできません。For example, you cannot use SSH to connect from Cloud Shell to a virtual machine that only has a private IP address, or use kubectl to connect to a Kubernetes cluster which has locked down access.

このオプションの機能は、これらの制限事項に対応しており、管理対象の Azure 仮想ネットワークに Cloud Shell をデプロイすることができます。This optional feature addresses these limitations and allows you to deploy Cloud Shell into an Azure virtual network that you control. そこから、コンテナーと、選択した仮想ネットワーク内のリソースとのやりとりができます。From there, the container is able to interact with resources within the virtual network you select.

次の図は、このシナリオでデプロイおよび使用されるリソース アーキテクチャを示しています。Below you can see the resource architecture that will be deployed and used in this scenario.

Cloud Shell 分離 VNET アーキテクチャを示す図。

独自の Azure 仮想ネットワークで Cloud Shell を使用する前に、この機能をサポートするためにいくつかのリソースを作成する必要があります。Before you can use Cloud Shell in your own Azure Virtual Network, you will need to create several resources to support this functionality. この記事では、ARM テンプレートを使用して必要なリソースを設定する方法について説明します。This article shows how to set up the required resources using an ARM template.

注意

これらのリソースは、仮想ネットワークに対して一度だけ設定する必要があります。These resources only need to be set up once for the virtual network. その後、この仮想ネットワークへのアクセス権を持つすべての管理者が共有できます。They can then be shared by all administrators with access to the virtual network.

必要なネットワーク リソースRequired network resources

仮想ネットワークVirtual network

仮想ネットワークによって、1 つ以上のサブネットが作成されるアドレス空間が定義されます。A virtual network defines the address space in which one or more subnets are created.

Cloud Shell に使用する目的の仮想ネットワークを識別する必要があります。The desired virtual network to be used for Cloud Shell needs to be identified. これは通常、管理対象のリソースを含む既存の仮想ネットワーク、または自分のリソースを含むネットワークとピアリングされたネットワークです。This will usually be an existing virtual network that contains resources you would like to manage or a network that peers with networks that contain your resources.

SubnetSubnet

選択した仮想ネットワーク内で、Cloud Shell コンテナーに専用サブネットを使用する必要があります。Within the selected virtual network, a dedicated subnet must be used for Cloud Shell containers. このサブネットは Azure Container Instances (ACI) サービスに委任されます。This subnet is delegated to the Azure Container Instances (ACI) service. ユーザーが仮想ネットワーク内の Cloud Shell コンテナーを要求すると、Cloud Shell によって ACI が使用されて、この委任されたサブネット内にコンテナーが作成されます。When a user requests a Cloud Shell container in a virtual network, Cloud Shell uses ACI to create a container that is in this delegated subnet. このサブネット内に他のリソースを作成することはできません。No other resources can be created in this subnet.

ネットワーク プロファイルNetwork profile

ネットワーク プロファイルは、リソースの特定のネットワーク プロパティを指定する Azure リソースのネットワーク構成テンプレートです。A network profile is a network configuration template for Azure resources that specifies certain network properties for the resource.

Azure RelayAzure Relay

Azure Relay を使用すると、直接到達できない 2 つのエンドポイントが通信できるようになります。An Azure Relay allows two endpoints that are not directly reachable to communicate. この場合、これは管理者のブラウザーがプライベート ネットワーク内のコンテナーと通信できるようにするために使用されます。In this case, it is used to allow the administrator's browser to communicate with the container in the private network.

Cloud Shell に使用される Azure Relay インスタンスは、コンテナー リソースにアクセスできるネットワークを制御するように構成できます。The Azure Relay instance used for Cloud Shell can be configured to control which networks can access container resources:

  • パブリック インターネットからアクセス可能:この構成では、Cloud Shell は、外部から内部リソースに接続する手段を提供します。Accessible from the public internet: In this configuration, Cloud Shell provides a way to reach otherwise internal resources from outside.
  • 指定されたネットワークからアクセス可能:この構成では、管理者は、Cloud Shell を使用するために、適切なネットワークで実行されているコンピューターから Azure portal にアクセスする必要があります。Accessible from specified networks: In this configuration, administrators will have to access the Azure portal from a computer running in the appropriate network to be able to use Cloud Shell.

ストレージの要件Storage requirements

標準の Cloud Shell と同様に、仮想ネットワークで Cloud Shell を使用する場合は、ストレージ アカウントが必要です。As in standard Cloud Shell, a storage account is required while using Cloud Shell in a virtual network. 各管理者は、ファイルを格納するためのファイル共有を必要とします。Each administrator needs a file share to store their files. ストレージ アカウントは、Cloud Shell によって使用される仮想ネットワークからアクセスできる必要があります。The storage account needs to be accessible from the virtual network that is used by Cloud Shell.

仮想ネットワークのデプロイに関する制限事項Virtual network deployment limitations

  • 追加のネットワーク リソースが関係しているため、通常、仮想ネットワークで Cloud Shell を開始するには、標準の Cloud Shell セッションよりも時間がかかります。Due to the additional networking resources involved, starting Cloud Shell in a virtual network is typically slower than a standard Cloud Shell session.

  • プレビュー期間中は、仮想ネットワーク内の Cloud Shell でサポートされるリージョンが少なくなっています。During the preview, fewer regions are supported for Cloud Shell in a virtual network. 現時点では、次のものに制限されています。WestUS と WestCentralUS。This is currently limited to: WestUS and WestCentralUS.

  • Azure Relay は無料のサービスではありません。価格をご確認ください。Azure Relay is not a free service, please view their pricing. Cloud Shell シナリオでは、Cloud Shell を使用している間、管理者ごとに 1 つのハイブリッド接続が使用されます。In the Cloud Shell scenario, one hybrid connection is used for each administrator while they are using Cloud Shell. Cloud Shell セッションが完了すると、接続は自動的にシャットダウンされます。The connection will automatically be shut down after the Cloud Shell session is complete.

リソース プロバイダーの登録Register the resource provider

使用する仮想ネットワークが保持されているサブスクリプションに、Microsoft.ContainerInstances リソース プロバイダーを登録する必要があります。The Microsoft.ContainerInstances resource provider needs to be registered in the subscription that holds the virtual network you want to use. Set-AzContext -Subscription {subscriptionName} で適切なサブスクリプションを選択し、次を実行します。Select the appropriate subscription with Set-AzContext -Subscription {subscriptionName}, and then run:

PS> Get-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance | select ResourceTypes,RegistrationState

ResourceTypes                             RegistrationState
-------------                             -----------------
{containerGroups}                         Registered
...

RegistrationStateRegistered の場合は、アクションは必要ありません。If RegistrationState is Registered, no action is required. NotRegistered の場合は、Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance を実行します。If it is NotRegistered, run Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance.

ネットワーク リソースをデプロイするDeploy network resources

リソース グループと仮想ネットワークを作成するCreate a resource group and virtual network

必要な VNET が既に接続されている場合は、このセクションをスキップします。If you already have a desired VNET that you would like to connect to, skip this section.

Azure portal で、または Azure CLI や Azure PowerShell などを使用して、リソース グループと、その新しいリソース グループ内に仮想ネットワークを作成します。リソース グループと仮想ネットワークは同じリージョンに存在する必要がありますIn the Azure portal, or using Azure CLI, Azure PowerShell, etc. create a resource group and a virtual network in the new resource group, the resource group and virtual network need to be in the same region.

注意

パブリック プレビューの段階は、リソース グループと仮想ネットワークが WestCentralUS または WestUS のいずれかに配置されている必要があります。While in public preview, the resource group and virtual network must be located in either WestCentralUS or WestUS.

ARM テンプレートARM templates

Azure クイックスタート テンプレートを利用して仮想ネットワーク内に Cloud Shell リソースを作成し、Azure クイックスタート テンプレートを使用して必要なストレージを作成します。Utilize the Azure Quickstart Template for creating Cloud Shell resources in a virtual network, and the Azure Quickstart Template for creating necessary storage. リソース名 (主にファイル共有名) をメモしておきます。Take note of your resource names, primarily your file share name.

リレー ファイアウォールを開くOpen relay firewall

上記のテンプレートを使用して作成されたリレーに移動し、設定で [ネットワーク] を選択して、ブラウザー ネットワークからリレーへのアクセスを許可します。Navigate to the relay created using the above template, select "Networking" in settings, allow access from your browser network to the relay. 既定では、リレーにアクセスできるのは、リレーが作成された仮想ネットワークからのみです。By default the relay is only accessible from the virtual network it has been created in.

仮想ネットワークを使用するように Cloud Shell を構成するConfiguring Cloud Shell to use a virtual network.

注意

各管理者が Cloud Shell を使用するには、この手順が完了している必要があります。This step must be completed for each administrator will use Cloud Shell.

上記の手順を完了したら、Azure portal または https://shell.azure.com の Cloud Shell に移動します。After deploying completing the above steps, navigate to Cloud Shell in the Azure portal or on https://shell.azure.com. これらのエクスペリエンスのいずれかを、分離 Cloud Shell エクスペリエンスに接続するたびに使用する必要があります。One of these experiences must be used each time you want to connect to an isolated Cloud Shell experience.

注意

過去に Cloud Shell が使用されている場合は、既存の clouddrive をマウント解除する必要があります。If Cloud Shell has been used in the past, the existing clouddrive must be unmounted. これを行うには、アクティブな Cloud Shell セッションから clouddrive unmount を実行し、ページを更新します。To do this run clouddrive unmount from an active Cloud Shell session, refresh your page.

Cloud Shell に接続すると、最初の実行エクスペリエンスを示す画面が表示されます。Connect to Cloud Shell, you will be prompted with the first run experience. 目的のシェル エクスペリエンスを選択し、[高度な設定を表示する] を選択して、[Show VNET isolation settings](VNET の分離設定を表示する) チェックボックスをオンにします。Select your preferred shell experience, select "Show advanced settings" and select the "Show VNET isolation settings" box. ポップアップのフィールドに入力します。Fill in the fields in the pop-up. ほとんどのフィールドは、仮想ネットワーク内の Cloud Shell に関連付けることができる使用可能なリソースにオートコンプリートされます。Most fields will autofill to the available resources that can be associated with Cloud Shell in a virtual network. ファイル共有名は、ユーザーが入力する必要があります。The File Share name will have to be filled in by the user.

Cloud Shell 分離 VNET の最初のエクスペリエンス設定を示す図。

次のステップNext steps

Azure 仮想ネットワークについてLearn about Azure Virtual Networks