Azure Cloud Shell に関してよくあるご質問 (FAQ)

この記事では、よくある質問にお答えし、Cloud Shell の問題のトラブルシューティング方法について説明します。

ブラウザーのサポート

Cloud Shell では、以下のブラウザーの最新バージョンがサポートされます。

  • Microsoft Edge
  • Google Chrome
  • Mozilla Firefox
  • Apple Safari
    • プライベート モードの Safari はサポートされていません。

コピーと貼り付け

コピーと貼り付けに使われるキーは、オペレーティング システムとブラウザーによって異なります。 次に示すのは、最も一般的なキーの組み合わせです。

  • Windows: コピー: Ctrl+C、貼り付け: Crrl+Shift+V または Shift+Insert
    • Firefox ではクリップボードのアクセス許可が正しくサポートされない場合があります。
  • macOS: Cmd+C によるコピーと、Cmd+V によるペーストがサポートされています。
  • Linux: コピーする場合は Ctrl+c、貼り付ける場合は Ctrl+Shift+v

Note

Ctrl+C キーを押してもテキストが選択されない場合、Cloud Shell からシェルに Ctrl-c 文字が送信されます。 シェルは、Ctrl-c中断シグナルと解釈して、現在実行中のコマンドを終了する場合があります。

よく寄せられる質問

Cloud Shell のセッションに時間制限はありますか?

Cloud Shell は対話型のユース ケースを想定しています。 Cloud Shell セッションは、無操作状態で 20 分経過するとタイムアウトとなります。 そのため、実行時間の長い非対話型セッションは、警告なしで終了します。

Cloud Shell は、Azure 環境を管理するための無料サービスです。 汎用のコンピューティング プラットフォームではありません。 過剰な使用は、Azure サービス使用条件の違反と見なされ、Cloud Shell へのアクセスがブロックされる可能性があります。

同時にいくつのセッションを開くことができますか?

Azure Cloud Shell のテナントあたりの同時ユーザー数は 20 人に制限されています。 20 を超える同時セッションを開くと、[Tenant User Over Quota](テナント ユーザーのクォータ超過) エラーが発生します。 トレーニング セッションなど、20 より多くのセッションを開く正当な必要性がある場合は、使用予定日より前にサポートに連絡して、クォータの引き上げを要求してください。

Cloud Shell でファイルをいくつか作りましたが、なくなってしまいました。 何が起きたのか?

Cloud Shell セッションを提供するマシンは一時的なものであり、セッションが 20 分間非アクティブ状態になると、リサイクルされます。

Cloud Shell の初回起動時に、ストレージ オプションの選択を求められました。

  • [ストレージ アカウントのマウント] オプションを選択した場合、Cloud Shell はセッション内の clouddrive フォルダーに Azure ファイル共有をマウントします。 clouddrive フォルダーに保存されているファイルは、ストレージ ブラウザーを使って Azure portal で見ることができます。 clouddrive フォルダーに保存されているファイルは、セッション間で保持されます。

  • [ストレージ アカウント不要] オプションを選択した場合は、$HOME フォルダーにはファイルの書き込みのみが可能です。

どちらのシナリオでも、$HOME フォルダーにファイルを書き込むことができます。 ただし、$HOME フォルダーは、現在使用している Cloud Shell コンテナー イメージにのみ存在します。 $HOME フォルダー内のファイルはストレージ ブラウザーに表示されず、セッションの終了時に削除されます。

Azure: ドライブにファイルを作成しましたが、見ることができません。 何が起きたのか?

Cloud Shell は、Azure リソース データをファイル システム ドライブとして表示する Azure 用の PowerShell プロバイダーを読み込みます。 PowerShell ユーザーは、Azure: ドライブを使って Azure リソースにアクセスできます。 Azure: ドライブは仮想ドライブであり、ユーザーはファイルを作成できません。

現在の場所が Azure: ドライブである間に vimnano などの他のツールを使って作成した新しいファイルは、$HOME フォルダーに保存されます。

sudo が必要なツールを Cloud Shell にインストールしようとしています。 これは可能か。

不正解です。 Cloud Shell でのユーザー アカウントは、特権のないアカウントです。 sudo を使ったり、昇格されたアクセス許可を必要とするコマンドを実行したりすることはできません。

エラーをトラブルシューティングする

