クイックスタート テンプレートを使用して仮想ネットワークに Cloud Shell をデプロイする

クイックスタート テンプレートを実行して仮想ネットワーク (VNet) に Azure Cloud Shell をデプロイする前に、いくつかの前提条件を満たす必要があります。 サブスクリプションの所有者ロールの割り当てが必要です。 ロールを表示して割り当てるには、「サブスクリプションの所有者一を覧表示する」を参照してください。

この記事では、仮想ネットワークに Cloud Shell を構成してデプロイするための次の手順について説明します。

  1. リソース プロバイダーを登録します。
  2. 必要な情報を収集します。
  3. Azure Cloud Shell - VNet Azure Resource Manager テンプレート (ARM テンプレート) を使用して仮想ネットワークを作成します。
  4. Azure Cloud Shell - VNet ストレージ ARM テンプレートを使用して仮想ネットワーク ストレージ アカウントを作成します。
  5. 仮想ネットワークで Cloud Shell を構成して使用します。

1.リソース プロバイダーを登録する

Cloud Shell では、特定の Azure リソースにアクセスする必要があります。 そのアクセスは、リソース プロバイダーを通じて利用できるようになります。 次のリソース プロバイダーをサブスクリプションに登録する必要があります。

  • Microsoft.CloudShell
  • Microsoft.ContainerInstance
  • Microsoft.Relay

テナントの作成時によっては、これらのプロバイダーの一部が既に登録されている場合があります。

すべてのリソース プロバイダー、およびサブスクリプションの登録状態を表示するには、以下を実行します。

  1. Azure portal にサインインします。
  2. Azure portal のメニューでサブスクリプションを検索します。 使用可能なオプションから、それを選択します。
  3. 表示するサブスクリプションを選択します。
  4. 左側のメニューの [設定] で、 [リソース プロバイダー] を選択します。
  5. 検索ボックスに「cloudshell」と入力して、リソース プロバイダーを検索します。
  6. プロバイダーの一覧から Microsoft.CloudShell リソース プロバイダーを選択します。
  7. [登録] を選択して、状態を [登録解除] から [登録済み] に変更します。
  8. Microsoft.ContainerInstanceMicrosoft.Relay リソース プロバイダーに対して、前の手順を繰り返します。

Azure portal でリソース プロバイダーを選択する画面のスクリーンショット。

2.必要な情報を収集する

Cloud Shell をデプロイする前に、いくつかの情報を収集する必要があります。

既定の Cloud Shell インスタンスを使用して、必要な情報を収集し、必要なリソースを作成できます。 Cloud Shell 仮想ネットワークデプロイ用の専用リソースを作成する必要があります。 すべてのリソースが同じ Azure リージョンにあり、同じリソース グループに含まれている必要があります。

次の値を入力します。

  • サブスクリプション: Cloud Shell 仮想ネットワークデプロイのリソース グループを含むサブスクリプションの名前。
  • リソース グループ: Cloud Shell 仮想ネットワーク デプロイのリソース グループの名前。
  • リージョン: リソース グループの場所。
  • 仮想ネットワーク: Cloud Shell 仮想ネットワークの名前。
  • サブネット アドレスの範囲 - このデプロイでは 3 つのサブネットが作成されます。 各サブネットのアドレスの範囲を計画する必要があります。
    • コンテナー サブネット - 使用することが予想される同時セッション数をサポートするのに十分な IP アドレスが必要です。
    • リレー サブネット - リレー サブネットには少なくとも 1 つの IP アドレスが必要です。
    • ストレージ サブネット名 - 使用することが予想される同時セッション数をサポートするのに十分な IP アドレスが必要です。
  • Azure Container Instance OID: リソース グループの Azure Container Instance の ID。
  • Azure Relay 名前空間: テンプレートで作成した Azure Relay リソースに割り当てる名前。

リソース グループを作成する

リソース グループは、Azure portal、Azure CLI、または Azure PowerShell を使用して作成できます。 詳細については、次の記事を参照してください。

仮想ネットワークの作成

仮想ネットワークは、Azure portal、Azure CLI、または Azure PowerShell を使用して作成できます。 詳細については、次の記事を参照してください。

Note

Cloud Shell サブネットのコンテナー サブネット アドレス プレフィックスを設定する場合は、同時に実行する必要がある Cloud Shell セッションの数を考慮することが重要です。 Cloud Shell セッションの数がコンテナー サブネット内で使用できる IP アドレス数を超えた場合、それらのセッションのユーザーは Cloud Shell に接続できません。 特定のニーズに応じて、コンテナー サブネットの範囲を広げてください。 詳しくは、「仮想ネットワーク サブネットの追加、変更、削除」の「サブネット設定の変更」セクションをご覧ください。

Azure Container Instance ID を取得する

