Azure Cloud Shell でファイルを永続化するPersist files in Azure Cloud Shell

Cloud Shell では Azure File ストレージを使用してセッション間でファイルを維持します。Cloud Shell utilizes Azure File storage to persist files across sessions. Cloud Shell の初回起動時に、セッション間でファイルを維持するために新しいまたは既存のファイル共有を関連付けることを求められます。On initial start, Cloud Shell prompts you to associate a new or existing file share to persist files across sessions.

注意

Bash と PowerShell は、同じファイル共有を共有します。Bash and PowerShell share the same file share. Cloud Shell で自動マウントと関連付けることができるのは、1 つのファイル共有のみです。Only one file share can be associated with automatic mounting in Cloud Shell.

新しいストレージの作成Create new storage

基本設定を使用し、サブスクリプションのみを選択すると、Cloud Shell では、最寄りのサポートされるリージョンに 3 つのリソースが自動的に作成されます。When you use basic settings and select only a subscription, Cloud Shell creates three resources on your behalf in the supported region that's nearest to you:

  • リソース グループ: cloud-shell-storage-<region>Resource group: cloud-shell-storage-<region>
  • ストレージ アカウント: cs<uniqueGuid>Storage account: cs<uniqueGuid>
  • ファイル共有: cs-<user>-<domain>-com-<uniqueGuid>File share: cs-<user>-<domain>-com-<uniqueGuid>

サブスクリプション設定

ファイル共有は clouddrive ディレクトリに $Home という名前でマウントされます。The file share mounts as clouddrive in your $Home directory. これは 1 度限りのアクションであり、ファイル共有は以降のセッションで自動的にマウントされます。This is a one-time action, and the file share mounts automatically in subsequent sessions.

また、5 GB のイメージを含むファイル共有が作成され、これによって $Home ディレクトリに自動的にデータが維持されます。The file share also contains a 5-GB image that is created for you which automatically persists data in your $Home directory. これは、Bash と PowerShell の両方に適用されます。This applies for both Bash and PowerShell.

既存のリソースの使用Use existing resources

詳細設定オプションを使用すると、既存のリソースを関連付けることができます。By using the advanced option, you can associate existing resources. Cloud Shell リージョンを選択する場合、同じリージョンに併置されたバッキング ストレージ アカウントを選択する必要があります。When selecting a Cloud Shell region you must select a backing storage account co-located in the same region. たとえば、割り当てリージョンが米国西部である場合、同様に米国西部に存在するファイル共有を関連付ける必要があります。For example, if your assigned region is West US then you must associate a file share that resides within West US as well.

ストレージのセットアップを促す画面が表示されたら、 [詳細設定の表示] を選択して、追加オプションを表示します。When the storage setup prompt appears, select Show advanced settings to view additional options. 設定されているストレージ オプションは、ローカル冗長ストレージ (LRS) アカウント、 geo 冗長ストレージ (GRS) アカウント、およびゾーン冗長ストレージ (ZRS) アカウントをフィルター処理します。The populated storage options filter for locally redundant storage (LRS), geo-redundant storage (GRS), and zone-redundant storage (ZRS) accounts.

注意

バッキング ファイル共有の回復性を強化するには、GRS または ZRS のストレージ アカウントの使用をお勧めします。Using GRS or ZRS storage accounts are recommended for additional resiliency for your backing file share. どちらの種類の冗長性を選ぶかは、実際の目標と価格の希望により異なります。Which type of redundancy depends on your goals and price preference. 詳細については、Azure Storage アカウントのレプリケーションのオプションを参照してくださいLearn more about replication options for Azure Storage accounts.

リソース グループ設定

ストレージ アクセスのセキュリティ保護Securing storage access

セキュリティのために、各ユーザーが自分のストレージ アカウントをプロビジョニングする必要があります。For security, each user should provision their own storage account. ロールベースのアクセス制御 (RBAC) では、ユーザーはストレージ アカウント レベルで共同作成者以上のアクセス権を持つ必要があります。For role-based access control (RBAC), users must have contributor access or above at the storage account level.