ストレージ ダイアログ - エラー: 403 RequestDisallowedByPolicy

  • 詳細: 最初のユーザー用の Cloud Shell ストレージ アカウントを作成するとき、管理者によって設定された Azure Policy の割り当てが原因で失敗します。エラー メッセージには以下が含まれています。

    The resource action 'Microsoft.Storage/storageAccounts/write' is disallowed by
    one or more policies.
    
  • 解決方法:Azure 管理者に連絡して、ストレージの作成を拒否している Azure Policy 割り当てを削除または更新してもらいます。

ストレージ ダイアログ - エラー: 400 DisallowedOperation

  • 詳細: Microsoft Entra サブスクリプションを使用しているときは、Cloud Shell ストレージ アカウントを作成できません。
  • 解決策: Microsoft Entra ID サブスクリプションでは、Azure リソースを作成できません。 ストレージ リソースを作成できる Azure サブスクリプションを使ってください。

ターミナルの出力 - エラー: ターミナルに接続できませんでした

  • [詳細] :Cloud Shell では、Cloud Shell インフラストラクチャへの WebSocket 接続を確立できる必要があります。
  • 解決策: ネットワークで、次のドメインへの HTTPS 要求と Websocket 要求の送信が許可されていることを確認します。
    • *.console.azure.com
    • *.servicebus.windows.net
    • *.servicebus.usgovcloudapi.net (Azure Government クラウドの場合)

ターミナルを要求できませんでした - プライベート DNS リゾルバーを使用するネットワークからの Cloud Shell へのアクセス

  • 詳細: Cloud Shell はターミナル接続に Azure Relay を使用します。 DNS 解決の問題により、Cloud Shell はターミナルの要求に失敗する場合があります。 このエラーは、servicebus ドメイン用のプライベート DNS ゾーンがあるネットワーク内のホストから Cloud Shell セッションを起動するときに発生する可能性があります。 このエラーは、プライベート オンプレミス DNS サーバーを使っている場合にも発生する可能性があります。

  • 解決策: Cloud Shell が使用する Azure Relay インスタンスの DNS レコードを追加できます。

    以下の手順は、Cloud Shell インスタンスの DNS 名を特定する方法と、その名前の DNS レコードを作成する方法を示します。

    1. Web ブラウザーを使用して Cloud Shell を起動してみてください。 ブラウザーの開発者ツールを使用して、Azure Relay インスタンス名を見つけます。 Microsoft Edge または Google Chrome で、F12 キーを押して開発者ツールを開きます。 [ネットワーク] タブを選択します。右上隅にある [検索] ボックスを見つけます。 terminals? を検索して Cloud Shell ターミナルの要求を見つけます。 検索で見つかった要求エントリのいずれかを選択します。 [ヘッダー] タブで [要求 URL] 内のホスト名を見つけます。 ccon-prod-<region-name>-aci-XX.servicebus.windows.net のような名前です。 Azure Government クラウドの場合、ホスト名は servicebus.usgovcloudapi.net で終わります。

      次のスクリーンショットは、ターミナルに対する要求が成功した場合の Microsoft Edge の開発者ツールを示しています。 ホスト名は ccon-prod-southcentalus-aci-02.servicebus.windows.net です。 この場合、要求は失敗するはずですが、解決する必要があるホスト名は見つかります。

      ブラウザーの開発者ツールのスクリーンショット。

      他のブラウザーで開発者ツールにアクセスする方法については、「トラブルシューティングのためにブラウザー トレースをキャプチャする」をご覧ください。

    2. プライベート ネットワークの外部にあるホストから nslookup コマンドを実行して、前の手順で見つけたホスト名の IP アドレスを見つけます。

      nslookup ccon-prod-southcentalus-aci-02.servicebus.windows.net
      

      結果は次の例のようになります。

      Server:         168.63.129.16
      Address:        168.63.129.16
      
      Non-authoritative answer:
      ccon-prod-southcentralus-aci-02.servicebus.windows.net  canonical name = ns-sb2-prod-sn3-012.cloudapp.net.
      Name:   ns-sb2-prod-sn3-012.cloudapp.net
      Address: 40.84.152.91
      
    3. プライベート ネットワークのプライベート DNS ゾーン内のパブリック IP に対する A レコードを追加します。 この例では、DNS レコードには次のプロパティがあります。

      • 名前: ccon-prod-southcentralus-aci-02
      • タイプ: A
      • TTL: 1 時間
      • IP アドレス: 40.84.152.91

      プライベート DNS ゾーンに DNS レコードを作成する方法の詳細については、Azure DNS を使用した DNS レコード セットとレコードの管理に関する記事を参照してください。

      Note

      この IP アドレスは、定期的に変更される可能性があります。 このプロセスを繰り返して、新しい IP アドレスを検出することが必要な場合があります。

    代わりに、独自のプライベート Cloud Shell インスタンスをデプロイすることもできます。 詳しくは、仮想ネットワークでの Cloud Shell のデプロイに関する記事をご覧ください。