Azure Container Instance ID は、テナントごとに一意の値です。 Cloud Shell の仮想ネットワークを 構成するには、クイック スタート テンプレートでこの識別子を使用します。 コマンド ラインから ID を取得するには、「Azure Container Instance ID を取得する別の方法」を参照してください。

  1. Azure portal にサインインします。 ホーム ページで、Microsoft Entra ID を選択します。 アイコンが表示されない場合は、上部の検索バーに Microsoft Entra ID と入力します。

  2. 左側のメニューで [概要] を選択します。 次に、検索バーに azure container instance service と入力します。

    Azure Container Instance Service の検索画面のスクリーンショット。

  3. [エンタープライズ アプリケーション] の結果で、Azure Container Instance Service を選択します。

  4. Azure Container Instance Service[概要] ページで、プロパティとして一覧表示されているオブジェクト ID 値を検索します。

    この ID は、仮想ネットワークのクイックスタート テンプレートで使用します。

    Azure Container Instance Service の詳細を示すスクリーンショット。

3.ARM テンプレートを使用して必要なネットワーク リソースを作成する

Azure Cloud Shell - VNet テンプレートを使用して、仮想ネットワークに Cloud Shell リソースを作成します。 このテンプレートは、前に作成した仮想ネットワークの下に 3 つのサブネットを作成します。 サブネットの指定された名前を変更するか、既定値を使用するかを選択できます。

仮想ネットワークとサブネットには、有効な IP アドレスの割り当てが必要です。 Relay サブネットには少なくとも 1 つの IP アドレスが必要で、コンテナー サブネットには、使用する予定の同時セッション数をサポートするのに十分な IP アドレスが必要です。

ARM テンプレートには、前に作成したリソースに関する特定の情報と、新しいリソースの名前付け情報が必要です。 この情報は、フォームに事前入力された情報と共に入力されます。

テンプレートに必要な情報は次のとおりです。

  • サブスクリプション: Cloud Shell 仮想ネットワークのリソース グループを含むサブスクリプションの名前。
  • リソース グループ: 既存または新しく作成されたリソース グループの名前。
  • リージョン: リソース グループの場所。
  • 仮想ネットワーク: Cloud Shell 仮想ネットワークの名前。
  • ネットワーク セキュリティ グループ: テンプレートで作成したネットワーク セキュリティ グループ (NSG) に割り当てる名前。
  • Azure Container Instance OID: リソース グループの Azure Container Instance の ID。

フォームに次の情報を入力します。

プロジェクトの詳細
サブスクリプション 既定で現在のサブスクリプション コンテキストに設定されます。
この記事の例では、Contoso (carolb) を使用しています。
リソース グループ 前提条件の情報からリソース グループの名前を入力します。
この記事の例では、rg-cloudshell-eastus を使用しています。
インスタンスの詳細
リージョン 既定のリージョンが事前に入力されます。
この記事の例では、East US を使用しています。
既存の VNET の名前 収集した前提条件情報の値を入力します。
この記事の例では、vnet-cloudshell-eastus を使用しています。
Relay 名前空間名 テンプレートで作成した Relay リソースに割り当てる名前を作成します。
この記事の例では、arn-cloudshell-eastus を使用しています。
NSG 名 NSG の名前を入力します。 デプロイによってこの NSG が作成され、アクセス規則が割り当てられます。
Azure Container Instance OID 収集した前提条件情報の値を入力します。
この記事の例では、8fe7fd25-33fe-4f89-ade3-0e705fcf4370 を使用しています。
コンテナー サブネット名 既定値は cloudshellsubnet です。 コンテナーのサブネットの名前を入力します。
コンテナー サブネット アドレス プレフィックス この記事の例では、10.0.1.0/24 を使用します。これは、Cloud Shell インスタンスに 254 個の IP アドレスを提供します。
Relay サブネット名 既定値は relaysubnet です。 Relay を含むサブネットの名前を入力します。
Relay サブネット アドレス プレフィックス この記事の例では、10.0.2.0/24 を使用しています。
ストレージ サブネット名 既定値は storagesubnet です。 ストレージを含むサブネットの名前を入力します。
ストレージ サブネット アドレス プレフィックス この記事の例では、10.0.3.0/24 を使用しています。
プライベート エンドポイント名 既定値は cloudshellRelayEndpoint です。 コンテナーを含むサブネットの名前を入力します。
タグ名 既定値は {"Environment":"cloudshell"} です。 変更せずにそのままにしておくか、さらにタグを追加します。
場所 既定値は [resourceGroup().location] です。 変更せずにそのままにしておきます。

フォームへの入力が完了したら、[確認と作成] を選択し、ネットワーク ARM テンプレートをサブスクリプションにデプロイします。

4.ARM テンプレートを使用して仮想ネットワーク ストレージを作成する