Cloud Shell では、指定されたサブスクリプション内のストレージ アカウントで Azure ファイル共有が使用されます。Cloud Shell uses an Azure File Share in a storage account, inside a specified subscription. アクセス許可が継承されるため、サブスクリプションに対する十分なアクセス権を持つユーザーは、サブスクリプションに含まれるすべてのストレージ アカウントとファイル共有にアクセスできます。Due to inherited permissions, users with sufficient access rights to the subscription will be able to access all the storage accounts, and file shares contained in the subscription.

ユーザーは、ストレージ アカウントまたはサブスクリプション レベルでアクセス許可を設定することによって、各自のファイルへのアクセスをロックダウンする必要があります。Users should lock down access to their files by setting the permissions at the storage account or the subscription level.

サポートされているストレージ リージョンSupported storage regions

マウント先の Cloud Shell マシンと同じリージョンに、関連付けられた Azure ストレージ アカウントが存在する必要があります。Associated Azure storage accounts must reside in the same region as the Cloud Shell machine that you're mounting them to. 現在のリージョンを確認するには、Bash で env を実行し、変数 ACC_LOCATION を見つけます。To find your current region you may run env in Bash and locate the variable ACC_LOCATION. ファイル共有には、$Home ディレクトリの永続化に使用できる 5 GB のイメージが割り当てられます。File shares receive a 5-GB image created for you to persist your $Home directory.

Cloud Shell マシンは、次の各リージョンに存在します。Cloud Shell machines exist in the following regions:

領域Area リージョンRegion
アメリカAmericas 米国東部、米国中南部、米国西部East US, South Central US, West US
ヨーロッパEurope 北ヨーロッパ、西ヨーロッパNorth Europe, West Europe
アジア太平洋Asia Pacific インド中部、東南アジアIndia Central, Southeast Asia

Azure リソース ポリシーによるリソース作成の制限Restrict resource creation with an Azure resource policy

Cloud Shell で作成したストレージ アカウントは ms-resource-usage:azure-cloud-shell でタグ付けされます。Storage accounts that you create in Cloud Shell are tagged with ms-resource-usage:azure-cloud-shell. Cloud Shell からストレージ アカウントを作成できないようにするには、この固有のタグによってトリガーされるタグの Azure リソース ポリシーを作成します。If you want to disallow users from creating storage accounts in Cloud Shell, create an Azure resource policy for tags that are triggered by this specific tag.

Cloud Shell のストレージのしくみHow Cloud Shell storage works

Cloud Shell は、次の両方の方法を使用してファイルを永続化します。Cloud Shell persists files through both of the following methods:

  • $Home ディレクトリのディスク イメージを作成してディレクトリ内のすべてのコンテンツを永続化します。Creating a disk image of your $Home directory to persist all contents within the directory. このディスク イメージは、指定されたファイル共有の fileshare.storage.windows.net/fileshare/.cloudconsole/acc_<User>.imgacc_<User>.img として保存され、変更が自動的に反映されます。The disk image is saved in your specified file share as acc_<User>.img at fileshare.storage.windows.net/fileshare/.cloudconsole/acc_<User>.img, and it automatically syncs changes.
  • ファイル共有を直接操作できるように、指定されたファイル共有を $Home ディレクトリに clouddrive としてマウントします。Mounting your specified file share as clouddrive in your $Home directory for direct file-share interaction. /Home/<User>/clouddrivefileshare.storage.windows.net/fileshare にマッピングされます。/Home/<User>/clouddrive is mapped to fileshare.storage.windows.net/fileshare.

注意

SSH キーなど、$Home ディレクトリ内のすべてのファイルが、マウントされたファイル共有に格納されたユーザー ディスク イメージに永続化されます。All files in your $Home directory, such as SSH keys, are persisted in your user disk image, which is stored in your mounted file share. $Home ディレクトリおよびマウントされたファイル共有への情報の保存時に、ベスト プラクティスを適用してください。Apply best practices when you persist information in your $Home directory and mounted file share.