ターミナル出力 - Cloud Shell のプロビジョニングに失敗しました: {"code":"TenantDisabled" ...}

  • 詳細: まれに、Cloud Shell からの通常とは異なるリソース消費が、Azure で不正なアクティビティとしてフラグが設定される場合があります。 これが発生すると、Azure で Cloud Shell がテナント レベルで無効にされ、次のエラー メッセージが表示されます。

    Cloud Shell のプロビジョニングに失敗しました: {"code":"TenantDisabled","message":"Cloud Shell has disabled in directory<>."} ページを更新してください。

    Azure Cloud Shell インスタンスの CPU 使用量が、不正防止をトリガーしてテナントをブロックするしきい値を超える、正当なユース ケースが存在する可能性があります。 大規模な AZCopy ジョブがこのイベントの原因である可能性があります。 Microsoft Azure エンジニアリング チームが、テナントが無効になった理由を明らかにし、再度有効にするのを支援します。

  • 解決策: 原因を調査し、テナントの Cloud Shell を再度有効にするには、新しい Azure サポート リクエストを開きます。 次の詳細を記載してください。

    1. テナント ID
    2. ビジネス上の正当な理由と、Cloud Shell の用途の説明。

Cloud Shell の管理

個人データを管理する

Microsoft Azure では、個人データが慎重に扱われます。 Azure Cloud Shell サービスには、ユーザーの Cloud Shell ストレージとターミナルの設定に関する情報が格納されます。 この情報は、次のいずれかの例を使って表示できます。

  • bash コマンド プロンプトで、次のコマンドを実行します。

    URL="https://management.azure.com/providers/Microsoft.Portal/usersettings/cloudconsole?api-version=2017-12-01-preview"
    az rest --method get --url $URL
    
  • PowerShell コマンド プロンプトで、次のコマンドを実行します。

    $invokeAzRestMethodSplat = @{
        Uri    = 'https://management.azure.com/providers/Microsoft.Portal/usersettings/cloudconsole?api-version=2017-12-01-preview'
        Method = 'GET'
    }
    $userdata = (Invoke-AzRestMethod @invokeAzRestMethodSplat).Content
    ($userdata | ConvertFrom-Json).properties | Format-List
    

この個人データは、ユーザー設定をリセットすることで削除できます。 ユーザー設定をリセットすると、現在のセッションが終了し、リンクされたストレージ アカウントがマウント解除されます。 Cloud Shell によって使われる Azure ファイル共有は削除されません。

Cloud Shell に再接続すると、ストレージ アカウントをアタッチするように求められます。 新しいストレージ アカウントを作成することも、以前に使用した既存のストレージ アカウントをアタッチし直すこともできます。

ユーザー設定を削除するには、次の手順のようにします。

  1. Cloud Shell を起動します。
  2. Cloud Shell のツール バーの [設定] メニュー (歯車アイコン) を選びます。
  3. メニューから [ユーザー設定のリセット] を選びます。
  4. [リセット] ボタンを選んで、操作を確定します。

ロックされたネットワーク環境で Cloud Shell をブロックする

  • 詳細: 管理者は、ユーザーが Cloud Shell にアクセスできないようにすることを望んでいる可能性があります。 Cloud Shell では、ux.console.azure.com ドメインへのアクセスが使用されますが、このアクセスは拒否される場合があり、その場合は、Cloud Shell のエントリ ポイントへのアクセスがすべて停止されます (portal.azure.comshell.azure.com、Visual Studio Code Azure Account 拡張機能、video2.skills-academy.com を含む)。 米国政府のクラウドでは、エントリ ポイントは ux.console.azure.us であり、対応する shell.azure.us はありません。
  • 解決策: ネットワークから ux.console.azure.com または ux.console.azure.us へのアクセスを制限します。 Cloud Shell アイコンは Azure portal にまだ表示されていますが、サービスに接続できません。