Persistencia de archivos en Azure Cloud Shell

Cloud Shell utiliza Azure Files para conservar los archivos entre sesiones. En el primer inicio, Cloud Shell le pedirá que asocie un recurso compartido de archivos nuevo o existente para conservar los archivos entre sesiones.

Nota:

Bash y PowerShell comparten el mismo recurso compartido de archivos. Solo un recurso compartido de archivos se puede asociar con el montaje automático en Cloud Shell.

El firewall de Azure Storage no es compatible con las cuentas de almacenamiento de Cloud Shell.

creación de nuevo almacenamiento

Al usar la configuración básica y seleccionar solo una suscripción, Cloud Shell crea tres recursos en su nombre en la región admitida que esté más próxima:

  • Grupos de recursos: cloud-shell-storage-<region>
  • Cuenta de almacenamiento: cs<uniqueGuid>
  • Recurso compartido de archivos: cs-<user>-<domain>-com-<uniqueGuid>

Captura de pantalla de la elección de la suscripción para la cuenta de almacenamiento.

El recurso compartido de archivos se monta como clouddrive en su directorio $HOME. Se trata de una acción única y el recurso compartido de archivos se monta automáticamente en sesiones posteriores.

El recurso compartido de archivos también contiene una imagen de 5 GB que conserva automáticamente los datos en su directorio $HOME. Este recurso compartido de archivos se usa para Bash y PowerShell.

Uso de recursos existentes

Mediante la opción avanzada puede asociar recursos existentes. Cuando aparezca el mensaje del programa de instalación, seleccione Mostrar configuración avanzada para ver más opciones. Las opciones de almacenamiento rellenadas se filtran por cuentas de almacenamiento con redundancia local (LRS), almacenamiento con redundancia geográfica (GRS) y almacenamiento con redundancia de zona (ZRS).

Nota

Se recomienda usar cuentas de almacenamiento con redundancia geográfica o con redundancia de zona para contar con resistencia adicional para el recurso compartido de archivos de respaldo. El tipo de redundancia depende de los objetivos y las preferencias de precio. Obtenga más información sobre las opciones de replicación para las cuentas de Azure Storage.

Captura de pantalla de la configuración de la cuenta de almacenamiento.

Protección del acceso al almacenamiento

Por motivos de seguridad, cada usuario debe crear su propia cuenta de almacenamiento. En el control de acceso basado en rol de Azure (RBAC de Azure), los usuarios deben tener acceso de colaborador o superior en el nivel de la cuenta de almacenamiento.

Cloud Shell usa un recurso compartido de archivos de Azure en una cuenta de almacenamiento, dentro de una suscripción especificada. Debido a los permisos heredados, los usuarios con derechos de acceso suficientes en la suscripción pueden acceder a todas las cuentas de almacenamiento y a los recursos compartidos de archivos contenidos en la suscripción.

Los usuarios deben bloquear el acceso a sus archivos estableciendo los permisos en el nivel de cuenta de almacenamiento o de suscripción.

La cuenta de almacenamiento de Cloud Shell contiene archivos creados por el usuario de Cloud Shell en su directorio principal, el cual puede incluir información confidencial junto con tokens de acceso o credenciales.

Regiones de almacenamiento admitidas

Para encontrar la región actual puede ejecutar env en Bash y buscar la variable ACC_LOCATION, o bien ejecutar $env:ACC_LOCATION desde PowerShell. Los recursos compartidos de archivos existentes reciben una imagen de 5 GB para que el usuario conserve el directorio $HOME.

Las máquinas de Cloud Shell existen en las regiones siguientes:

Área Region
América Este de EE. UU., centro-sur de EE. UU. y oeste de EE. UU.
Europa Norte de Europa y Oeste de Europa
Asia Pacífico Sur de la India, Sudeste de Asia

Debe elegir una región que cumpla sus requisitos.

Regiones de almacenamiento secundarias

Si se usa una región de almacenamiento secundaria, la cuenta de almacenamiento de Azure asociada se encuentra en una región distinta a la de la máquina de Cloud Shell donde se va a montar. Por ejemplo, puede configurar su cuenta de almacenamiento para que se encuentre en la región Este de Canadá, una región secundaria, pero la máquina de Cloud Shell todavía se encuentra en una región primaria. Sus datos en reposo se encuentran en Canadá, pero se procesan en los Estados Unidos.

Nota

Si se usa una región secundaria, el acceso a archivos y el tiempo de inicio de Cloud Shell pueden ser más lentos.

Un usuario puede ejecutar (Get-CloudDrive | Get-AzStorageAccount).Location en PowerShell para ver la ubicación de su recurso compartido de archivos.

Restringir la creación de recursos con una directiva de recursos de Azure

Las cuentas de almacenamiento creadas en Cloud Shell se etiquetan con ms-resource-usage:azure-cloud-shell. Si quiere impedir que los usuarios creen cuentas de almacenamiento en Cloud Shell, cree una directiva de recursos de Azure para etiquetas que se desencadene mediante esta etiqueta específica.

Funcionamiento del almacenamiento de Cloud Shell

Cloud Shell conserva los archivos a través de los métodos siguientes:

  • Creación de una imagen de disco del directorio $HOME para hacer persistente todo el contenido dentro del directorio. La imagen de disco se guarda en su recurso compartido de archivos especificado como acc_<User>.img en fileshare.storage.windows.net/fileshare/.cloudconsole/acc_<User>.img y sincroniza automáticamente los cambios.
  • Montaje del recurso compartido de archivos especificado como clouddrive en el directorio $HOME para la interacción directa del recurso compartido de archivos. /Home/<User>/clouddrive se asigna a fileshare.storage.windows.net/fileshare.

