Persistir arquivos no Azure Cloud Shell

Na primeira vez que você iniciar o Cloud Shell, precisará selecione as opções de armazenamento. Se quiser armazenar arquivos que possam ser usados sempre que você usar o Cloud Shell, crie ou escolha recursos de armazenamento existentes. O Cloud Shell usa um compartilhamento de Arquivos do Microsoft Azure para persistir os arquivos entre sessões.

Como funciona o armazenamento do Cloud Shell

O Cloud Shell persiste arquivos usando os seguintes métodos:

  • Cria uma imagem de disco para manter o conteúdo do diretório $HOME. A imagem de disco é salva em https://storageaccountname.file.core.windows.net/filesharename/.cloudconsole/acc_user.img. O Cloud Shell sincroniza automaticamente as alterações nessa imagem de disco.
  • Monta o compartilhamento de arquivo como clouddrive no diretório $HOME. O caminho /home/<User>/clouddrive é mapeado para storageaccountname.file.core.windows.net/filesharename.

Observação

Todos os arquivos no diretório $HOME, como chaves SSH, são persistidos na imagem de disco do usuário, que é armazenada no compartilhamento de arquivo montado. Use as melhores práticas para proteger as informações do diretório $HOME e do compartilhamento de arquivo montado.

Proteger o acesso de armazenamento

Por questões de segurança, cada usuário deve criar a própria conta de armazenamento. Para o RBAC (controle de acesso baseado em função) do Azure, os usuários precisam ter acesso de colaborador ou superior no nível da conta de armazenamento.

O Cloud Shell usa um compartilhamento de arquivo do Azure em uma conta de armazenamento, dentro de uma assinatura especificada. Devido às permissões herdadas, os usuários com direitos de acesso suficientes na assinatura podem acessar todas as contas de armazenamento e os compartilhamentos de arquivos contidos na assinatura.

Os usuários devem bloquear o acesso aos seus arquivos definindo as permissões na conta de armazenamento ou no nível de assinatura.

A conta de armazenamento do Cloud Shell contém os arquivos criados pelo usuário do Cloud Shell no diretório base, que pode incluir informações confidenciais, como tokens de acesso ou credenciais.

Restringir a criação de recursos com uma política de recursos do Azure

As contas de armazenamento criadas no Cloud Shell são marcadas com ms-resource-usage:azure-cloud-shell. Se você quiser remover as permissões dos usuários para que eles não criem contas de armazenamento no Cloud Shell, crie uma política de recursos do Azure que seja disparada por essa marca específica.

Gerenciamento do armazenamento do Cloud Shell

Use o comando clouddrive

O Cloud Shell inclui uma ferramenta de linha de comando que permite alterar o compartilhamento de Arquivos do Azure que está no Cloud Shell. Execute clouddrive para ver os comandos disponíveis.

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.

Montar um novo clouddrive

Use o comando clouddrive mount para alterar o compartilhamento usado pelo Cloud Shell.

Observação

Se você estiver montando um novo compartilhamento, uma nova imagem de usuário será criada para o diretório $HOME. A imagem $HOME anterior é mantida no compartilhamento de arquivo anterior.

Execute o comando clouddrive mount com os seguintes parâmetros:

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

Para obter mais informações, execute clouddrive mount -h.

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.

Desmontar clouddrive

Você pode desmontar um compartilhamento de arquivo do Cloud Shell a qualquer momento. Como o Cloud Shell exige o uso de um compartilhamento de arquivo montado, o Cloud Shell pede para você criar e montar outro compartilhamento de arquivo na sessão seguinte.

  1. Execute clouddrive unmount.
  2. Reconheça e confirme os prompts.

O compartilhamento de arquivo desmontado continua existir até que você o exclua manualmente. Após a desmontagem, o Cloud Shell não procura mais esse compartilhamento de arquivo nas sessões seguintes. Para obter mais informações, execute 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

Aviso

Embora a execução desse comando não exclua nenhum recurso, a exclusão manual de um grupo de recursos, de uma conta de armazenamento ou de um compartilhamento de arquivo mapeado para o Cloud Shell apaga a imagem do disco do diretório $HOME e todos os arquivos do compartilhamento de arquivo. Essa ação não pode ser desfeita.

Ao usar comandos do PowerShell

Obter informações sobre o compartilhamento de arquivo atual

Use o comando Get-CloudDrive no PowerShell para obter informações sobre os recursos que dão suporte ao compartilhamento de arquivo.

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

Desmontar o compartilhamento de arquivos

Você pode desmontar um compartilhamento de arquivo do Cloud Shell a qualquer momento usando o cmdlet Dismount-CloudDrive. Desmontar clouddrive encerra a sessão atual.

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

Próximas etapas