clouddrive コマンドclouddrive commands

clouddrive コマンドを使用するUse the clouddrive command

Cloud Shell では、clouddrive というコマンドを実行できます。このコマンドを使うと、Cloud Shell にマウントされているファイル共有を手動で更新できます。In Cloud Shell, you can run a command called clouddrive, which enables you to manually update the file share that is mounted to Cloud Shell. "clouddrive" コマンドを実行するRunning the "clouddrive" command

clouddrive の一覧取得List clouddrive

clouddrive としてマウントされているファイル共有を検出するには、df コマンドを実行します。To discover which file share is mounted as clouddrive, run the df command.

clouddrive へのファイル パスの URL に、お使いのストレージ アカウント名とファイル共有が表示されます。The file path to clouddrive shows your storage account name and file share in the URL. たとえば、//storageaccountname.file.core.windows.net/filesharename のように指定します。For example, //storageaccountname.file.core.windows.net/filesharename

justin@Azure:~$ df
Filesystem                                          1K-blocks   Used  Available Use% Mounted on
overlay                                             29711408 5577940   24117084  19% /
tmpfs                                                 986716       0     986716   0% /dev
tmpfs                                                 986716       0     986716   0% /sys/fs/cgroup
/dev/sda1                                           29711408 5577940   24117084  19% /etc/hosts
shm                                                    65536       0      65536   0% /dev/shm
//mystoragename.file.core.windows.net/fileshareName 5368709120    64 5368709056   1% /home/justin/clouddrive
justin@Azure:~$

新しい clouddrive のマウントMount a new clouddrive

手動マウントの前提条件Prerequisites for manual mounting

clouddrive mount コマンドを使用して、Cloud Shell と関連付けられているファイル共有を更新することができます。You can update the file share that's associated with Cloud Shell by using the clouddrive mount command.

既存のファイル共有をマウントする場合、ストレージ アカウントは選択した Cloud Shell リージョンにある必要があります。If you mount an existing file share, the storage accounts must be located in your select Cloud Shell region. 場所を取得するには、env を実行し、ACC_LOCATION をチェックします。Retrieve the location by running env and checking the ACC_LOCATION.

clouddrive mount コマンドThe clouddrive mount command

注意

新しいファイル共有をマウントすると、新しいユーザー イメージが $Home ディレクトリ用に作成されます。If you're mounting a new file share, a new user image is created for your $Home directory. 前回の $Home イメージは、前のファイル共有に保持されます。Your previous $Home image is kept in your previous file share.

次のパラメーターを指定して clouddrive mount コマンドを実行します。Run the clouddrive mount command with the following parameters:

clouddrive mount -s mySubscription -g myRG -n storageAccountName -f fileShareName

詳細情報を表示するには、次のように clouddrive mount -h を実行します。To view more details, run clouddrive mount -h, as shown here:

"clouddrive mount" コマンドを実行する

clouddrive のマウント解除Unmount clouddrive

Cloud Shell にマウントされたファイル共有は、いつでもマウントを解除することができます。You can unmount a file share that's mounted to Cloud Shell at any time. Cloud Shell はマウントされたファイル共有を使う必要があるため、次回のセッション時に別のファイル共有を作成してマウントするように求められます。Since Cloud Shell requires a mounted file share to be used, you will be prompted to create and mount another file share on the next session.

  1. clouddrive unmount を実行します。Run clouddrive unmount.
  2. プロンプトに同意して確定します。Acknowledge and confirm prompts.

作成したファイル共有は、手動で削除するまで存在します。Your file share will continue to exist unless you delete it manually. 以降のセッションから、このファイル共有は、Cloud Shell による検索の対象外になります。Cloud Shell will no longer search for this file share on subsequent sessions. 詳細情報を表示するには、次のように clouddrive unmount -h を実行します。To view more details, run clouddrive unmount -h, as shown here:

