Azure Cloud Shell でファイルを永続化する
初めて Cloud Shell を起動すると、ストレージ オプションを選択するようにダイアログが表示されます。 Cloud Shell を使用するたびに使用できるストア ファイルが必要な場合は、新規に作成するか、既存のストレージ リソースを選択する必要があります。 Cloud Shell では Microsoft Azure Files 共有を使用してセッション間でファイルを維持します。
- 新しいストレージ リソースを作成するには、「永続的なストレージを使った Azure Cloud Shell の概要」を参照してください。
- 既存のストレージ リソースを使用するには、既存のストレージを使った Azure Cloud Shell の概要に関する記事を参照してください。
Cloud Shell のストレージのしくみ
Cloud Shell は、次の両方の方法を使用してファイルを永続化します。
$HOME
ディレクトリの内容を格納するディスク イメージを作成します。 ディスク イメージはhttps://storageaccountname.file.core.windows.net/filesharename/.cloudconsole/acc_user.img
に保存されます。 Cloud Shell によって、このディスク イメージへの変更が自動的に同期されます。- ファイル共有を
$HOME
ディレクトリにclouddrive
としてマウントします。/home/<User>/clouddrive
パスはstorageaccountname.file.core.windows.net/filesharename
にマッピングされます。
Note
SSH キーなど、$HOME
ディレクトリ内のすべてのファイルが、マウントされたファイル共有に格納されたユーザー ディスク イメージに永続化されます。 ベスト プラクティスを使用して、$HOME
ディレクトリおよびマウントされたファイル共有の情報をセキュリティで保護してください。
ストレージ アクセスのセキュリティ保護
セキュリティのために、各ユーザーが自分のストレージ アカウントを作成する必要があります。 Azure ロールベースのアクセス制御 (RBAC) では、ユーザーはストレージ アカウント レベルで共同作成者以上のアクセス権を持つ必要があります。
Cloud Shell では、指定されたサブスクリプション内のストレージ アカウントで Azure ファイル共有が使用されます。 アクセス許可が継承されるため、サブスクリプションで十分なアクセス権を持つユーザーは、サブスクリプションに含まれるストレージ アカウントとファイル共有にアクセスできます。
ユーザーは、ストレージ アカウントまたはサブスクリプション レベルでアクセス許可を設定することによって、各自のファイルへのアクセスをロックダウンする必要があります。
Cloud Shell のストレージ アカウントには、Cloud Shell のユーザーがホーム ディレクトリで作成したファイルが格納され、これにはアクセス トークンや資格情報などの機密情報が含まれる場合があります。
Azure リソース ポリシーによるリソース作成の制限
Cloud Shell で作成したストレージ アカウントは ms-resource-usage:azure-cloud-shell
でタグ付けされます。
ユーザーが Cloud Shell でストレージ アカウントを作成するのを禁止する必要がある場合は、この特定のタグによってトリガーされる Azure リソース ポリシーを作成します。
Cloud Shell ストレージの管理
新しい clouddrive のマウント
前に Cloud Shell でエフェメラル セッションの使用を選んだ場合は、Cloud Shell で [設定]>[ユーザー設定のリセット] を選んで、ユーザー設定をリセットする必要があります。 手順に従って、既存のストレージ アカウントまたは新しいストレージ アカウントをマウントします。
Note
新しい共有をマウントすると、新しいユーザー イメージが $HOME
ディレクトリ用に作成されます。 前回の $HOME
イメージは、前のファイル共有に保持されます。
clouddrive のマウント解除
Cloud Shell ファイル共有はいつでもマウント解除できます。 Cloud Shell ではマウントされたファイル共有を使う必要があるため、次回のセッション時に、Cloud Shell により別のファイル共有を作成してマウントするように求められます。
clouddrive unmount
を実行します。- プロンプトに同意して確定します。
マウントされていないファイル共有は、手動で削除するまで存在し続けます。 マウントを解除すると、Cloud Shell では後続のセッションでこのファイル共有を検索しなくなります。 詳細については、clouddrive unmount -h
を実行してください。
Command
clouddrive unmount: Unmount an Azure file share from Cloud Shell.
Unmount enables unmounting and disassociating a file share from Cloud Shell.
All current sessions will be terminated. Machine state and non-persisted files will be lost.
You will be prompted to create and mount a new file share on your next session.
Your previously mounted file share will continue to exist.
Note: This command does not unmount storage if the session is Ephemeral.
Arguments
None
警告
このコマンドを実行してもリソースは削除されませんが、Cloud Shell にマップされているリソース グループ、ストレージ アカウント、またはファイル共有を手動で削除すると、ファイル共有内にある $HOME
ディレクトリ ディスク イメージとすべてのファイルは削除されます。 この削除操作は元に戻すことができません。
PowerShell コマンドを使う
現在のファイル共有に関する情報を得る
PowerShell の Get-CloudDrive
コマンドを使用して、ファイル共有をバッキングするリソースに関する情報を取得します。
PS /home/user> Get-CloudDrive
FileShareName : cs-user-microsoft-com-xxxxxxxxxxxxxxx
FileSharePath : //cs7xxxxxxxxxxxxxxx.file.core.windows.net/cs-user-microsoft-com-xxxxxxxxxxxxxxx
MountPoint : /home/user/clouddrive
Name : cs7xxxxxxxxxxxxxxx
ResourceGroupName : cloud-shell-storage-southcentralus
StorageAccountName : cs7xxxxxxxxxxxxxxx
SubscriptionId : aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
ファイル共有のマウント解除
Dismount-CloudDrive
コマンドレットを使用すると、Cloud Shell ファイル共有はいつでもマウント解除できます。
clouddrive
をマウント解除すると、現在のセッションが終了します。
Dismount-CloudDrive
Do you want to continue
Dismounting clouddrive will terminate your current session. You will be prompted to create and
mount a new file share on your next session
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):