Azure Cloud Shell - VNet ストレージ テンプレートを使用して、仮想ネットワークに Cloud Shell リソースを作成します。 このテンプレートで、ストレージ アカウントを作成してプライベート仮想ネットワークに割り当てます。

ARM テンプレートには、前に作成したリソースに関する特定の情報と、新しいリソースの名前付け情報が必要です。

テンプレートに必要な情報は次のとおりです。

  • サブスクリプション: Azure Cloud Shell 仮想ネットワークのリソース グループを含むサブスクリプションの名前。
  • リソース グループ: 既存または新しく作成されたリソース グループの名前。
  • リージョン: リソース グループの場所。
  • 既存の仮想ネットワーク名: 前に作成した仮想ネットワークの名前。
  • 既存のストレージ サブネット名: ネットワーク クイックスタート テンプレートを使用して作成したストレージ サブネットの名前。
  • 既存のコンテナー サブネット名: ネットワーク クイック スタート テンプレートを使用して作成したコンテナー サブネットの名前。

フォームに次の情報を入力します。

プロジェクトの詳細
サブスクリプション 既定で現在のサブスクリプション コンテキストに設定されます。
この記事の例では、Contoso (carolb) を使用しています。
リソース グループ 前提条件の情報からリソース グループの名前を入力します。
この記事の例では、rg-cloudshell-eastus を使用しています。
インスタンスの詳細
リージョン 既定のリージョンが事前に入力されます。
この記事の例では、East US を使用しています。
既存の VNET の名前 この記事の例では、vnet-cloudshell-eastus を使用しています。
既存のストレージ サブネット名 ネットワーク テンプレートで作成したリソースの名前を入力します。
既存のコンテナー サブネット名 ネットワーク テンプレートで作成したリソースの名前を入力します。
ストレージ アカウント名 新しいストレージ アカウントの名前を作成します。
この記事の例では、myvnetstorage1138 を使用しています。
ファイル共有名 既定値は acsshare です。 作成するファイル共有の名前を入力します。
リソース タグ 既定値は {"Environment":"cloudshell"} です。 変更せずにそのままにしておくか、さらにタグを追加します。
場所 既定値は [resourceGroup().location] です。 変更せずにそのままにしておきます。

フォームへの入力が完了したら、[確認と作成] を選択し、ネットワーク ARM テンプレートをサブスクリプションにデプロイします。

5.仮想ネットワークを使用するように Cloud Shell を構成する

プライベート Cloud Shell インスタンスをデプロイした後、各 Cloud Shell ユーザーは、新しいプライベート インスタンスを使用するように構成を変更する必要があります。

プライベート インスタンスをデプロイする前に既定の Cloud Shell インスタンスを使用していた場合は、ユーザー設定をリセットする必要があります。

  1. Cloud Shell を開きます。
  2. メニュー バー (歯車アイコン) から [Cloud Shell settings](Cloud Shell 設定) を選択します。
  3. [ユーザー設定のリセット] を選択し、その後 [リセット] を選択します。

ユーザー設定をリセットすると、次回 Cloud Shell を起動するときに初回のユーザー エクスペリエンスがトリガーされます。

Cloud Shell のストレージ ダイアログのスクリーンショット。

  1. 使用するシェル エクスペリエンスを選択します (Bash または PowerShell)。

  2. [詳細設定の表示] を選択します。

  3. [Show VNET isolation settings](VNET の分離設定を表示する) チェック ボックスをオンにします。

  4. プライベート Cloud Shell インスタンスを含むサブスクリプションを選択します。

  5. プライベート Cloud Shell インスタンスを含むリージョンを選択します。

  6. リソース グループで、プライベート Cloud Shell インスタンスを含むリソース グループを選択します。

    正しいリソース グループを選択した場合は、[仮想ネットワーク][ネットワーク プロファイル]、および [リレー名前空間] に正しい値が自動的に設定されます。

  7. ファイル共有 には、ストレージ テンプレートを使用して作成したファイル共有の名前を入力します。

  8. [Create storage](ストレージの作成) を選択します。

Azure Container Instance ID を取得する別の方法

Azure PowerShell がインストールされている場合は、次のコマンドを使用して Azure Container Instance ID を取得できます。

(Get-AzADServicePrincipal -DisplayNameBeginsWith 'Azure Container Instance').Id
d5f227bb-ffa6-4463-a696-7234626df63f

Azure CLI がインストールされている場合は、次のコマンドを使用して Azure Container Instance ID を取得できます。

az ad sp list --display-name 'Azure Container Instance' --query "[].id"
[
  "d5f227bb-ffa6-4463-a696-7234626df63f"
]

次のステップ

新しいプライベート Cloud Shell インスタンスを使用する必要があるユーザーごとに、Cloud Shell 構成手順を完了する必要があります。