Beibehalten von Dateien in Azure Cloud Shell

Beim ersten Starten von Cloud Shell werden Sie aufgefordert, Ihre Speicheroptionen auszuwählen. Wenn Sie Dateien speichern möchten, die jedes Mal verwendet werden können, wenn Sie Cloud Shell verwenden, müssen Sie neue Speicherressourcen erstellen oder vorhandene auswählen. Cloud Shell nutzt eine Microsoft Azure Files-Freigabe, um Dateien sitzungsübergreifend beizubehalten.

Funktionsweise von Cloud Shell-Speicher

Cloud Shell nutzt die beiden folgenden Methoden zum Beibehalten von Dateien:

  • Erstellt ein Datenträgerimage, das den Inhalt Ihres $HOME-Verzeichnisses enthält. Das Datenträgerimage wird unter https://storageaccountname.file.core.windows.net/filesharename/.cloudconsole/acc_user.img gespeichert. Cloud Shell synchronisiert Änderungen automatisch mit diesem Datenträgerimage.
  • Bindet die Dateifreigabe als clouddrive in Ihrem Verzeichnis $HOME ein. Der /home/<User>/clouddrive-Pfad wird storageaccountname.file.core.windows.net/filesharename zugeordnet.

Hinweis

Alle Dateien in Ihrem $HOME-Verzeichnis, wie z. B. SSH-Schlüssel, bleiben in Ihrem Benutzerdatenträgerimage erhalten, das in der eingebundenen Dateifreigabe gespeichert ist. Nutzen Sie bewährte Methoden, um die Informationen in Ihrem $HOME-Verzeichnis und der eingebundenen Dateifreigabe zu sichern.

Schützen des Speicherzugriffs

Aus Sicherheitsgründen sollte jeder Benutzer ein eigenes Speicherkonto erstellen. Für die rollenbasierte Zugriffssteuerung (RBAC) in Azure müssen Benutzerinnen und Benutzer auf der Ebene des Speicherkontos über einen Mitwirkenden-Zugriff oder höher verfügen.

Cloud Shell verwendet eine Azure-Dateifreigabe in einem Speicherkonto innerhalb eines bestimmten Abonnements. Aufgrund der vererbten Berechtigungen können Benutzerinnen und Benutzer mit ausreichenden Zugriffsrechten im Abonnement auf die im Abonnement enthaltenen Speicherkonten und Dateifreigaben zugreifen.

Benutzer sollten den Zugriff auf ihre Dateien sperren, indem sie die Berechtigungen auf der Speicherkonto- oder Abonnementebene festlegen.

Das Cloud Shell-Speicherkonto enthält Dateien, die die Cloud Shell-Benutzerinnen und -Benutzer in seinem Basisverzeichnis erstellt hat und die sensible Informationen wie Zugriffstoken oder Anmeldedaten enthalten können.

Beschränken der Ressourcenerstellung mit einer Azure-Ressourcenrichtlinie

Speicherkonten, die in Cloud Shell erstellt werden, erhalten das Tag ms-resource-usage:azure-cloud-shell. Wenn Sie Benutzerinnen und Benutzern die Erstellung von Speicherkonten in Cloud Shell untersagen möchten, erstellen Sie eine Azure-Ressourcenrichtlinie, die durch dieses spezielle Tag ausgelöst wird.

Verwalten von Cloud Shell-Speicher

Verwenden des Befehls clouddrive

Cloud Shell enthält ein Befehlszeilentool, mit dem Sie die Freigabe von Azure Files in Cloud Shell ändern können. Führen Sie clouddrive aus, um die verfügbaren Befehle anzuzeigen.

Group
  clouddrive                  :Manage storage settings for Azure Cloud Shell.

Commands
  mount                       :Mount a file share to Cloud Shell.
  unmount                     :Unmount a file share from Cloud Shell.

Einbinden eines neuen clouddrive-Verzeichnisses

Verwenden Sie den Befehl clouddrive mount, um die von Cloud Shell verwendete Freigabe zu ändern.

Hinweis

Wenn Sie eine neue Freigabe einbinden, wird für Ihr $HOME-Verzeichnis ein neues Benutzerimage erstellt. Ihre vorheriges $HOME-Image wird in der vorherigen Dateifreigabe gespeichert.

Führen Sie den Befehl clouddrive mount mit den folgenden Parametern aus:

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

Wenn Sie hierzu weitere Informationen benötigen, führen Sie clouddrive mount -h aus.

Command
  clouddrive mount            :Mount an Azure file share to Cloud Shell.

    Mount enables mounting and associating an Azure file share to Cloud Shell.
    Cloud Shell will automatically attach this file share on each session start-up.

    Note: This command does not mount storage if the session is Ephemeral.

    Cloud Shell persists files with both methods below:
    1. Create a disk image of your $HOME directory to persist files within $HOME.
    This disk image is saved in your specified file share as 'acc_sean.img'' at
    '//<storageaccount>.file.storage.windows.net/<fileshare>/.cloudconsole/acc_sean.img'
    2. Mount specified file share as 'clouddrive' in $HOME for file sharing.
    '/home/sean/clouddrive' maps to '//<storageaccount>.file.storage.windows.net/<fileshare>'

Arguments
  -s | --subscription id          [Required]:Subscription ID or name.
  -g | --resource-group group     [Required]:Resource group name.
  -n | --storage-account name     [Required]:Storage account name.
  -f | --file-share name          [Required]:File share name.
  -d | --disk-size size                     :Disk size in GB. (default 5)
  -F | --force                              :Skip warning prompts.
  -? | -h | --help                          :Shows this usage text.

Aufheben der Einbindung von clouddrive

Sie können eine Cloud Shell-Dateifreigabe jederzeit aushängen. Da Cloud Shell eine eingebundene Dateifreigabe benötigt, um verwendet werden zu können, fordert Cloud Shell Sie auf, bei der nächsten Sitzung eine weitere Dateifreigabe zu erstellen und einzubinden.

  1. Führen Sie clouddrive unmount aus.
  2. Lesen und bestätigen Sie die Eingabeaufforderungen.

Die nicht eingebundene Dateifreigabe bleibt so lange bestehen, bis Sie sie manuell löschen. Nach dem Aufheben der Bereitstellung sucht Cloud Shell in nachfolgenden Sitzungen nicht mehr nach dieser Dateifreigabe. Wenn Sie hierzu weitere Informationen benötigen, führen Sie clouddrive unmount -h aus.

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

Warnung

Durch Ausführung dieses Befehls werden keine Ressourcen gelöscht. Wenn Sie aber eine Ressourcengruppe, ein Speicherkonto oder eine Dateifreigabe mit Zuordnung zu Cloud Shell manuell löschen, werden dadurch sowohl Ihr Datenträgerimage im Verzeichnis $HOME als auch alle Dateien in Ihrer Dateifreigabe gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.

Verwenden von PowerShell-Befehlen

Abrufen von Informationen zur aktuellen Dateifreigabe

Verwenden Sie den Befehl Get-CloudDrive in PowerShell, um Informationen zu den Ressourcen abzurufen, die die Dateifreigabe zurückgibt.

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     : 78a66d97-7204-4a0d-903f-43d3d4170e5b

Aufheben der Bereitstellung einer Dateifreigabe

Sie können eine Cloud Shell-Dateifreigabe jederzeit mit dem Cmdlet Dismount-CloudDrive aushängen. Durch das Aufheben der Einbindung von clouddrive wird die aktuelle Sitzung beendet.

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"):

Nächste Schritte