"clouddrive unmount" コマンドを実行する

警告

このコマンドを実行してもリソースは削除されませんが、Cloud Shell にマップされているリソース グループ、ストレージ アカウント、またはファイル共有を手動で削除すると、ファイル共有内にある $Home ディレクトリ ディスク イメージとすべてのファイルは削除されます。Although running this command will not delete any resources, manually deleting a resource group, storage account, or file share that's mapped to Cloud Shell erases your $Home directory disk image and any files in your file share. この削除操作は元に戻すことができません。This action cannot be undone.

PowerShell 固有のコマンドPowerShell-specific commands

clouddrive Azure ファイル共有の一覧表示List clouddrive Azure file shares

Get-CloudDrive コマンドレットは、Cloud Shell の clouddrive によって現在マウントされている Azure ファイル共有の情報を取得します。The Get-CloudDrive cmdlet retrieves the Azure file share information currently mounted by the clouddrive in the Cloud Shell.
Get-CloudDrive の実行Running Get-CloudDrive

clouddrive のマウントを解除するUnmount clouddrive

Cloud Shell にマウントされた Azure ファイル共有は、いつでもマウントを解除することができます。You can unmount an Azure file share that's mounted to Cloud Shell at any time. Azure ファイル共有が削除された場合は、次回のセッション時に新しい Azure ファイル共有を作成してマウントするように求められます。If the Azure file share has been removed, you will be prompted to create and mount a new Azure file share at the next session.

Dismount-CloudDrive コマンドレットは、現在のストレージ アカウントから Azure ファイル共有をマウント解除します。The Dismount-CloudDrive cmdlet unmounts an Azure file share from the current storage account. clouddrive をマウント解除すると、現在のセッションが終了します。Dismounting the clouddrive terminates the current session. 次のセッションでは、新しい Azure ファイル共有を作成してマウントするように求められます。The user will be prompted to create and mount a new Azure file share during the next session. Dismount-CloudDrive の実行Running Dismount-CloudDrive

Cloud Shell にローカル ファイルを転送するTransfer local files to Cloud Shell

clouddrive ディレクトリは、Azure Portal ストレージ ブレードと同期します。The clouddrive directory syncs with the Azure portal storage blade. このブレードを使用して、ファイル共有との間でローカル ファイルを移動できます。Use this blade to transfer local files to or from your file share. Cloud Shell 内からファイルを更新すると、ブレードを更新するときにファイル ストレージ GUI に反映されます。Updating files from within Cloud Shell is reflected in the file storage GUI when you refresh the blade.

ファイルをダウンロードするDownload files

ローカル ファイルの一覧

  1. Azure Portal で、マウントされているファイル共有に移動します。In the Azure portal, go to the mounted file share.
  2. 対象のファイルを選択します。Select the target file.
  3. [ダウンロード] ボタンを選択します。Select the Download button.

ファイルをアップロードするUpload files

更新されるローカル ファイル

  1. マウントされているファイル共有に移動します。Go to your mounted file share.
  2. [アップロード] ボタンを選択します。Select the Upload button.
  3. アップロードする 1 つまたは複数のファイルを選択します。Select the file or files that you want to upload.
  4. アップロードを確認します。Confirm the upload.

Cloud Shell の clouddrive ディレクトリでファイルにアクセスできるようになったことがわかります。You should now see the files that are accessible in your clouddrive directory in Cloud Shell.

注:ファイル内に関数を定義して、PowerShell コマンドレットから呼び出す必要がある場合は、ドット演算子が含まれていることが要件になります。Note: If you need to define a function in a file and call it from the PowerShell cmdlets, then the dot operator must be included. 例: .For example: . .\MyFunctions.ps1.\MyFunctions.ps1

次の手順Next steps

Cloud Shell のクイック スタートCloud Shell Quickstart
Microsoft Azure Files ストレージについてLearn about Microsoft Azure Files storage
ストレージのタグについてLearn about storage tags