你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure Cloud Shell 中持久保存文件

首次启动 Cloud Shell 时,系统会提示你你选择存储选项。 如果要存储每次使用 Cloud Shell 时都可以使用的存储文件,则必须创建新的存储资源,或选择现有的存储资源。 Cloud Shell 使用 Microsoft Azure 文件存储共享跨会话持久保存文件。

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

注意

$HOME 目录中的所有文件(如 SSH 密钥)将持久保存用户磁盘映像(存储于已装载的文件共享中)中。 使用最佳做法来保护目录中的信息 $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 中选择“设置”>“重置用户设置”来重置首选项。 按照步骤装载现有存储帐户新存储帐户

注意

装载新的共享时,将为 $HOME 目录创建新的用户映像。 以前的 $HOME 映像保留在以前的文件共享中。

卸载 clouddrive

可以随时卸载 Cloud Shell 文件共享。 由于 Cloud Shell 需要使用已装载的文件共享,因此,在下一个会话中,Cloud Shell 会提示你创建并装载另一个文件共享。

  1. 运行 clouddrive unmount
  2. 确认提示。

在手动删除已卸载的文件共享之前,它将继续存在。 卸载后,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 cmdlet 卸载 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"):

后续步骤