Nota

Todos los archivos en el directorio $HOME, como las claves de SSH, se conservan en la imagen de disco de usuario almacenada en el recurso compartido de archivos montado. Ponga en práctica los procedimientos recomendados correspondientes para conservar la información en el directorio $HOME y en el recurso compartido de archivos montado.

comandos de clouddrive

Uso del comando clouddrive

En Cloud Shell, puede ejecutar un comando denominado clouddrive, lo que permite actualizar manualmente el recurso compartido de archivos que está montado en Cloud Shell.

Captura de pantalla de la ejecución del comando clouddrive en Bash.

Enumeración de clouddrive

Para descubrir qué recurso compartido de archivos se monta como clouddrive, ejecute el comando df.

La ruta de acceso de archivo a clouddrive mostrará el recurso compartido de archivos y el nombre de la cuenta de almacenamiento en la dirección URL. Por ejemplo: //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

Montaje de un nuevo clouddrive

Requisitos previos para el montaje manual

Puede actualizar el recurso compartido de archivos que esté asociado con Cloud Shell con el comando clouddrive mount.

Nota

Si monta un recurso compartido de archivos nuevo, se crea una imagen de usuario para el directorio $HOME. La imagen $HOME anterior se mantiene en el recurso compartido de archivos anterior.

Ejecute el comando clouddrive mount con los parámetros siguientes:

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

Para ver más detalles, ejecute clouddrive mount -h, tal y como se muestra aquí:

Captura de pantalla de la ejecución del comando clouddrive mount en Bash.

Desmontaje de clouddrive

Puede desmontar un recurso compartido de archivos montado en Cloud Shell en cualquier momento. Como Cloud Shell requiere que se use un recurso compartido de archivos, le pide que cree y monte otro recurso compartido de archivos en la sesión siguiente.

  1. Ejecute clouddrive unmount.
  2. Reconozca y confirme los mensajes.

El recurso compartido de archivos desmontado continuará existiendo hasta que lo elimine manualmente. Después de desmontarlo, Cloud Shell ya no buscará este recurso compartido de archivos en sesiones posteriores. Para ver más detalles, ejecute clouddrive unmount -h, tal y como se muestra aquí:

Captura de pantalla de la ejecución del comando clouddrive unmount en Bash.

Advertencia

Aunque la ejecución de este comando no elimina ningún recurso, al eliminar manualmente el grupo de recursos, la cuenta de almacenamiento o el recurso compartido de archivos asignados a Cloud Shell, se borra la imagen de disco del directorio $HOME y los archivos del recurso compartido de archivos. Esta acción no se puede deshacer.

Comandos específicos de PowerShell

Lista de los recursos compartidos de archivos de Azure en clouddrive

El cmdlet Get-CloudDrive recupera la información del recurso compartido de archivos de Azure que monta actualmente clouddrive en Cloud Shell.

Captura de pantalla de la ejecución del comando Get-CloudDrive en PowerShell.

Desmontar clouddrive

Puede desmontar un recurso compartido de archivos de Azure montado en Cloud Shell en cualquier momento. El cmdlet Dismount-CloudDrive desmonta un recurso compartido de archivos de Azure desde la cuenta de almacenamiento actual. Desmontar clouddrive finaliza la sesión actual.

Si se quitó el recurso compartido de archivos de Azure, se le pedirá crear y montar uno nuevo en la sesión siguiente.

Captura de pantalla de la ejecución del comando Dismount-CloudDrive en PowerShell.

Transferir archivos locales a Cloud Shell

El directorio clouddrive se sincroniza con la hoja de almacenamiento de Azure Portal. Use esta hoja para transferir archivos locales al recurso compartido de archivos y viceversa. La actualización de archivos en Cloud Shell se refleja en la GUI de File Storage al actualizarse las hojas.

Descargar archivos desde Azure Portal

Captura de pantalla en la que se enumeran los archivos locales en Azure Portal.

  1. En Azure Portal, vaya al recurso compartido de archivos montados.
  2. Seleccione el archivo de destino.
  3. Seleccione el botón Descargar.

Descargar archivos en Azure Cloud Shell

  1. En una sesión de Azure Cloud Shell, seleccione el icono Cargar/Descargar archivos y seleccione la opción Descargar.

  2. En el cuadro de diálogo Descargar un archivo, escriba la ruta de acceso al archivo que desea descargar.

    Captura de pantalla del cuadro de diálogo de descarga en Cloud Shell.

    Solo puede descargar archivos ubicados en la carpeta $HOME.

  3. Seleccione el botón Descargar.

Carga de archivos

Captura de pantalla en la que se muestra cómo cargar archivos en Azure Portal.

  1. Vaya al recurso compartido de archivos montado.
  2. Seleccione el botón Cargar.
  3. Seleccione el archivo o archivos que desea cargar.
  4. Confirmación de la actualización.

Ahora debería ver los archivos accesibles en el directorio clouddrive en Cloud Shell.

Nota:

si tiene que definir una función en un archivo y llamarla desde los cmdlets de PowerShell, debe incluir el operador punto. Por ejemplo: . .\MyFunctions.ps1

Cargar archivos en Azure Cloud Shell

  1. En una sesión de Azure Cloud Shell, seleccione el icono Cargar/Descargar archivos y seleccione la opción Cargar. El explorador abre un cuadro de diálogo de archivo.
  2. Elija el archivo que desea cargar y seleccione el botón Abrir.

El archivo se carga en la raíz de la carpeta $HOME. Puede mover el archivo después de cargarlo.

Pasos siguientes