Contenido Renew Az-104
Contenido Renew Az-104
Introducción
Completado100 XP
2 minutos
Imagine que está compilando un sitio web para una nueva empresa o que está ejecutando una
aplicación web existente en un servidor local antiguo. Configurar un nuevo servidor puede
representar todo un desafío. Es necesario disponer del hardware adecuado, preferentemente
un sistema operativo de nivel de servidor, y una pila de hospedaje web.
Una vez que esté en ejecución, debe mantener el servidor. Y, ¿qué ocurre si aumenta el tráfico
del sitio web? Es posible que deba invertir en hardware adicional.
Hospedar la aplicación web con Azure App Service hace que la implementación y
administración de una aplicación web resulten mucho más fáciles en comparación con la
administración de un servidor físico. En este módulo, se implementará una aplicación web en
Azure App Service.
Objetivos de aprendizaje
Use Azure Portal para crear una aplicación web de Azure App Service.
Use herramientas de desarrollo para crear el código para una aplicación web de inicio.
Requisitos previos
Completado100 XP
6 minutos
En esta unidad, aprenderá a crear una aplicación web de Azure App Service con Azure Portal.
El primer paso para hospedar la aplicación web consiste en crear una aplicación web
(aplicación de Azure App Service) dentro de la suscripción de Azure.
Hay varias maneras de crear una aplicación web. Puede utilizar Azure Portal, la interfaz de línea
de comandos (CLI) de Azure, un script o un entorno de desarrollo integrado (IDE) como
Visual Studio.
En la información de esta unidad se describe cómo usar Azure Portal para crear una aplicación
web y, en el siguiente ejercicio, usará esta información para ello. En este módulo, la
demostración se realizará con Azure Portal porque es una experiencia gráfica y lo convierte en
una excelente herramienta de aprendizaje. El portal ayuda a descubrir las características
disponibles, agregar recursos adicionales y personalizar los recursos existentes.
Ranuras de implementación
Con Azure Portal, puede agregar fácilmente ranuras de implementación a una aplicación web
de App Service. Por ejemplo, puede crear un espacio de implementación de ensayo donde
puede insertar el código para probarlo en Azure. Cuando esté satisfecho con el código, le
resultará muy fácil intercambiar la ranura de implementación de almacenamiento provisional
con la de producción. Todo esto se hace con unos pocos clics del mouse en Azure Portal.
Compatibilidad con la integración e implementación continuas
Azure Portal proporciona integración e implementación continuas listas para usar con Azure
DevOps, GitHub, Bitbucket, FTP o un repositorio de GIT local en el equipo de desarrollo.
Conecte la aplicación web con cualquiera de los orígenes anteriores y App Service se encargará
del resto mediante la sincronización automática del código y los futuros cambios del código en
la aplicación web. Además, con Azure DevOps, puede definir un proceso propio de compilación
y publicación que compile el código fuente, ejecute las pruebas, cree una versión y, por último,
la implemente en la aplicación web cada vez que confirme el código. Todo eso tiene lugar de
forma implícita sin ninguna intervención por su parte.
Publicación de Visual Studio integrada y publicación FTP
La capacidad de escalar hacia arriba/abajo o hacia afuera está integrada en la aplicación web.
En función del uso de la aplicación web, se puede escalar o reducir verticalmente si se
aumentan o disminuyen los recursos de la máquina subyacente en la que se hospeda la
aplicación web. Los recursos pueden ser el número de núcleos o la cantidad de memoria RAM
disponible.
Cuando esté listo para ejecutar una aplicación web en Azure, puede visitar Azure Portal y crear
un recurso de aplicación web. Al crear una aplicación web se asigna un conjunto de recursos
de hospedaje en App Service, que se puede usar para hospedar cualquier aplicación basada en
web compatible con Azure, ya sea en ASP.NET Core, Node.js, Java, Python, etc.
En Azure Portal se proporciona un asistente para crear una aplicación web. Este asistente
requiere los campos siguientes:
Campo Descripción
Nombre de la el nombre de la aplicación web. Este nombre se convierte en parte de la dirección URL de la a
aplicación único entre todas las aplicaciones web de Azure App Service.
Publicar puede implementar la aplicación en App Service como código o como una imagen de Docker
seleccionar la imagen de Docker se activará la pestaña Docker del asistente, donde proporcio
registro de Docker desde que App Service recuperará la imagen.
Pila del entorno en si elige implementar la aplicación como código, App Service necesita saber qué entorno de eje
tiempo de ejecución (entre los ejemplos se incluyen Node.js, Python, Java y .NET). Si implementa la aplicación com
tendrá que elegir una pila del entorno de ejecución, ya que la imagen la incluirá.
Sistema operativo App Service puede hospedar aplicaciones en servidores Windows o Linux. Consulte la sección
unidad para obtener información adicional.
Plan de App Service Consulte la sección planes de App Service de esta unidad para obtener información sobre los p
Sistemas operativos
Si va a implementar la aplicación como código, muchas de las pilas de entorno de ejecución
disponibles están limitadas a un sistema operativo o a otro. Después de elegir una pila en
tiempo de ejecución, el botón de alternancia indicará si puede elegir un sistema operativo. Si la
pila en tiempo de ejecución de destino está disponible en ambos sistemas operativos,
seleccione el que use para desarrollar y probar la aplicación.
Si la aplicación está empaquetada como una imagen de Docker, elija el sistema operativo en el
que se ha diseñado la imagen para ejecutarse.
Un solo plan de App Service puede hospedar varias aplicaciones web de App Service. En la
mayoría de los casos, el número de aplicaciones que se pueden ejecutar en un solo plan está
limitado por las características de rendimiento de las aplicaciones y las limitaciones de recursos
del plan.
App Service planifica la unidad de facturación de App Service. El tamaño de cada plan de App
Service de la suscripción, además de los recursos de ancho de banda que usan las aplicaciones
implementadas en esos planes, determina el precio que se paga. El número de aplicaciones
web implementadas en los planes de App Service no tiene ningún efecto en la factura.
Puede usar cualquiera de las herramientas de administración de Azure disponibles para crear
un plan de App Service. Al crear una aplicación web a través de Azure Portal, el asistente le
ayudará a crear un plan al mismo tiempo si todavía no tiene uno.
Completado100 XP
5 minutos
En esta unidad, se usará Azure Portal para crear una aplicación web.
Inicie sesión en Azure Portal con la misma cuenta que ha usado para activar el espacio aislado.
Aquí, puede buscar el recurso que quiere crear o seleccionar uno de los recursos más
populares que se crean en Azure Portal.
4. En la pestaña Aspectos básicos, escriba los valores siguientes para cada opción.
Detalles del
proyecto
Detalles de
instancia
Nombre Escriba un nombre único El nombre de la aplicación web. Este nombre formará p
aplicación: nombre_de_la_aplicación.azurewebsites.ne
entre todas las aplicaciones web de Azure.
Region Este de EE. UU. Región geográfica desde la que se va a hospedar la apli
Panes de tarifa
Plan de Linux Acepte el valor Nombre del plan de App Service que respaldará la aplic
predeterminado. asistente creará un plan en la misma región que la aplic
Nota
2. Para obtener una vista previa del contenido predeterminado de la aplicación web,
seleccione la URL en Dominio predeterminado en la parte superior derecha. La página
de marcador de posición que se carga indica que la aplicación web está en
funcionamiento y lista para recibir la implementación del código de la aplicación.
Deje abierta la pestaña del explorador con la página de marcador de posición de la nueva
aplicación. Volverá a esa pestaña después de haber implementado la aplicación.
Completado100 XP
3 minutos
Ahora que ha creado los recursos para implementar la aplicación web, tendrá que preparar el
código que quiere implementar. Hay muchas maneras de iniciar una nueva aplicación web, por
lo que es posible que lo que vea aquí sea diferente a lo que conoce. El objetivo es
proporcionarle rápidamente un punto de partida para completar un ciclo completo hasta la
implementación.
Nota
Todo el código y los comandos que se muestran en esta página solo se incluyen con fines
explicativos; no es necesario ejecutar ninguno de ellos. Se usarán en un ejercicio posterior.
Para crear una aplicación web de inicio con varias líneas de código, puede usar Flask, un marco
de trabajo de aplicación web de uso frecuente. Puede instalar Flask mediante el comando
siguiente:
BashCopiar
Después de que Flask esté disponible en el entorno, puede crear una aplicación web mínima
mediante este código:
PythonCopiar
app = Flask(__name__)
@app.route("/")
def hello():
En este código de ejemplo se crea un servidor que responde a todas las solicitudes con un
mensaje "Hola mundo".
Una vez que el código de la aplicación web está listo, el paso siguiente suele consistir en
incluirlo en un repositorio de control de código fuente, como Git. Si tiene Git instalado en el
equipo, al ejecutar estos comandos en la carpeta de código fuente se inicializará el repositorio.
BashCopiar
git init
git add .
Estos comandos le permitirán inicializar un repositorio de Git local y crear una primera
confirmación con el código. Podrá aprovechar de inmediato la ventaja de mantener un historial
de los cambios con confirmaciones. Más adelante, también podrá sincronizar el repositorio
local con un repositorio remoto, por ejemplo, hospedado en GitHub. Así, podrá configurar la
integración continua y la implementación continua (CI/CD). Aunque se recomienda usar un
repositorio de control de código fuente para las aplicaciones de producción, no es necesario
para implementar una aplicación en Azure App Service.
Nota
El uso de CI/CD permite una implementación de código más frecuente de forma confiable,
mediante la automatización de las compilaciones, las pruebas y las implementaciones para
cada cambio de código. Permite ofrecer nuevas características y correcciones de errores para la
aplicación de forma más rápida y eficaz.
Completado100 XP
5 minutos
En esta unidad, usará herramientas de desarrollo para crear el código de una aplicación web de
inicio.
Para crear una aplicación web de inicio se usará el marco de trabajo de la aplicación web Flask.
1. Ejecute los comandos siguientes en Azure Cloud Shell para configurar un entorno
virtual e instalar Flask en el perfil:
BashCopiar
source venv/bin/activate
BashCopiar
mkdir ~/BestBikeApp
cd ~/BestBikeApp
BashCopiar
code application.py
PythonCopiar
app = Flask(__name__)
@app.route("/")
def hello():
5. Guarde el archivo y salga del editor. Para ello, seleccione el menú ... en la parte
superior derecha y elija Guardar>Cerrar editor o presione Ctrl+S y Ctrl+Q en Windows
y Linux.
BashCopiar
1. Abra una segunda sesión del shell de comandos en una nueva pestaña del
explorador https://shell.azure.com/.
BashCopiar
cd ..
source venv/bin/activate
3. Desde la sesión de shell de comandos principal (a la derecha), ejecute los comandos
siguientes para iniciar la aplicación web:
BashCopiar
cd ~/BestBikeApp
export FLASK_APP=application.py
flask run
BashCopiar
curl http://127.0.0.1:5000/
HTMLCopiar
Completado100 XP
3 minutos
Implementación automatizada
Implementación manual
Hay algunas opciones que puede usar para insertar el código en Azure de forma manual:
Git: App Service Web Apps incluyen una dirección URL de Git que se puede agregar
como repositorio remoto. Al insertar en el repositorio remoto se implementará la
aplicación.
FTP/S: FTP o FTPS es una manera tradicional de insertar el código en muchos entornos
de hospedaje, incluido App Service.
Completado100 XP
5 minutos
Compruebe su cuenta.
En primer lugar, es necesario recopilar información sobre el recurso de aplicación web. Ejecute
estos comandos para establecer las variables de shell que contienen el nombre de la
aplicación, el nombre del grupo de recursos, el nombre del plan, la SKU y la ubicación. Usan
otros comandos de az para solicitar la información de Azure; az webapp up necesita estos
valores para dirigirse a la aplicación web existente.
BashCopiar
Ahora, ejecute az webapp up con los valores adecuados. Asegúrese de que está en el
directorio BestBikeApp antes de ejecutar este comando.
BashCopiar
cd ~/BestBikeApp
La implementación tardará unos minutos, periodo durante el que obtendrá la salida de estado.
Comprobación de la implementación
Ahora se examinará la aplicación. En el resultado, justo antes del bloque de código JSON, hay
una línea con una dirección URL. Seleccione ese vínculo para abrir la aplicación en una nueva
pestaña del explorador. La página puede tardar un momento en cargarse porque es la primera
vez que App Service inicializa la aplicación.
Resumen
Completado200 XP
2 minutos
Limpieza
El espacio aislado limpia los recursos automáticamente cuando haya terminado con este
módulo.
Más información
BLOQUE 2
Introducción
Completado100 XP
3 minutos
Imagine que trabaja para un minorista de ropa en línea que está planeando el desarrollo de
una serie de aplicaciones internas, pero que todavía no ha decidido cómo hospedarlas. Busca
la máxima compatibilidad y las aplicaciones se pueden hospedar en el entorno local, en Azure
o en otro proveedor de nube. Es posible que algunas de las aplicaciones compartan una
infraestructura de IaaS. En estos casos, la empresa requiere que las aplicaciones estén aisladas
entre sí. Las aplicaciones pueden compartir los recursos de hardware, pero una aplicación no
debería ser capaz de interferir con los archivos, el espacio de memoria u otros recursos que
usen otras aplicaciones. La empresa valora la eficacia de sus recursos y quiere algo con una
historia convincente de desarrollo de aplicaciones. Docker parece una solución ideal para estos
requisitos. Con Docker, puede compilar e implementar una aplicación rápidamente y ejecutarla
en su entorno a medida, ya sea de forma local o en la nube.
En este módulo, empaquetará una aplicación existente como una imagen de Docker.
Automatizará el proceso de compilación de la imagen mediante la definición de los pasos de
compilación en un Dockerfile. Probará la aplicación de forma local mediante Docker para
Windows. Por último, cargará la imagen en Azure Container Registry y ejecutará la aplicación
en Azure mediante el servicio Instancia de Azure Container.
Al final de este módulo, podrá compilar imágenes de Docker y ejecutarlas desde Azure.
Objetivos de aprendizaje
Crear un Dockerfile para una nueva imagen de contenedor en función de una imagen
de arranque desde Docker Hub.
Requisitos previos
Nota
Los ejercicios de este módulo requieren una instalación local de Docker y Git.
Completado100 XP
10 minutos
Docker es una tecnología que permite implementar aplicaciones y servicios de forma rápida y
sencilla. Una aplicación de Docker se ejecuta con una imagen de Docker. Una imagen de Docker
es un entorno previamente empaquetado que contiene el código de la aplicación y el entorno
en el que se ejecuta el código.
En el escenario corporativo que se ha descrito antes, quiere investigar la viabilidad de
empaquetar y ejecutar una aplicación con Docker. Decide compilar e implementar una imagen
de Docker en la que se ejecuta una aplicación web de prueba.
En esta unidad, obtendrá información sobre los conceptos clave y los procesos implicados en la
ejecución de una aplicación en contenedores almacenada en una imagen de Docker.
Normalmente, una aplicación en contenedores tiene una superficie de memoria mucho menor
que una máquina virtual configurada para ejecutar la misma aplicación. Esta superficie de
memoria más reducida se debe a que una máquina virtual tiene que facilitar el sistema
operativo completo y el entorno de respaldo asociado. Un contenedor de Docker no tiene esta
sobrecarga, porque Docker usa el kernel del sistema operativo del equipo host para alimentar
el contenedor. La descarga y el inicio de una imagen de Docker son mucho más rápidos y más
eficaces en lo que al espacio respecta que la descarga y ejecución de una máquina virtual que
proporciona una funcionalidad similar.
Para crear una aplicación en contenedores, se compila una imagen que contiene un conjunto
de archivos y una sección de información de configuración que usa Docker. Para ejecutar la
aplicación, hay que pedir a Docker que inicie un contenedor basado en la imagen. Cuando el
contenedor se inicia, Docker usa la configuración de la imagen para determinar qué aplicación
se va a ejecutar dentro del contenedor. Docker proporciona los recursos del sistema operativo
y la seguridad necesaria. Garantiza que los contenedores se ejecutan simultáneamente y
permanecen relativamente aislados.
Importante
Docker no proporciona el nivel de aislamiento disponible con las máquinas virtuales. Una
máquina virtual implementa el aislamiento en el nivel de hardware. Los contenedores de
Docker comparten bibliotecas y recursos del sistema operativo subyacentes. Sin embargo,
Docker impide que un contenedor acceda a los recursos de otro si esos contenedores no están
configurados para ello.
Puede ejecutar Docker en el equipo de escritorio o portátil si realiza el desarrollo y las pruebas
de forma local. Para los sistemas de producción, Docker está disponible para entornos de
servidor, incluidas muchas variantes de Linux y Microsoft Windows Server 2016. Muchos
proveedores también admiten Docker en la nube. Por ejemplo, puede almacenar imágenes de
Docker en Azure Container Registry y ejecutar contenedores con Azure Container Instances.
En este módulo, usará Docker localmente para compilar y ejecutar una imagen.
Posteriormente, cargará la imagen en Azure Container Registry y la ejecutará en Azure
Container Instances. Esta versión de Docker es adecuada para el desarrollo local y las pruebas
de imágenes de Docker.
Los creadores de imágenes de Docker que quieran ofrecer una funcionalidad similar tanto en
las imágenes basadas en Linux como en Windows pueden crear esas imágenes por separado.
Por ejemplo, Microsoft ofrece imágenes de Docker para Windows y Linux con un entorno de
ASP.NET Core que se puede usar como base para las aplicaciones ASP.NET Core en
contenedores.
En los equipos Linux con Docker instalado solo se pueden ejecutar contenedores de Linux. En
los equipos Windows con Docker instalado se pueden ejecutar los dos tipos de contenedores.
Para ello, Windows usa una máquina virtual para ejecutar un sistema Linux y usa el sistema
virtual de Linux para ejecutar los contenedores de Linux.
Un registro se organiza como una serie de repositorios. Cada repositorio contiene varias
imágenes de Docker que comparten un nombre común (y, por lo general, la misma finalidad y
funcionalidad). Estas imágenes suelen tener versiones diferentes que se identifican con una
etiqueta. Este mecanismo permite publicar y mantener varias versiones de imágenes por
motivos de compatibilidad. Cuando descargue y ejecute una imagen, tendrá que especificar el
registro, el repositorio y la etiqueta de versión de la imagen. Las etiquetas son etiquetas de
texto, y puede usar su sistema de numeración (v1.0, v1.1, v1.2, v2.0, etc.).
Imagine que quiere usar la imagen de Docker de ASP.NET Core Runtime. Esta imagen está
disponible en dos versiones:
mcr.microsoft.com/dotnet/core/aspnet:2.2
mcr.microsoft.com/dotnet/core/aspnet:2.1
Ahora, imagine que quiere usar las imágenes de Docker de ejemplo de .NET Core. Aquí
tenemos cuatro versiones disponibles entre las que elegir:
mcr.microsoft.com/dotnet/samples:dotnetapp
mcr.microsoft.com/dotnet/samples:aspnetapp
Nota
Una sola imagen puede tener varias etiquetas asignadas. Por convención, a la versión más
reciente de una imagen se le asigna la etiqueta latest, además de otra que describe su número
de versión. Cuando publique una nueva versión de una imagen, puede volver a asignar la
etiqueta latest para hacer referencia a la nueva imagen.
A menudo encontrará que en Docker Hub hay una imagen que coincide con el tipo de
aplicación que quiere incluir en contenedores. Puede descargar esa imagen y ampliarla con
código de la aplicación.
Docker Hub contiene varios miles de imágenes. Puede buscar y examinar un registro mediante
Docker desde la línea de comandos o desde el sitio web de Docker Hub. El sitio web permite
buscar, filtrar y seleccionar imágenes por tipo y por publicador. En la imagen siguiente se
muestra un ejemplo de la página de búsqueda.
Para recuperar una imagen, se usa el comando docker pull con el nombre de la imagen. Docker
descargará de forma predeterminada la imagen etiquetada con latest desde ese repositorio en
Docker Hub si solo se especifica el nombre del repositorio. Cabe decir que el comando se
puede modificar para obtener diferentes etiquetas y desde distintos repositorios. En este
ejemplo se captura la imagen con la etiqueta aspnetapp del
repositorio mcr.microsoft.com/dotnet/core/samples:aspnetapp. Esta imagen contiene una
aplicación web de ASP.NET Core sencilla.
Nota
Los ejemplos de esta unidad están diseñados para mostrar la sintaxis de los distintos comandos
de Docker. No es necesario que los ejecute mientras lee esta unidad. En los ejercicios que
siguen a esta unidad se le guiará por la forma de trabajar directamente con Docker.
BashCopiar
Al capturar una imagen, Docker la almacena de forma local y la pone a disposición de los
contenedores en ejecución. Puede ver las imágenes en el registro local con el comando docker
image list.
BashCopiar
ConsolaCopiar
Use el comando docker run para iniciar un contenedor. Especifique la imagen que se va a
ejecutar con su nombre o identificador. Si todavía no ha aplicado docker pull a la imagen,
Docker lo hará de forma automática.
BashCopiar
ConsolaCopiar
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
Esta imagen contiene una aplicación web, por lo que ahora escucha las solicitudes que llegan
en el puerto HTTP 80. Pero si abre un explorador web y va a http://localhost:80, no verá la
aplicación.
Docker no permite de forma predeterminada que las solicitudes de red entrantes lleguen al
contenedor. Hay que indicar a Docker que asigne un número de puerto específico del equipo a
un número de puerto específico del contenedor, agregando para ello la opción -p a docker run.
Esta instrucción permite las solicitudes de red al contenedor en el puerto especificado.
Además, la aplicación web de esta imagen no está pensada para usarse de forma interactiva
desde la línea de comandos. Cuando se inicia, la intención es que Docker la inicie en segundo
plano y simplemente permita que se ejecute. Use la marca -d para indicar a Docker que inicie la
aplicación web en segundo plano.
Presione Ctrl+C para detener la imagen y, después, reiniciarla como se muestra en el siguiente
ejemplo:
BashCopiar
El comando asigna el puerto 80 del contenedor al puerto 8080 del equipo. Si visita la
página http://localhost:8080 en un explorador, verá la aplicación web de ejemplo.
Contenedores y archivos
Si un contenedor en ejecución realiza cambios en los archivos de su imagen, esos cambios solo
existen en el contenedor donde se hayan realizado. A menos que realice pasos específicos para
conservar el estado de un contenedor, estos cambios se pierden cuando se quite el contenedor.
De forma similar, varios contenedores basados en la misma imagen que se ejecutan de forma
simultánea no comparten los archivos de la imagen. Cada contenedor tiene su propia copia
independiente. Los datos escritos por un contenedor en su sistema de archivos no son visibles
para el otro.
BashCopiar
docker ps
La salida incluye el estado del contenedor (Up si se está ejecutando, Exited si ha finalizado)
entre otros valores, como las marcas de línea de comandos especificadas al iniciar la imagen y
otra información. Docker permite ejecutar varios contenedores de forma simultánea a partir la
misma imagen, por lo que a cada contenedor se le asigna un identificador único y un nombre
legible único. La mayoría de los comandos de Docker que se usan para administrar
contenedores individuales pueden utilizar el identificador o el nombre para hacer referencia a
un contenedor específico.
En la siguiente salida, puede ver dos contenedores. El campo PORTS muestra que el
contenedor con el identificador elegant_ramanujan es la imagen que se ejecuta con el puerto
80 en el host de Docker asignado al puerto 8080 del equipo. La instancia
de youthful_heisenberg es el contenedor de la ejecución anterior de la imagen. El
campo COMMAND muestra el comando que el contenedor ha ejecutado para iniciar la
aplicación en la imagen. En este caso, es dotnet aspnetapp.dll en ambos contenedores. El
identificador de imagen para los contenedores también es el mismo, ya que los contenedores
ejecutan la misma imagen.
ConsolaCopiar
docker ps es un acceso directo para docker container ls. Los nombres de estos comandos se
basan en las utilidades de Linux ps y ls, que enumeran los procesos en ejecución y los archivos,
respectivamente.
Puede detener un contenedor activo con el comando docker stop y especificar el identificador
del contenedor.
BashCopiar
ConsolaCopiar
Puede reiniciar un contenedor detenido con el comando docker start. El proceso principal del
contenedor se inicia de nuevo.
BashCopiar
BashCopiar
docker rm elegant_ramanujan
BashCopiar
Puede eliminar una imagen del equipo local con el comando docker image rm. Especifique el
identificador de imagen de la imagen que se va a eliminar. En el ejemplo siguiente se quita la
imagen de la aplicación web de ejemplo.
BashCopiar
Los contenedores que ejecuten la imagen tendrán que terminarse antes de que se pueda
quitar la imagen. Si el contenedor sigue usando la imagen, obtendrá un mensaje de error como
el que se muestra a continuación. En este ejemplo, el error se produce porque el
contenedor youthful_heisenberg sigue usando la imagen.
ConsolaCopiar
Error response from daemon: conflict: unable to delete 575d85b4a69b (cannot be forced) -
image is being used by running container c13165988cfe
Completado100 XP
6 minutos
Un buen punto de partida para compilar y ejecutar imágenes de Docker propias consiste en
tomar una imagen existente de Docker Hub y ejecutarla de forma local en el equipo.
Como una prueba de concepto para las aplicaciones de la empresa, decide intentar ejecutar
una imagen de ejemplo desde Docker Hub. La imagen que ha seleccionado implementa una
aplicación web ASP.NET básica de .NET Core. Una vez que haya establecido un proceso para
implementar una imagen de Docker, podrá ejecutar una de las aplicaciones web de la empresa
mediante Docker.
En este ejercicio, extraerá una imagen de Docker Hub y la ejecutará. Examinará el estado local
de Docker para comprender los elementos que se implementan. Por último, quitará el
contenedor y la imagen del equipo.
Importante
Este ejercicio se realiza en el equipo, no en Azure. Necesita una instalación local de Docker para
continuar con el ejercicio. Descargue: https://hub.docker.com/editions/community/docker-
ce-desktop-windows/
3. Escriba el código siguiente para extraer la imagen de aplicación ASP.NET Sample del
Registro de Docker Hub. Esta imagen contiene una aplicación web de ejemplo
desarrollada por Microsoft y se basa en la plantilla de ASP.NET predeterminada
disponible en Visual Studio.
BashCopiar
BashCopiar
docker image ls
5. Escriba el código siguiente para iniciar la aplicación de ejemplo. La marca -d sirve para
ejecutarla como una aplicación no interactiva en segundo plano. La marca -p es para
asignar el puerto 80 en el contenedor que se crea al puerto 8080 localmente. Esta
configuración está pensada para evitar conflictos con las aplicaciones web que ya se
ejecutan en el equipo. El comando responderá con un identificador hexadecimal largo
para la instancia.
BashCopiar
1. En el símbolo del sistema, ejecute el siguiente comando para ver los contenedores en
ejecución en el Registro local.
BashCopiar
docker ps
ConsolaCopiar
BashCopiar
docker container stop <NAME>
BashCopiar
docker ps -a
BashCopiar
BashCopiar
docker ps -a
BashCopiar
docker image ls
BashCopiar
5. La salida debería mostrar que numerosos elementos que se han eliminado y están sin
etiquetar. Ejecute el comando siguiente para volver a mostrar las imágenes y
comprobar que la imagen para la aplicación web microsoft/dotnet-samples ha
desaparecido.
BashCopiar
docker image ls
Personalización de una imagen de Docker para ejecutar una aplicación web propia
Completado100 XP
5 minutos
Docker Hub es una fuente excelente de imágenes que le permite comenzar a compilar
aplicaciones en contenedores propias. Puede descargar una imagen que proporcione la
funcionalidad básica que necesita y, luego, colocar la aplicación propia sobre ella para crear
una imagen personalizada. Puede automatizar los pasos para realizar este proceso mediante la
escritura de un Dockerfile.
En el escenario de la tienda de ropa en línea, la empresa ha decidido que Docker es una buena
idea. El siguiente paso consiste en determinar la forma óptima de incluir las aplicaciones web
en contenedores. La compañía pretende construir muchas de las aplicaciones mediante
ASP.NET Core. Ha observado que Docker Hub contiene una imagen base que incluye este
marco. Como una prueba de concepto, quiere comenzar con esta imagen base y agregar el
código de una de las aplicaciones web para crear una imagen personalizada. También quiere
que este proceso se pueda repetir con facilidad, para automatizarlo cada vez que se publique
una versión nueva de la aplicación web.
En esta unidad, obtendrá información sobre cómo crear una imagen de Docker personalizada y
cómo puede automatizar el proceso mediante la escritura de un Dockerfile.
Para crear una imagen de Docker que contenga la aplicación, normalmente empezará
identificando una imagen base a la que agregar archivos e información de configuración. El
proceso de identificación de una imagen base adecuada normalmente comienza con una
búsqueda de imágenes en Docker Hub. Desea una imagen que ya contenga un marco de
aplicación y todas las utilidades y herramientas de una distribución de Linux, como Ubuntu o
Alpine. Por ejemplo, si tiene una aplicación ASP.NET Core que quiere empaquetar en un
contenedor, Microsoft publica una imagen llamada mcr.microsoft.com/dotnet/core/aspnet que
ya contiene el runtime de ASP.NET Core.
Puede personalizar una imagen si inicia un contenedor con la imagen base y lo modifica. En
general, los cambios implican actividades como la copia de archivos del sistema de archivos
local en el contenedor y la ejecución de varias herramientas y utilidades para compilar código.
Cuando haya terminado, use el comando docker commit para guardar los cambios en una
imagen nueva.
Completar el proceso anterior de forma manual es una operación lenta y propensa a errores.
Se podría incluir en script con un lenguaje de script como Bash, pero Docker ofrece una forma
más eficaz de automatizar la creación de imágenes a través de un Dockerfile.
Un Dockerfile es un archivo de texto sin formato que contiene todos los comandos necesarios
para compilar una imagen. Los Dockerfile se escriben en un lenguaje de scripting mínimo
diseñado para compilar y configurar imágenes. Documentan las operaciones necesarias para
crear una imagen a partir de una imagen base.
En el ejemplo siguiente se muestra un Dockerfile que crea una aplicación .NET Core 2.2 y la
empaqueta en una imagen nueva.
DockerfileCopiar
FROM mcr.microsoft.com/dotnet/core/sdk:2.2
WORKDIR /app
COPY myapp_code .
EXPOSE 80
WORKDIR /rel
Get-Help Acción
WORKDIR Establece el directorio de trabajo actual en el contenedor, que usan los comandos posteriores.
COPY Copia los archivos del equipo host al contenedor. El primer argumento (myapp_code) es un archivo o
segundo argumento (.) especifica el nombre del archivo o carpeta que va actuar como destino en el co
destino es el directorio de trabajo actual (/app).
EJECUTAR Ejecuta un comando en el contenedor. Los argumentos del comando RUN son argumentos de línea de
EXPOSE Crea la configuración de la nueva imagen que especifica qué puertos se van a abrir cuando se ejecute
contenedor ejecuta una aplicación web, es habitual exponer el puerto 80.
ENTRYPOINT Especifica la operación que debe ejecutar el contenedor cuando se inicie. En este ejemplo, ejecuta la a
Especifique el comando que desea ejecutar y cada uno de sus argumentos como una matriz de caden
Por convención, las aplicaciones diseñadas para empaquetarse como imágenes de Docker
normalmente tienen un Dockerfile ubicado en la raíz de su código fuente, y casi siempre se
denomina Dockerfile.
El comando docker build crea una imagen mediante la ejecución de un Dockerfile. La sintaxis
de este comando tiene varios parámetros:
BashCopiar
Completado100 XP
12 minutos
Un Dockerfile contiene los pasos para compilar una imagen de Docker personalizada.
Decide implementar una de las aplicaciones web de su organización con Docker. Selecciona una
aplicación web sencilla que implementa una API web para un sitio web de reservas de hotel. La
API web expone operaciones POST y GET de HTTP para crear y recuperar las reservas del
cliente.
Nota
En esta versión de la aplicación web, las reservas no se conservan realmente y las consultas
devuelven datos ficticios.
En este ejercicio, creará un Dockerfile para una aplicación que no tiene uno. Después,
compilará la imagen y la ejecutará de forma local.
2. En una ventana del símbolo del sistema en el equipo local, ejecute el comando
siguiente para descargar el código fuente de la aplicación web.
BashCopiar
BashCopiar
cd mslearn-hotel-reservation-system/src
BashCopiar
notepad Dockerfile
Nota
DockerfileCopiar
FROM mcr.microsoft.com/dotnet/core/sdk:2.2
WORKDIR /src
COPY ["/HotelReservationSystemTypes/HotelReservationSystemTypes.csproj",
"HotelReservationSystemTypes/"]
Este código incluye comandos para capturar una imagen que contiene el SDK de .NET Core
Framework. Los archivo de proyecto para la aplicación web (HotelReservationSystem.csproj) y
el proyecto de biblioteca (HotelReservationSystemTypes.csproj) se copian en la carpeta /src del
contenedor. El comando dotnet restore descarga de NuGet las dependencias que requieren
estos proyectos.
DockerfileCopiar
COPY . .
WORKDIR "/src/HotelReservationSystem"
DockerfileCopiar
El comando dotnet publish copia los archivos ejecutables para el sitio web en una carpeta
nueva y quita todos los archivos intermedios. Después, los archivos de esta carpeta se pueden
implementar en un sitio web.
DockerfileCopiar
EXPOSE 80
WORKDIR /app
1. En el símbolo del sistema, ejecute el comando siguiente para compilar la imagen para
la aplicación de ejemplo mediante el Dockerfile. No olvide . al final del comando. Este
comando compila la imagen y la almacena de forma local. A la imagen se le asigna el
nombre reservationsystem. Compruebe que la imagen se compila correctamente.
Cuando finalice el proceso, se mostrará una advertencia sobre los permisos de archivos
y directorios. Puede ignorar estas advertencias para los fines de este ejercicio. La
imagen puede tardar un momento en compilarse.
BashCopiar
BashCopiar
ConsolaCopiar
BashCopiar
Reemplace el "1" al final de la dirección URL de localhost por un número de reserva diferente
(como 2 o 20) para ver los detalles de la reserva correspondiente.
3. Ejecute el siguiente comando para ver el estado del contenedor:
BashCopiar
docker ps -a
ID. DE CONTENEDOR
IMAGEN
COMANDO
HORA DE CREACIÓN
STATUS
PUERTOS
NAMES
ConsolaCopiar
BashCopiar
BashCopiar
docker rm reservations
Completado100 XP
5 minutos
Azure Container Instances es un servicio que carga y ejecuta imágenes de Docker a petición. El
servicio Azure Container Instances puede recuperar una imagen de un Registro, como Docker
Hub o Azure Container Registry.
Su organización quiere usar Azure para ejecutar sus aplicaciones web. Por este motivo, tiene
sentido almacenar las imágenes en Azure Container Registry y ejecutarlas mediante el servicio
Instancia de Azure Container.
En esta unidad, obtendrá información sobre cómo insertar una imagen de Docker en Azure
Container Registry. Posteriormente, ejecutará la imagen mediante el servicio Azure Container
Instances.
Puede crear un registro mediante Azure Portal o mediante la interfaz de la línea de comandos
(CLI) de Azure. Puede usar Azure Cloud Shell en Azure Portal o una instalación local de la CLI de
Azure. Tenga en cuenta que tendrá que crear un grupo de recursos antes de crear el Registro.
Al crear un grupo de recursos, se recomienda elegir la región más cercana. En este ejemplo, el
nombre del grupo de recursos es mygroup y la ubicación es Oeste de EE. UU.
Nota
Azure CLICopiar
Azure CLICopiar
az acr create --name <unique name> --resource-group mygroup --sku standard --admin-
enabled true
Los repositorios de Azure Container Registry son privados, es decir, no admiten el acceso no
autenticado. Para extraer imágenes de un repositorio de Azure Container Registry, use el
comando docker login y especifique la dirección URL del servidor de inicio de sesión para el
registro. La dirección URL del servidor de inicio de sesión para un registro de Azure Container
Registry tiene el formato <nombre_del_registro>.azurecr.io.
BashCopiar
Azure CLICopiar
Para insertar una imagen desde el equipo local a un Registro de Docker, se usa el
comando docker push. Pero antes de insertar una imagen, debe crear un alias para la imagen
en el que se especifique el repositorio y la etiqueta que crea el Registro de Docker. El nombre
del repositorio debe tener el formato
*<servidor_de_inicio_de_sesión>/<nombre_de_la_imagen>:<etiqueta/>. Use el
comando docker tag para realizar esta operación. En el ejemplo siguiente se crea un alias para
la imagen reservationsystem.
BashCopiar
Si ejecuta docker image ls, verá dos entradas para la imagen: una con el nombre original y la
segunda con el nuevo alias.
Después de ejecutar el comando tag, puede cargar la imagen en el Registro en Azure Container
Registry mediante el comando siguiente.
BashCopiar
Para comprobar que la imagen se ha cargado correctamente, enumere los repositorios del
Registro con el comando siguiente.
Azure CLICopiar
También puede enumerar las imágenes del Registro con el comando acr repository show.
Azure CLICopiar
Nota
Verá al menos dos etiquetas para cada imagen de un repositorio. Una etiqueta será el valor que
ha especificado en el comando acr build (v1 en el ejemplo anterior). La otra será latest. Cada
vez que recompile una imagen, Azure Container Registry crea automáticamente la
etiqueta latest como un alias para la versión más reciente de la imagen.
El servicio Instancia de Azure Container puede cargar una imagen desde Azure Container
Registry y ejecutarla en Azure.
Puede crear una instancia de contenedor e iniciar la ejecución de la imagen con el comando az
container create. Proporcione el nombre de usuario y la contraseña para el registro en los
parámetros registry-username y registry-password. Se asignará una dirección IP a la instancia.
Con esta dirección IP se accede a la instancia. Opcionalmente, puede especificar un nombre
DNS si prefiere hacer referencia a la instancia a través de una etiqueta más fácil de usar. Tenga
en cuenta que la imagen se especifica como una dirección URL que hace referencia el registro
(myregistry) en el servicio Azure Container Registry (azurecr.io). Si usa Docker Hub o algún otro
registro, reemplace esta dirección URL por la URL de la imagen en ese registro.
Azure CLICopiar
Azure hospeda la instancia con un nombre de dominio basado en la etiqueta DNS especificada.
Para buscar el nombre de dominio completo de la instancia, consulte la dirección IP de la
instancia.
Azure CLICopiar
Puede acceder a la aplicación mediante un explorador web. Puede navegar a la dirección URL
devuelta por este comando; en la unidad siguiente se verá cómo.
Completado100 XP
14 minutos
En el ejercicio anterior, empaquetó y probó la aplicación web como una imagen de Docker
local. Ahora, quiere usar la salida de ese ejercicio y hacer que la aplicación web esté disponible
globalmente. Para ello, ejecute la imagen como una instancia de Azure Container Instances.
En este ejercicio, aprenderá a recompilar la imagen para la aplicación web y a cargarla en Azure
Container Registry. Usará el servicio Instancia de Azure Container para ejecutar la imagen.
Importante
Para realizar este ejercicio, se necesita una suscripción de Azure propia y puede que se
apliquen cargos. Si aún no tiene una suscripción de Azure, cree una cuenta gratuita antes de
comenzar.
4. En la pestaña Aspectos básicos, escriba los valores siguientes para cada opción.
Configuración Value
Detalles del
proyecto
Detalles de
instancia
Nombre de Seleccione el nombre que haya elegido. El nombre del registro debe ser único dent
registro caracteres alfanuméricos.
SKU Estándar
9. Anote los valores de Nombre del Registro, Servidor de inicio de sesión, Nombre de
usuario y Contraseñas para el Registro de contenedor.
Nota
BashCopiar
BashCopiar
docker image ls
ConsolaCopiar
3. En el símbolo del sistema, inicie sesión en su instancia de Azure Container Registry. Use
el comando docker login y especifique el servidor de inicio de sesión para el registro
que ha anotado antes. Escriba el nombre de usuario y la contraseña de sus claves de
acceso cuando se le solicite.
BashCopiar
Nota
Podría recibir una respuesta de error de un demonio en la que se le indique que la aplicación
no está registrada con Microsoft Entra ID. Como se indicó anteriormente en este ejercicio, ha
habilitado la clave de acceso del Usuario administrador para probar la implementación.
BashCopiar
Espere hasta que se complete la carga. Este proceso tardará unos minutos en insertar todos los
objetos de la imagen en el repositorio. Puede observar el progreso a medida que cada objeto
avanza del estado Esperando a Preparando, Insertando y, finalmente, Insertado.
Comprobación del contenido del registro
1. En Azure Portal, haga clic en Crear un recurso. Aparecerá el panel Crear un recurso.
Hay varios pasos para configurar una instancia de contenedor. Empiece estableciendo la
información del grupo de recursos y los detalles del contenedor. Luego, configurare las
opciones de red del contenedor y reinicie la directiva.
3. En la pestaña Aspectos básicos, escriba los valores siguientes para cada opción.
Configuración Value
Imagen <registry-name>.azurecr.io/reservationsystem:latest
Servidor de inicio de sesión del registro de Escriba el nombre del servidor de inicio de sesión pa
imágenes
Nombre de usuario del registro de imágenes Escriba el nombre de usuario para el registro
Configuración Value
Tipo de SO Linux
Configuración Valor
Etiqueta de nombre DNS Elija un nombre único, que se usará como parte de la dirección URL d
Puertos
Puertos 80
7. En la pestaña Opciones avanzadas, escriba los valores siguientes para cada opción.
Configuración Valor
8. Seleccione Revisar + crear. Espere a que se complete la validación y corrija los errores,
si es necesario.
9. Seleccione Crear.
http://hotel.southcentralus.azurecontainer.io/api/reservations/1
La aplicación web debería responder con un objeto JSON que contiene los detalles de la
reserva 1.
Resumen
Completado100 XP
2 minutos
Empaquetar una aplicación en una imagen de Docker ofrece una manera cómoda de
implementar y ejecutar la aplicación. Puede automatizar el proceso de creación de una imagen
de Docker mediante la definición de los pasos en un Dockerfile. Una vez que haya creado una
imagen, puede cargarla en un registro como Azure Container Registry. A partir de ahí, puede
crear una instancia de contenedor en la que se ejecute la aplicación.
En este módulo, ha creado recursos con su suscripción de Azure. Quiere limpiar estos recursos
para que no se le siga cobrando por ellos.
Más información
Referencia de Dockerfile
Introducción
Completado100 XP
5 minutos
Las cuentas de Azure Storage proporcionan una gran cantidad de opciones de seguridad que
protegen los datos basados en la nube. Servicios de Azure como Blob Storage, recurso
compartido de Files, Almacenamiento de tablas y Data Lake Store se basan en Azure Storage.
Por eso, estos servicios se benefician de los controles de seguridad específicos de Azure
Storage.
Imagine que la administradora de red de Contoso está realizando una auditoría de la seguridad
de los recursos del dominio. Al final de la auditoría, debe estar segura de que todos los datos
almacenados en Azure cumplen estrictamente la directiva de seguridad de Contoso. Como
consultor de datos principal de Contoso, usted va a ayudar a la administradora de red a
comprender cómo Azure Storage puede contribuir a cumplir los requisitos de seguridad de
Contoso.
Objetivos de aprendizaje
Completado100 XP
10 minutos
Contoso depende en gran medida de grandes cantidades de datos de Azure Storage. Sus
muchas aplicaciones dependen de recursos compartidos de archivos basados en blobs,
almacenamiento de tablas no estructurado, Azure Data Lake y Bloque de mensajes del servidor
(SMB).
Después de que el competidor de Contoso haya sufrido una vulneración de datos, Contoso
encarga al administrador de red que compruebe la seguridad de los datos de la organización.
Como consultor de datos de Contoso, usted asegura al administrador de red que las cuentas de
Azure Storage proporcionan varias ventajas de seguridad de alto nivel para los datos en la
nube:
Cifrado en reposo
Todos los datos escritos en Azure Storage se cifran automáticamente mediante Storage Service
Encryption (SSE) con un cifrado Estándar de cifrado avanzado (AES) de 256 bits, ya que es
compatible con FIPS 140-2. SSE cifra automáticamente los datos cuando se escriben en Azure
Storage. Cuando se leen datos de Azure Storage, este descifra los datos antes de devolverlos.
Este proceso no supone ningún cargo adicional ni afecta al rendimiento. No se puede
deshabilitar.
En el caso de las máquinas virtuales (VM), Azure permite cifrar los discos duros virtuales (VHD)
mediante Azure Disk Encryption. Este cifrado usa imágenes de BitLocker para Windows y dm-
crypt para Linux.
Azure Key Vault almacena las claves automáticamente para ayudar a controlar y administrar los
secretos y las claves del cifrado de discos. Así, aunque alguien obtenga acceso a la imagen del
disco duro virtual y la descargue, no puede acceder a los datos que contiene.
Cifrado en tránsito
Mantenga los datos protegidos al habilitar la seguridad de nivel de transporte entre Azure y el
cliente. Use siempre HTTPS para proteger la comunicación a través de Internet. Cuando llame a
las API de REST para acceder a objetos de cuentas de almacenamiento, puede aplicar HTTPS al
exigir transferencia segura para la cuenta de almacenamiento. Después de habilitar la
transferencia segura, se rechazan las conexiones que usan HTTP. Esta marca también aplica la
transferencia segura a través de SMB al exigir SMB 3.0 para todos los montajes de recursos
compartidos de archivos.
Contoso almacena varios tipos de recursos de sitio web en Azure Storage. Estos tipos incluyen
imágenes y vídeos. Para proteger las aplicaciones de explorador, Contoso bloquea las
solicitudes GET a dominios concretos.
Azure Storage admite el acceso entre dominios mediante Uso compartido de recursos entre
orígenes (CORS). CORS usa encabezados HTTP para que una aplicación web en un dominio
pueda acceder a recursos de un servidor en otro dominio. Con CORS, las aplicaciones web se
aseguran de cargar únicamente contenido autorizado de fuentes autorizadas.
La compatibilidad con CORS es una marca opcional que se puede habilitar en las cuentas de
almacenamiento. La marca agrega los encabezados adecuados al usar solicitudes HTTP GET
para recuperar recursos de la cuenta de almacenamiento.
Control de acceso basado en rol
Para acceder a los datos de una cuenta de almacenamiento, el cliente realiza una solicitud a
través de HTTP o HTTPS. Cada solicitud a un recurso seguro debe autorizarse. El servicio
garantiza que el cliente tenga los permisos necesarios para acceder a los datos. Puede elegir
entre varias opciones de acceso. Posiblemente, la opción más flexible sea el acceso basado en
roles.
Azure Storage es compatible con Microsoft Entra ID y el control de acceso basado en rol (RBAC)
para operaciones de administración de recursos y de datos. Para las entidades de seguridad,
puede asignar roles de RBAC que se limiten a la cuenta de almacenamiento. Puede usar Active
Directory para autorizar operaciones de administración de recursos, como la configuración.
Active Directory se admite en las operaciones de datos de Blob y Queue Storage.
Puede asignar roles RBAC a una entidad de seguridad o una identidad administrada de recursos
de Azure limitados a una suscripción, un grupo de recursos, una cuenta de almacenamiento, un
contenedor individual o una cola.
Auditoría de acceso
La auditoría es otra parte del control de acceso. Puede auditar el acceso de Azure Storage
mediante el servicio Storage Analytics integrado.
Storage Analytics registra cada operación en tiempo real, lo que permite al usuario buscar
solicitudes específicas en los registros de Storage Analytics. Puede filtrar por el mecanismo de
autenticación, el éxito de la operación o el recurso al que se ha accedido.
Completado100 XP
5 minutos
Muchos de los datos de Contoso son generados o usados por aplicaciones personalizadas. Las
aplicaciones están escritas en distintos lenguajes.
Las cuentas de Azure Storage pueden crear aplicaciones autorizadas en Active Directory para
controlar el acceso a los datos de blobs y colas. Este método de autenticación es la mejor
solución para las aplicaciones que usan Blob Storage o Queue Storage.
Para otros modelos de almacenamiento, los clientes pueden usar una clave compartida o un
secreto compartido. Esta opción de autenticación es una de las más fáciles de usar y, además,
admite blobs, archivos, colas y tablas. El cliente inserta la clave compartida en el
encabezado Authorization HTTP de cada solicitud y la cuenta de almacenamiento la valida.
Por ejemplo, una aplicación puede emitir una solicitud GET en un recurso de blob:
Copiar
GET http://myaccount.blob.core.windows.net/?restype=service&comp=stats
Los encabezados HTTP controlan la versión de la API de REST, la fecha y la clave compartida
codificada:
Copiar
x-ms-version: 2018-03-28
En las cuentas de Azure Storage, las claves compartidas se denominan claves de cuenta de
almacenamiento. Azure crea dos de estas claves (principal y secundaria) para cada cuenta de
almacenamiento que se crea. Las claves dan acceso a todo lo que hay en la cuenta.
La cuenta de almacenamiento solo tiene dos claves que proporcionan acceso completo a la
cuenta. Dado el poder de estas claves, úselas solamente con aplicaciones internas de confianza
que controle por completo.
Si las claves están en peligro, cambie los valores de clave en Azure Portal. Estas son algunas
otras razones para volver a generar las claves de la cuenta de almacenamiento:
Si el equipo usa una aplicación del Explorador de Storage que conserva la clave de la
cuenta de almacenamiento y uno de los miembros abandona el equipo, vuelva a
generar la clave. De lo contrario, la aplicación sigue funcionando, dando acceso a ese
antiguo miembro del equipo a la cuenta de almacenamiento.
Actualice la clave principal en Azure Portal. Este será el valor nuevo de clave
secundaria.
Importante
Una vez actualizadas las claves, se rechazará a cualquier cliente que intente usar el valor de
clave antiguo. Asegúrese de identificar a todos los clientes que usen la clave compartida y de
actualizarlos para mantenerlos operativos.
Completado100 XP
5 minutos
En el caso de los clientes que no son de confianza, use una firma de acceso compartido (SAS).
Una SAS es una cadena que contiene un token de seguridad que se puede asociar a un URI.
Puede usar una SAS para delegar el acceso a objetos de almacenamiento y especificar
restricciones, como los permisos y el intervalo de tiempo de acceso.
Puede dar a un cliente un token de SAS, por ejemplo, para que pueda cargar imágenes en un
sistema de archivos en Blob Storage. Por otro lado, puede dar permiso a una aplicación web
para que lea esas imágenes. En ambos casos, solo permite el acceso que la aplicación necesita
para realizar la tarea.
Puede usar una SAS de nivel de servicio para permitir el acceso a recursos específicos de una
cuenta de almacenamiento. Este tipo de SAS se usaría, por ejemplo, para permitir que una
aplicación recuperara una lista de archivos de un sistema de archivos o para descargar un
archivo.
Use una SAS de nivel de cuenta para permitir el acceso a todo lo que puede permitir una SAS
de nivel de servicio, además de a otros recursos y capacidades. Por ejemplo, puede usar una
SAS de nivel de cuenta para permitir la creación de sistemas de archivos.
UnaSAS normalmente se usaría para un servicio en el que los usuarios leyeran y escribieran sus
datos en la cuenta de almacenamiento. Las cuentas que almacenan datos de usuario tienen
dos diseños típicos:
Los clientes cargan y descargan datos mediante un servicio de proxy de front-end que
realiza la autenticación. Este servicio de proxy de front-end tiene la ventaja de permitir
la validación de reglas de negocio. Pero si el servicio debe controlar grandes cantidades
de datos o transacciones de gran volumen, es posible que le resulte complicado o
costoso escalarlo para satisfacer la demanda.
Un servicio ligero autentica al cliente según necesidad. A continuación, genera una SAS.
Después de recibir la SAS, el cliente puede acceder a los recursos de la cuenta de
almacenamiento directamente. La SAS define los permisos y el intervalo de acceso del
cliente. Reduce la necesidad de enrutar todos los datos a través del servicio de proxy
de front-end.
Completado100 XP
5 minutos
Importante
Puede administrar las reglas predeterminadas de acceso a redes para las cuentas de
almacenamiento a través de Azure Portal, PowerShell o la CLI de Azure.
Siga estos pasos para cambiar el acceso de red predeterminado en Azure Portal.
Completado100 XP
5 minutos
Microsoft Defender para Storage proporciona una capa adicional de inteligencia de seguridad
que detecta intentos inusuales y potencialmente dañinos de acceso a cuentas de
almacenamiento o de aprovechar sus vulnerabilidades. Esta capa de protección le permite
afrontar las amenazas sin necesidad de ser un experto en seguridad ni administrar sistemas de
supervisión de la seguridad.
Microsoft Defender para Storage está disponible actualmente para Blob Storage, Azure Files y
Azure Data Lake Storage Gen2. Los tipos de cuenta que admiten Microsoft Defender for Cloud
incluyen cuentas de uso general v2, blob en bloques y Blob Storage. Microsoft Defender para
Storage está disponible en todas las nubes públicas y de la Administración pública
estadounidense, pero no en otras regiones de nubes soberanas o de Azure Government.
Puede activar Microsoft Defender para Storage en Azure Portal mediante la página de
configuración de la cuenta de Azure Storage, o bien en la sección de seguridad avanzada de
Azure Portal. Siga estos pasos.
Naturaleza de la anomalía
Tipo de almacenamiento
Posibles causas
Pasos de investigación
El correo electrónico también incluye detalles sobre las posibles causas y las acciones
recomendadas para investigar y mitigar la posible amenaza.
Las alertas de seguridad vigentes se pueden revisar y administrar desde el icono Alertas de
seguridad de Microsoft Defender for Cloud. Al seleccionar una alerta específica, se
proporcionan detalles y acciones para investigar la amenaza actual y abordar las amenazas
futuras.
Completado100 XP
5 minutos
Azure Data Lake Storage Gen2 proporciona una solución de Data Lake de primera clase que
permite a las empresas consolidar sus datos. Se basa en Azure Blob Storage, así que hereda
todas las características de seguridad que se han visto en este módulo.
Junto con el control de acceso basado en rol (RBAC), Azure Data Lake Storage Gen2
proporciona listas de control de acceso (ACL) compatibles con POSIX que restringen el acceso a
los usuarios, los grupos o las entidades de servicio autorizados. Aplica las restricciones de una
manera flexible, específica y administrable. Azure Data Lake Storage Gen2 autentica mediante
tokens de portador de Microsoft Entra ID OAuth 2.0. Esto permite esquemas de autenticación
flexibles, lo que incluye la federación con Microsoft Entra Connect y la autenticación
multifactor, que proporciona una protección más potente que las meras contraseñas.
Lo más importante es que estos esquemas de autenticación están integrados en los servicios
de análisis principales que usan los datos. Estos servicios incluyen Azure Databricks, HDInsight
y Azure Synapse Analytics. También se incluyen herramientas de administración como el
Explorador de Azure Storage. Una vez que finaliza la autenticación, los permisos se aplican con
la mayor especificidad posible para garantizar el nivel adecuado de autorización para los
recursos de macrodatos de una empresa.
Resumen
Completado200 XP
5 minutos
Azure Storage proporciona un modelo de seguridad por capas. Puede usar este modelo para
proteger las cuentas de almacenamiento en un conjunto específico de redes admitidas. Al
configurar reglas de red, solo las aplicaciones que solicitan datos a través de las redes
especificadas pueden acceder a la cuenta de almacenamiento.
Introducción
Completado100 XP
3 minutos
Va a usar grupos de seguridad de red para proteger el tráfico de red de las máquinas virtuales
que se ejecutan en Azure. Obtendrá información sobre cómo usar puntos de conexión de
servicio de red virtual para controlar el tráfico de red hacia y desde los servicios de Azure,
como servicios de almacenamiento o de base de datos.
Objetivos de aprendizaje
Usará puntos de conexión de servicio de red virtual para controlar el tráfico de red
hacia y desde los servicios de Azure.
Requisitos previos
Completado100 XP
8 minutos
Como parte del proyecto para migrar el sistema de ERP a Azure debe asegurarse de que los
servidores tengan el aislamiento adecuado, de manera que solo los sistemas permitidos
puedan realizar conexiones de red. Por ejemplo, tiene servidores de bases de datos que
almacenan datos de la aplicación de ERP. Quiere evitar que sistemas prohibidos se comuniquen
con los servidores a través de la red, al tiempo que permite a los servidores de aplicaciones
comunicarse con los servidores de bases de datos.
Los grupos de seguridad de red filtran el tráfico de red hacia y desde recursos de Azure.
También contienen reglas de seguridad que se configuran para permitir o denegar el tráfico
entrante y saliente. Puede usar grupos de seguridad de red para filtrar el tráfico entre
máquinas virtuales o subredes, tanto dentro de una red virtual como desde Internet.
Los grupos de seguridad de red se asignan a una interfaz de red o una subred. Al asignar un
grupo de seguridad de red a una subred, las reglas se aplican a todas las interfaces de red de
esa subred. Puede restringir aún más el tráfico si asocia un grupo de seguridad de red a la
interfaz de red de una máquina virtual.
Al aplicar grupos de seguridad de red a una subred y a una interfaz de subred, cada grupo de
seguridad de red se evalúa por separado. El tráfico entrante primero lo evalúa el grupo de
seguridad de red aplicado a la subred y, después, el grupo de seguridad de red aplicado a la
interfaz de red. A la inversa, el grupo de seguridad de red aplicado a la interfaz de red es el
primero en evaluar el tráfico que sale de una máquina virtual, y luego lo hace el grupo de
seguridad de red aplicado a la subred.
Aplicar un grupo de seguridad de red a una subred, en lugar de interfaces de red individuales,
puede reducir los esfuerzos de administración. Este enfoque también garantiza que todas las
máquinas virtuales dentro de la subred especificada estén protegidas con el mismo conjunto
de reglas.
Cada interfaz de red y subred puede tener un grupo de seguridad de red aplicado. Los grupos
de seguridad de red admiten TCP, UDP e ICMP, y operan en la capa 4 del modelo OSI.
Reglas de seguridad
Un grupo de seguridad de red contiene una o varias reglas de seguridad. Puede configurar las
reglas de seguridad para permitir o denegar el tráfico.
Origen y destino Cualquiera, una dirección IP individual, un bloque de enrutamiento entre dominios sin clases (CID
una etiqueta de servicio o un grupo de seguridad de aplicaciones
Las reglas de seguridad de los grupos de seguridad de red se evalúan por prioridad mediante
información en tuplas de cinco elementos (origen, puerto de origen, destino, puerto de destino
y protocolo) para permitir o denegar el tráfico. Cuando las condiciones de una regla coinciden
con la configuración del dispositivo, se detiene el procesamiento de la regla.
Por ejemplo, imagine que la empresa ha creado una regla de seguridad para permitir el tráfico
entrante en el puerto 3389 (RDP) a los servidores web con una prioridad de 200. Después
imagine que otro administrador ha creado una regla para denegar el tráfico entrante en el
puerto 3389, con una prioridad de 150. La regla de denegación tiene prioridad porque se
procesa primero. La regla con prioridad 150 se procesa antes que la regla con prioridad 200.
Con los grupos de seguridad de red, las conexiones tienen estado. El tráfico de retorno se
permite de forma automática para la misma sesión TCP/UDP. Por ejemplo, una regla de entrada
que permite el tráfico en el puerto 80 también permite que la máquina virtual responda a la
solicitud (normalmente en un puerto efímero). No se necesita una regla de salida
correspondiente.
Respecto al sistema de ERP, los servidores web de la aplicación de ERP se conectan a los
servidores de bases de datos que se encuentran en sus propias subredes. Puede aplicar reglas
de seguridad para indicar que la única comunicación permitida desde los servidores web a los
de bases de datos sea el puerto 1433 para las comunicaciones de bases de datos de SQL Server.
Se denegará el resto del tráfico a los servidores de bases de datos.
Cuando sea crea un grupo de seguridad de red, Azure crea varias reglas predeterminadas. Estas
reglas predeterminadas no se pueden modificar, pero se pueden reemplazar por reglas propias.
Estas reglas predeterminadas permiten la conectividad dentro de una red virtual y de los
equilibradores de carga de Azure. También permiten la comunicación de salida a Internet y
deniegan el tráfico de entrada desde Internet.
65000 AllowVnetInbound Permitir el tráfico entrante procedente de todas las máquinas virtuales
Prioridad Nombre de la regla Descripción
dentro de la subred
65500 DenyAllInBound Denegar el tráfico desde cualquier origen externo a cualquiera de las m
65000 AllowVnetOutbound Permitir el tráfico de salida desde cualquier máquina virtual a cualquier máquina
65001 AllowInternetOutbound Permitir el tráfico saliente a Internet desde cualquier máquina virtual
65500 DenyAllOutBound Denegar el tráfico desde cualquier máquina virtual interna al sistema situado fue
Las reglas de seguridad aumentada se pueden usar para los grupos de seguridad de red con el
fin de simplificar la administración de un gran número de reglas. Las reglas de seguridad
aumentada también son útiles cuando es necesario implementar conjuntos de reglas de red
más complejos. Las reglas aumentadas permiten agregar las opciones siguientes en una sola
regla de seguridad:
Varias direcciones IP
Varios puertos
Etiquetas de servicio
Imagine que su empresa quiere restringir el acceso a los recursos del centro de datos,
repartidos en varios intervalos de direcciones de red. Con las reglas aumentadas, puede
agregar todos estos intervalos en una única regla, lo que reduce la sobrecarga administrativa y
la complejidad en los grupos de seguridad de red.
Etiquetas de servicio
Las etiquetas de servicio se pueden usar para simplificar todavía más la seguridad de los grupos
de seguridad de red. Puede permitir o denegar el tráfico a un servicio de Azure específico, ya
sea de forma global o por regiones.
Las etiquetas de servicio simplifican la seguridad de las máquinas virtuales y las redes virtuales
de Azure, ya que permiten restringir el acceso por recursos o servicios. Las etiquetas de
servicio representan un grupo de direcciones IP y ayudan a simplificar la configuración de las
reglas de seguridad. Para los recursos que se pueden especificar mediante una etiqueta, no es
necesario conocer los detalles del puerto o la dirección IP.
Puede restringir el acceso a muchos servicios. Microsoft administra las etiquetas de servicio, lo
cual significa que no puede crear las suyas propias. Algunos ejemplos de etiquetas:
VirtualNetwork: Representa todas las direcciones de red virtual en cualquier lugar en
Azure, y en la red local si usa conectividad híbrida.
Internet: Representa todo lo que está fuera de la dirección de red virtual y a lo que se
accede de forma pública, incluidos recursos que tienen direcciones IP públicas. Un
recurso de este tipo es la característica Web Apps de Azure App Service.
SQL: Representa la dirección de los servicios Azure SQL Database, Azure Database for
MySQL, Azure Database for PostgreSQL y Azure Synapse Analytics. Puede especificar si
se permite o se deniega el tráfico, así como limitarlo a una región específica.
Puede usar grupos de seguridad de aplicaciones dentro de un grupo de seguridad de red para
aplicar una regla de seguridad a un grupo de recursos. Es más fácil implementar y escalar
verticalmente cargas de trabajo de aplicaciones específicas; solo tiene que agregar una nueva
implementación de máquina virtual a uno o varios grupos de seguridad de aplicaciones y esa
máquina virtual recoge automáticamente las reglas de seguridad de esa carga de trabajo.
Un grupo de seguridad de aplicaciones permite agrupar interfaces de red. Luego se puede usar
ese grupo de seguridad de aplicaciones como regla de origen o destino dentro de un grupo de
seguridad de red.
Por ejemplo, su empresa tiene muchos servidores front-end en una red virtual. Los servidores
web deben ser accesibles a través de los puertos 80 y 8080. Los servidores de bases de datos
deben ser accesibles a través del puerto 1433. Las interfaces de red de los servidores web se
asignan a un grupo de seguridad de aplicaciones y las interfaces de red de los servidores de
bases de datos a otro grupo de seguridad de aplicaciones. Después, crea dos reglas de entrada
en el grupo de seguridad de red. Una regla permite el tráfico HTTP a todos los servidores del
grupo de seguridad de aplicaciones del servidor web. La otra regla permite el tráfico SQL a
todos los servidores del grupo de seguridad de aplicaciones del servidor de bases de datos.
Sin los grupos de seguridad de aplicaciones, deberá crear una regla independiente para cada
máquina virtual o agregar un grupo de seguridad de red a una subred y, posteriormente,
agregar todas las máquinas virtuales a esa subred.
Como procedimiento recomendado, siempre debe usar grupos de seguridad de red para
ayudar a proteger los recursos de red contra el tráfico no deseado. Los grupos de seguridad de
red ofrecen control de acceso pormenorizado sobre el nivel de red, sin la complejidad
potencial de establecer reglas de seguridad para cada máquina virtual o red virtual.
Completado100 XP
15 minutos
En esta unidad, configurará un grupo de seguridad de red y reglas de seguridad para restringir
el tráfico de red a servidores específicos. Quiere que el servidor de aplicaciones se pueda
conectar al servidor de bases de datos a través de HTTP. No quiere que el servidor de bases de
datos pueda usar HTTP para conectarse al servidor de aplicaciones.
1. En Azure Cloud Shell, ejecute el siguiente comando para asignar el grupo de recursos
del espacio aislado a la variable rg:
Azure CLICopiar
Azure CLICopiar
--resource-group $rg \
--name ERP-servers \
--address-prefixes 10.0.0.0/16 \
--subnet-name Applications \
--subnet-prefixes 10.0.0.0/24
3. Ejecute el comando siguiente en Cloud Shell para crear la subred Databases (Bases de
datos):
Azure CLICopiar
--resource-group $rg \
--vnet-name ERP-servers \
--address-prefixes 10.0.1.0/24 \
--name Databases
Azure CLICopiar
--resource-group $rg \
--name ERP-SERVERS-NSG
Azure CLICopiar
wget -N https://raw.githubusercontent.com/MicrosoftDocs/mslearn-secure-and-isolate-with-
nsg-and-service-endpoints/master/cloud-init.yml && \
az vm create \
--resource-group $rg \
--name AppServer \
--vnet-name ERP-servers \
--subnet Applications \
--nsg ERP-SERVERS-NSG \
--image Ubuntu2204 \
--size Standard_DS1_v2 \
--generate-ssh-keys \
--admin-username azureuser \
--custom-data cloud-init.yml \
--no-wait \
--admin-password <password>
Azure CLICopiar
az vm create \
--resource-group $rg \
--name DataServer \
--vnet-name ERP-servers \
--subnet Databases \
--nsg ERP-SERVERS-NSG \
--size Standard_DS1_v2 \
--image Ubuntu2204 \
--generate-ssh-keys \
--admin-username azureuser \
--custom-data cloud-init.yml \
--no-wait \
--admin-password <password>
3. Las máquinas virtuales pueden tardar varios minutos en estar en estado de ejecución.
Ejecute el comando siguiente en Cloud Shell para confirmar que las máquinas virtuales
están en ejecución:
Azure CLICopiar
az vm list \
--resource-group $rg \
--show-details \
--output table
Una vez completada la creación de la máquina virtual, debería ver la salida siguiente:
ResultadosCopiar
Ahora va a intentar abrir una sesión de Secure Shell (SSH) para cada una de las máquinas
virtuales. Recuerde que hasta ahora ha implementado un grupo de seguridad de red con reglas
predeterminadas.
1. Para conectarse a las máquinas virtuales, use SSH directamente desde Cloud Shell. Para
ello, necesita las direcciones IP públicas que se han asignado a las máquinas virtuales.
Ejecute el comando siguiente en Cloud Shell para mostrar las direcciones IP que se van
a usar para conectarse a las máquinas virtuales:
Azure CLICopiar
az vm list \
--resource-group $rg \
--show-details \
--output table
2. Para facilitar la conexión a las máquinas virtuales durante el resto de este ejercicio,
asigne las direcciones IP públicas a variables. Ejecute el comando siguiente en Cloud
Shell para guardar la dirección IP pública de AppServer y DataServer en una variable:
BashCopiar
APPSERVERIP="$(az vm list-ip-addresses \
--resource-group $rg \
--name AppServer \
--query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
--output tsv)"
DATASERVERIP="$(az vm list-ip-addresses \
--resource-group $rg \
--name DataServer \
--query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
--output tsv)"
BashCopiar
BashCopiar
Recuerde que las reglas predeterminadas deniegan todo el tráfico entrante en una red virtual,
a menos que proceda de la misma red virtual. La regla Denegar todo el tráfico entrante ha
bloqueado las conexiones SSH entrantes que acaba de intentar.
Entrada
1. Ejecute el comando siguiente en Cloud Shell para crear una regla de seguridad de
entrada para habilitar el acceso SSH:
Azure CLICopiar
--resource-group $rg \
--nsg-name ERP-SERVERS-NSG \
--name AllowSSHRule \
--direction Inbound \
--priority 100 \
--source-address-prefixes '*' \
--source-port-ranges '*' \
--destination-address-prefixes '*' \
--destination-port-ranges 22 \
--access Allow \
--protocol Tcp \
BashCopiar
La regla del grupo de seguridad de red puede tardar uno o dos minutos en surtir efecto. Si
recibe un mensaje de error de conexión, espere un momento e inténtelo de nuevo.
3. Ahora debería poder conectarse. Después del mensaje Are you sure you want to
continue connecting (yes/no)?, especifique yes.
BashCopiar
Ahora agregue una regla para que AppServer se pueda comunicar con DataServer a través de
HTTP, pero DataServer no se pueda comunicar con AppServer a través de HTTP. Estas son las
direcciones IP internas para estos servidores:
AppServer 10.0.0.4
DataServer 10.0.1.4
1. Ejecute el comando siguiente en Cloud Shell para crear una regla de seguridad de
entrada para denegar el acceso HTTP a través del puerto 80:
Azure CLICopiar
--resource-group $rg \
--nsg-name ERP-SERVERS-NSG \
--name httpRule \
--direction Inbound \
--priority 150 \
--source-address-prefixes 10.0.1.4 \
--source-port-ranges '*' \
--destination-address-prefixes 10.0.0.4 \
--destination-port-ranges 80 \
--access Deny \
--protocol Tcp \
BashCopiar
Ahora, cree un grupo de seguridad de aplicaciones para servidores de bases de datos de modo
que se pueda asignar la misma configuración a todos los servidores de este grupo. Está
planeando implementar más servidores de bases de datos y quiere evitar que estos accedan a
servidores de aplicaciones a través de HTTP. Si se asignan orígenes en el grupo de seguridad de
aplicaciones, no es necesario mantener de forma manual una lista de direcciones IP en el grupo
de seguridad de red, sino que se asignan las interfaces de red de las máquinas virtuales que se
quieren administrar al grupo de seguridad de aplicaciones.
Azure CLICopiar
--resource-group $rg \
--name ERP-DB-SERVERS-ASG
Azure CLICopiar
--resource-group $rg \
--application-security-groups ERP-DB-SERVERS-ASG \
--name ipconfigDataServer \
--nic-name DataServerVMNic \
--vnet-name ERP-servers \
--subnet Databases
3. Ejecute el comando siguiente en Cloud Shell para actualizar la regla HTTP en el grupo
de seguridad de red ERP-SERVERS-NSG. Debería hacer referencia al grupo de seguridad
de aplicaciones ERP-DB-Servers.
Azure CLICopiar
--resource-group $rg \
--nsg-name ERP-SERVERS-NSG \
--name httpRule \
--direction Inbound \
--priority 150 \
--source-address-prefixes "" \
--source-port-ranges '*' \
--source-asgs ERP-DB-SERVERS-ASG \
--destination-address-prefixes 10.0.0.4 \
--destination-port-ranges 80 \
--access Deny \
--protocol Tcp \
BashCopiar
3. Como antes, la respuesta debe incluir un mensaje 200 OK. La configuración del grupo
de seguridad de aplicaciones puede tardar uno o dos minutos en aplicarse. Si
inicialmente no recibe el mensaje 200 OK, espere un minuto e inténtelo de nuevo.
Ya ha confirmado que la regla del grupo de seguridad de red funciona con un grupo de
seguridad de aplicaciones del mismo modo que cuando se ha usado una dirección IP de origen.
Si agregáramos más servidores de datos, se podría garantizar con facilidad que tienen la
seguridad de red correcta si se agregan a ERP-DB-SERVERS-ASG.
Protección del acceso de red a servicios PaaS mediante puntos de conexión de servicio de red
virtual
Completado100 XP
5 minutos
Ha migrado la aplicación existente y los servidores de bases de datos del sistema de ERP a
Azure como máquinas virtuales. Ahora, para reducir los costos y los requisitos administrativos,
está planteándose la posibilidad de usar algunos servicios de plataforma como servicio (PaaS)
de Azure. Los servicios de almacenamiento contendrán algunos recursos de archivos grandes,
como diagramas de ingeniería. Estos diagramas de ingeniería tienen información de su
propiedad y deben permanecer protegidos frente a accesos no autorizados. Estos archivos solo
deben ser accesibles desde sistemas específicos.
En esta unidad, verá cómo se pueden usar los puntos de conexión de servicio de red virtual
para proteger servicios de Azure admitidos.
Use los puntos de conexión de servicio de red virtual para ampliar el espacio de direcciones
privadas en Azure proporcionando una conexión directa a los servicios de Azure. Los puntos de
conexión de servicio solo permiten proteger los recursos de Azure en la rede virtual. El tráfico
del servicio permanecerá en la red troncal de Azure y no pasa a Internet.
De forma predeterminada, todos los servicios de Azure están diseñados para el acceso directo
a Internet. Todos los recursos de Azure tienen direcciones IP públicas, incluidos los servicios
PaaS como Azure SQL Database y Azure Storage. Como estos servicios se exponen a Internet,
cualquiera puede acceder a los servicios de Azure.
Los puntos de conexión de servicio pueden conectar determinados servicios PaaS directamente
al espacio de direcciones privado de Azure, por lo que actúan como si estuvieran en la misma
red virtual. Use el espacio de direcciones privado para acceder directamente a los servicios
PaaS. La incorporación de puntos de conexión de servicio no quita el punto de conexión
público. Simplemente proporciona un redireccionamiento del tráfico.
Los puntos de conexión de servicio de Azure están disponibles para muchos servicios, como los
siguientes:
Azure Storage
Azure Cosmos DB
Para un servicio como SQL Database, al que no se puede acceder hasta que se agreguen
direcciones IP al firewall, debe seguir teniendo en cuenta los puntos de conexión de servicio
como una posibilidad. El uso de un punto de conexión de servicio para SQL Database restringe
el acceso a redes virtuales específicas, lo que proporciona mayor aislamiento y reduce la
superficie expuesta a ataques.
Esta es una tabla de rutas de ejemplo, antes de habilitar un punto de conexión de servicio:
Y esta es una tabla de rutas de ejemplo después de agregar dos puntos de conexión de servicio
a la red virtual:
ORIGEN ESTADO PREFIJOS DE DIRECCIÓN TIPO DEL PRÓXIMO SA
De forma predeterminada, los recursos de servicio que se han protegido mediante puntos de
conexión de servicio de red virtual no son accesibles desde redes locales. Para acceder a los
recursos desde una red local, use direcciones IP de NAT. Si usa ExpressRoute para la
conectividad desde el entorno local a Azure, tiene que identificar las direcciones IP de NAT que
ExpressRoute usa. De forma predeterminada, en cada circuito se usan dos direcciones IP de
NAT para conectarse a la red troncal de Azure. Después, tendrá que agregar estas direcciones
IP a la configuración del firewall IP del recurso de servicio de Azure (por ejemplo, Azure
Storage).
Ejercicio: Restricción del acceso a Azure Storage mediante puntos de conexión de servicio
Completado100 XP
10 minutos
En esta unidad, creará un punto de conexión de servicio y usará reglas de red para restringir el
acceso a Azure Storage. Creará un punto de conexión de servicio de red virtual para Azure
Storage en la subred Databases. Después, comprobará que la máquina
virtual DataServer puede acceder a Azure Storage. Por último, va a comprobar que la máquina
virtual AppServer, que se encuentra en otra subred, no puede acceder al almacenamiento.
Aquí garantizará que las comunicaciones con Azure Storage transmiten el punto de conexión de
servicio. Agregará reglas de salida para permitir el acceso al servicio de Storage, pero
denegando el resto del tráfico de Internet.
1. Ejecute el siguiente comando en Cloud Shell para crear una regla de salida que permita
el acceso a Storage:
Azure CLICopiar
--resource-group $rg \
--nsg-name ERP-SERVERS-NSG \
--name Allow_Storage \
--priority 190 \
--direction Outbound \
--source-address-prefixes "VirtualNetwork" \
--source-port-ranges '*' \
--destination-address-prefixes "Storage" \
--destination-port-ranges '*' \
--access Allow \
--protocol '*' \
2. Ejecute el siguiente comando en Cloud Shell para crear una regla de salida para
denegar todo el acceso a Internet:
Azure CLICopiar
az network nsg rule create \
--resource-group $rg \
--nsg-name ERP-SERVERS-NSG \
--name Deny_Internet \
--priority 200 \
--direction Outbound \
--source-address-prefixes "VirtualNetwork" \
--source-port-ranges '*' \
--destination-address-prefixes "Internet" \
--destination-port-ranges '*' \
--access Deny \
--protocol '*' \
En este punto, tanto AppServer como DataServer tienen acceso al servicio Azure Storage.
1. Ejecute el siguiente comando en Cloud Shell para crear una cuenta de almacenamiento
para los documentos de ingeniería:
BashCopiar
--resource-group $rg \
--name engineeringdocs$RANDOM \
--sku Standard_LRS \
BashCopiar
--resource-group $rg \
--account-name $STORAGEACCT \
Azure CLICopiar
--account-name $STORAGEACCT \
--account-key $STORAGEKEY \
--name "erp-data-share"
Ahora tendrá que configurar la cuenta de almacenamiento para que sea accesible solamente
desde los servidores de bases de datos, mediante la asignación del punto de conexión de
almacenamiento a la subred Databases. Después, necesitará agregar una regla de seguridad a
la cuenta de almacenamiento.
Azure CLICopiar
--vnet-name ERP-servers \
--resource-group $rg \
--name Databases \
--service-endpoints Microsoft.Storage
2. Para denegar todo el acceso, ejecute el siguiente comando en Cloud Shell para cambiar
la acción predeterminada a Deny. Después de que se deniega el acceso a la red, no se
puede acceder a la cuenta de almacenamiento desde ninguna red.
Azure CLICopiar
--resource-group $rg \
--name $STORAGEACCT \
--default-action Deny
Azure CLICopiar
--resource-group $rg \
--account-name $STORAGEACCT \
--vnet-name ERP-servers \
--subnet Databases
En este paso, se conectará a los dos servidores y comprobará que solo DataServer tiene acceso
al recurso compartido de archivos de Azure en la cuenta de almacenamiento.
1. Ejecute el siguiente comando en Cloud Shell para guardar las direcciones IP públicas
de AppServer y DataServer en variables:
BashCopiar
APPSERVERIP="$(az vm list-ip-addresses \
--resource-group $rg \
--name AppServer \
--query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
--output tsv)"
DATASERVERIP="$(az vm list-ip-addresses \
--resource-group $rg \
--name DataServer \
--query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
--output tsv)"
BashCopiar
ssh -t azureuser@$APPSERVERIP \
"mkdir azureshare; \
sudo mount -t cifs //$STORAGEACCT.file.core.windows.net/erp-data-share azureshare \
-o
vers=3.0,username=$STORAGEACCT,password=$STORAGEKEY,dir_mode=0777,file_mode=0777
,sec=ntlmssp; findmnt \
4. La respuesta debe incluir un mensaje mount error. Esta conexión no se permite porque
no hay ningún punto de conexión de servicio para la cuenta de almacenamiento en la
subred Applications.
BashCopiar
ssh -t azureuser@$DATASERVERIP \
"mkdir azureshare; \
-o
vers=3.0,username=$STORAGEACCT,password=$STORAGEKEY,dir_mode=0777,file_mode=0777
,sec=ntlmssp;findmnt \
7. El montaje debe ser correcto y la respuesta debe incluir los detalles del punto de
montaje. Esto se permite porque ha creado el punto de conexión de servicio para la
cuenta de almacenamiento en la subred Databases.
Resumen
Completado100 XP
2 minutos
Se ha obtenido información sobre cómo aislar y proteger los recursos de red en Azure. Ahora
sabe cómo usar los grupos de seguridad de red para proteger redes virtuales y máquinas
virtuales mediante la creación de reglas para controlar el tráfico de red. También ha obtenido
información sobre cómo usar puntos de conexión de servicio de red virtual para controlar el
tráfico hacia servicios como Azure Storage y Azure SQL Database.
Ahora puede usar los grupos de seguridad de red y los puntos de conexión de servicio para
garantizar que el acceso de red a los servicios y las máquinas virtuales de Azure esté
correctamente protegido.
Más información
Para obtener más información sobre los grupos de seguridad de red, vea la introducción a
los grupos de seguridad. Para obtener más información sobre los puntos de conexión de
servicio de red virtual, vea la introducción a los puntos de conexión de servicio de red virtual.
BLOQUE 5
Introducción
Completado100 XP
2 minutos
Su empresa tiene varias cargas de trabajo críticas de máquinas virtuales (VM) que se ejecutan
en Azure. Como arquitecto principal de la solución, se le ha pedido que garantice que la
empresa puede recuperar estas máquinas virtuales en caso de pérdida o daños en los datos. Se
le ha pedido que use las funciones integradas de Azure Backup para ayudar a proteger estas
máquinas virtuales.
Azure Backup es un servicio que permite realizar copias de seguridad de máquinas virtuales de
Azure, servidores locales, recursos compartidos de archivos de Azure y SQL Server o SAP HANA
que se ejecutan en máquinas virtuales de Azure, y otras cargas de trabajo de aplicaciones.
En este módulo, obtendrá información sobre Azure Backup. Y verá cómo puede usar Azure
Portal para realizar una copia de seguridad de una máquina y restaurarla.
Objetivos de aprendizaje
Identificar los escenarios para los que Azure Backup proporciona funciones de copia de
seguridad y restauración
Requisitos previos
Nota
En este módulo, tendrá que usar una suscripción propia para completar los ejercicios
opcionales. Para estos ejercicios servirá una suscripción de prueba gratuita o una suscripción a
la que ya tenga acceso.
Características y escenarios de Azure Backup
Completado100 XP
5 minutos
En esta unidad, verá cómo funciona Azure Backup y estudiará algunos de los casos de uso que
admite este servicio.
Azure Backup es un servicio integrado de Azure que proporciona una copia de seguridad segura
para todos los recursos de datos administrados por Azure. Utiliza soluciones de infraestructura
cero para habilitar copias de seguridad y restauraciones de autoservicio, con administración a
escala a un costo más bajo y predecible. Actualmente, Azure Backup ofrece soluciones de copia
de seguridad especializadas para máquinas virtuales (VM) de Azure y locales. Azure Backup
también ofrece a las cargas de trabajo como SQL Server o SAP HANA que se ejecutan en VM de
Azure opciones de copia de seguridad y restauración de clase empresarial.
Tanto Azure Backup como Azure Site Recovery tienen como objetivo que el sistema sea más
resistente a los errores. Sin embargo, aunque el objetivo principal de Backup es mantener
copias de los datos con estado que permitan retroceder en el tiempo, Site Recovery replica los
datos casi en tiempo real y permite una conmutación por error.
En ese sentido, si hay problemas de red o de interrupción de energía, puede usar zonas de
disponibilidad. Para un desastre en toda una región (por ejemplo, desastres naturales), se usa
Site Recovery. Las copias de seguridad se usan en casos de pérdida accidental de datos, daños
en los datos o ataques de ransomware.
Las soluciones de copia de seguridad tradicionales, como las de disco y cinta, no ofrecen el
máximo nivel de integración con soluciones basadas en la nube. Azure Backup tiene varias
ventajas en comparación con las soluciones de copia de seguridad más tradicionales:
Seguridad: Azure Backup proporciona seguridad al entorno de copia de seguridad, tanto si los
datos están en tránsito como en reposo:
Control de acceso basado en rol de Azure: RBAC permite repartir las tareas dentro del
equipo y conceder a los usuarios únicamente el nivel de acceso necesario para realizar
su trabajo.
Almacenamiento con redundancia local (LRS): esta es la opción de menor costo, con
protección básica frente a errores de bastidor y unidades en servidores. Se recomienda
para escenarios no críticos.
Almacenamiento con redundancia de zona (ZRS): Esta opción protege contra errores de
nivel de centro de datos mediante la replicación de la cuenta de almacenamiento de
forma sincrónica en tres zonas de disponibilidad de Azure. Se recomienda para
escenarios de alta disponibilidad.
Completado100 XP
5 minutos
Quiere asegurarse de que los trabajos de copia de seguridad y restauración que implemente
ofrezcan una forma de recuperar los servidores de la empresa. Teniendo en cuenta este
requisito, le interesa investigar la mejor manera de implementar copias de seguridad para las
máquinas virtuales (VM).
Las máquinas virtuales hospedadas en Azure pueden aprovechar las ventajas de Azure Backup.
Puede realizar copias de seguridad y restaurar fácilmente máquinas sin necesidad de instalar
software adicional.
En esta unidad, explorará todos los métodos de copia de seguridad de máquinas virtuales de
Azure que proporciona Azure Backup y tomará una decisión sobre cuál implementar.
Se realiza una copia de seguridad de las máquinas virtuales de Azure tomando instantáneas de
los discos subyacentes a intervalos definidos por el usuario y transfiriendo esas instantáneas al
almacén de Recovery Services según la directiva definida por el cliente.
Almacén de Recovery Services
Azure Backup usa un almacén de Recovery Services para administrar y almacenar los datos de
copia de seguridad. Un almacén es una entidad de administración del almacenamiento que
proporciona una experiencia sencilla para llevar a cabo y supervisar las operaciones de copia
de seguridad y restauración. Con Azure Backup, no es necesario preocuparse por la
implementación o administración de las cuentas de almacenamiento. De hecho, lo único que
necesita especificar es el almacén en el que desea realizar una copia de seguridad de la
máquina virtual. Los datos de la copia de seguridad se transfieren a las cuentas de
almacenamiento de Azure Backup (en un dominio de error independiente) en segundo plano.
El almacén también actúa como límite de RBAC para permitir el acceso seguro a los datos.
Instantáneas
Una instantánea es una copia de seguridad de todos los discos de la máquina virtual en un
momento dado. En el caso de las máquinas virtuales de Azure, Azure Backup usa extensiones
distintas para cada sistema operativo compatible:
Extensión SO Descripción
VMSnapshot Windows La extensión funciona con el Servicio de instantáneas de volumen (VSS) para realizar un
y en memoria.
En función de cómo se tome la instantánea y lo que incluya, puede lograr diferentes niveles de
coherencia:
Nivel de almacén: Además, todas las instantáneas se transfieren al almacén para obtener más
seguridad y una retención más larga. En este momento, el tipo de punto de recuperación
cambia a “instantánea y almacén”.
Aquí se muestra cómo Azure Backup completa una copia de seguridad de las máquinas
virtuales de Azure:
Para cada disco del que se hace una copia de seguridad, Azure Backup lee los
bloques en el disco e identifica y transfiere solo los bloques de datos que han
cambiado (delta) desde la copia de seguridad anterior.
Completado100 XP
10 minutos
Azure Backup se puede habilitar rápidamente para las máquinas virtuales en Azure. Puede
habilitar Azure Backup desde el portal, la CLI de Azure o mediante comandos de PowerShell.
En este ejercicio, creará una máquina virtual y configurará e iniciará una copia de seguridad.
Nota
Este ejercicio es opcional. Si no tiene una cuenta de Azure, puede leer las instrucciones para
saber cómo se realiza una copia de seguridad de máquinas virtuales mediante Azure Backup. Si
quiere completar este ejercicio pero no tiene una suscripción de Azure o prefiere no usar una
cuenta propia, cree una cuenta gratuita antes de empezar.
1. Inicie sesión en Azure Portal y seleccione el icono para abrir Azure Cloud Shell.
2. Cree un grupo de recursos en el que se incluirán todos los recursos necesarios para
este ejercicio.
Azure CLICopiar
RGROUP=$(az group create --name vmbackups --location westus2 --output tsv --query name)
Azure CLICopiar
--resource-group $RGROUP \
--name NorthwindInternal \
--address-prefixes 10.0.0.0/16 \
--subnet-name NorthwindInternal1 \
--subnet-prefixes 10.0.0.0/24
Azure CLICopiar
az vm create \
--resource-group $RGROUP \
--name NW-APP01 \
--size Standard_DS1_v2 \
--public-ip-sku Standard \
--vnet-name NorthwindInternal \
--subnet NorthwindInternal1 \
--image Win2016Datacenter \
--admin-username admin123 \
--no-wait \
--admin-password <password>
Azure CLICopiar
az vm create \
--resource-group $RGROUP \
--name NW-RHEL01 \
--size Standard_DS1_v2 \
--image RedHat:RHEL:7-RAW:latest \
--authentication-type ssh \
--generate-ssh-keys \
--vnet-name NorthwindInternal \
--subnet NorthwindInternal1
Este comando puede tardar unos minutos en completarse. Espere a que finalice antes de
continuar con el siguiente paso.
6. Seleccione Aceptar.
1. Con Cloud Shell, habilite una copia de seguridad para la máquina virtual NW-APP01.
Azure CLICopiar
--resource-group vmbackups \
--vault-name azure-backup \
--vm NW-APP01 \
--policy-name DefaultPolicy
Azure CLICopiar
az backup job list \
--resource-group vmbackups \
--vault-name azure-backup \
--output table
Siga ejecutando el comando anterior hasta que vea que ConfigureBackup se ha completado.
ResultadosCopiar
3. Realice una copia de seguridad inicial de la máquina virtual, en lugar de esperar a que
la programación la ejecute.
Azure CLICopiar
--resource-group vmbackups \
--vault-name azure-backup \
--container-name NW-APP01 \
--item-name NW-APP01 \
--retain-until 18-10-2030 \
--backup-management-type AzureIaasVM
No es necesario esperar a que se complete la copia de seguridad, ya que más adelante verá
cómo supervisar el progreso en el portal.
Vista del estado de una copia de seguridad de una sola máquina virtual
2. Ordene la lista por Tipo y, después, seleccione el almacén de Recovery Services azure-
backup. Se abre el panel del almacén de Recovery Services azure-backup.
Completado200 XP
5 minutos
Las empresas que tienen un plan de continuidad empresarial y recuperación ante desastres
(BCDR) normalmente programan series de pruebas para garantizar que la empresa se pueda
recuperar correctamente frente a posibles desastres. Ahora que ha hecho correctamente una
copia de seguridad de las máquinas virtuales, desea explorar las opciones disponibles para
restaurarlas como parte de la prueba de BCDR.
En esta unidad, obtendrá información sobre las opciones para restaurar una máquina virtual de
Azure a partir de una copia de seguridad anterior.
Tipos de restauración
Azure Backup proporciona muchas maneras de restaurar una máquina virtual. Como se explicó
anteriormente, puede realizar una restauración instantánea desde el nivel de instantánea
(solución óptima para recuperaciones operativas) o desde el nivel de almacén.
Opción de Detalles
restauración
Crear una máquina Crea y pone en funcionamiento rápidamente una máquina virtual básica a partir de un punto d
virtual máquina virtual debe crearse en la misma región que la máquina virtual de origen.
Restaurar disco Restaura un disco de máquina virtual, que luego se puede usar para crear una máquina virtual.
grupo de recursos que especifique. Azure Backup proporciona una plantilla para ayudar a perso
máquina virtual. Como alternativa, puede asociar el disco a una máquina virtual existente o cre
virtual.
Esta opción es útil si desea personalizar la máquina virtual, agregar la configuración que no exis
copia de seguridad o agregar valores que deben configurarse mediante la plantilla o PowerShe
Reemplazar el Puede restaurar un disco y usarlo para reemplazarlo en la máquina virtual existente. Azure Bac
existente la máquina virtual existente antes de reemplazar el disco y la almacena en la ubicación de alma
especifique. Los discos existentes conectados a la máquina virtual se reemplazan por el punto d
La máquina virtual actual debe existir. Si se ha eliminado, esta opción no se puede usar.
Entre regiones La restauración entre regiones puede usarse para restaurar máquinas virtuales de Azure en la r
(región secundaria) región emparejada de Azure.
Esta característica está disponible para las opciones siguientes:
Restaurar discos
Actualmente no se admite la opción de reemplazo de discos existentes.
Completado100 XP
6 minutos
Unos días después de realizar la copia de seguridad de la primera máquina virtual (VM) de
Azure, el servidor ha tenido problemas. La máquina virtual debe restaurarse a partir de una
copia de seguridad. Quiere restaurar el disco de la máquina virtual y adjuntarlo al servidor
activo problemático y, después, realizar el seguimiento de la restauración para asegurarse de
que se ha completado correctamente.
En este ejercicio, se verá cómo restaurar una copia de seguridad correcta para reemplazar una
máquina virtual que se ha dañado y cómo supervisar su progreso.
1. Si cerró Azure, inicie sesión en Azure Portal con la misma cuenta que ha usado en el
ejercicio anterior.
4. En la pestaña Aspectos básicos, escriba los siguientes valores para cada opción para
crear una cuenta de almacenamiento.
Configuración Value
Detalles de instancia
Los almacenes de Recovery Services son accesibles en el nivel de suscripción. Cuando vea la
máquina virtual, Azure proporciona un vínculo rápido al almacén específico en Operaciones.
Setting Value
Restaurar configuración
6.
Completado100 XP
2 minutos
Ahora puede usar Azure Backup para ayudar a proteger el entorno contra la pérdida de datos o
daños en el disco. Puede restaurar los servicios de acuerdo a su plan de recuperación ante
desastres y continuidad empresarial.
Importante
En este módulo, ha creado recursos mediante su suscripción de Azure. Quiere limpiar estos
recursos para que no se le siga cobrando por ellos. Puede eliminar los recursos de forma
individual o eliminar el grupo de recursos para eliminar todo el conjunto de recursos.
Más información
Para obtener más información sobre Azure Backup, vea los artículos siguientes:
BLOQUE 6
Introducción
Completado100 XP
1 minuto
Objetivos de aprendizaje
Aptitudes evaluadas
Prerrequisitos
Ninguno.
Completado100 XP
2 minutos
Un plan de disponibilidad para máquinas virtuales de Azure debe incluir estrategias para el
mantenimiento de hardware no planeado, un tiempo de inactividad inesperado y el
mantenimiento planeado. Cuando revise los escenarios siguientes, piense en cómo estos
escenarios pueden afectar el sitio web de la empresa de ejemplo.
Se produce un evento de mantenimiento de hardware no planeado cuando la
plataforma Azure predice que el hardware o cualquier componente de la plataforma
asociado a una máquina física está a punto de presentar un error. Cuando la
plataforma predice un error, emite un evento de mantenimiento de hardware no
planeado. Azure usa tecnología de migración en vivo para migrar las máquinas
virtuales del hardware en el que se producen errores a una máquina física en buen
estado. La migración en vivo es una operación de conservación de máquinas virtuales
que solo pausa la máquina virtual durante un breve período de tiempo, pero el
rendimiento se podría ver reducido antes o después del evento.
Nota
Completado100 XP
2 minutos
Un conjunto de disponibilidad es una característica lógica que puede usar para asegurarse de
que un grupo de máquinas virtuales relacionadas se implementen juntas. Esta agrupación
permite evitar que un único punto de error afecte a todas las máquinas. Agrupar las máquinas
virtuales garantiza que no todas se actualicen al mismo tiempo durante una actualización del
sistema operativo host en el centro de datos.
Una máquina virtual solo se puede agregar a un conjunto de disponibilidad cuando se crea la
máquina virtual. Para cambiar el conjunto de disponibilidad de una máquina virtual, debe
eliminar la máquina y volver a crearla.
Nota
Los conjuntos de disponibilidad son una funcionalidad fundamental para compilar soluciones
en la nube confiables. Al planear conjuntos de disponibilidad, tenga en mente estos principios
generales:
Tenga en cuenta el equilibrio de carga. Para lograr una alta disponibilidad y un gran
rendimiento de la red, cree un conjunto de disponibilidad de carga equilibrada
mediante Azure Load Balancer. Load Balancer distribuye el tráfico entrante entre
instancias de trabajo de servicios que se definen en el conjunto de disponibilidad de
carga equilibrada.
Considere el uso de discos administrados. Puede usar discos administrados de Azure
con las máquinas virtuales de Azure en conjuntos de disponibilidad para el
almacenamiento en el nivel de bloque.
Completado100 XP
2 minutos
Azure Virtual Machine Availability Sets implementa dos conceptos de nodo para ayudar a Azure
a mantener la alta disponibilidad y la tolerancia a errores al implementar y actualizar
aplicaciones: dominios de actualización y dominios de error. Cada máquina virtual de un
conjunto de disponibilidad se coloca en un dominio de actualización y un dominio de error.
Un dominio de error es un grupo de nodos que representan una unidad física de error. Piense
en un dominio de error como nodos que pertenecen al mismo bastidor físico.
Dos dominios de error trabajan en conjunto para mitigar los errores de hardware, las
interrupciones de red, las interrupciones de alimentación o las actualizaciones de
software.
Echemos un vistazo a un escenario con dos dominios de error que tienen dos máquinas
virtuales cada uno. Las máquinas virtuales de cada dominio de error están contenidas en
diferentes conjuntos de disponibilidad. El conjunto de disponibilidad web contiene dos
máquinas virtuales con una máquina de cada dominio de error. El conjunto de disponibilidad
SQL contiene dos máquinas virtuales con una máquina de cada dominio de error.
Completado100 XP
2 minutos
Las zonas de disponibilidad son una oferta de alta disponibilidad que protege las aplicaciones y
datos de los errores del centro de datos. Una zona de disponibilidad de una región de Azure es
la combinación de un dominio de error y un dominio de actualización.
Piense en un escenario en el que se crean tres o más máquinas virtuales en tres zonas de una
región de Azure. Las máquinas virtuales se distribuyen eficazmente entre tres dominios de
error y tres dominios de actualización. La plataforma Azure reconoce esta distribución entre
dominios de actualización para asegurarse de que las máquinas virtuales de distintas zonas no
se actualicen al mismo tiempo.
Puede utilizar las zonas de disponibilidad para crear alta disponibilidad en la arquitectura de
sus aplicaciones si coloca sus recursos de proceso, almacenamiento, redes y datos en una zona
y los replica en otras.
Las zonas de disponibilidad son ubicaciones físicas exclusivas dentro de una región de
Azure.
Cada zona consta de uno o varios centros de datos equipados con alimentación,
refrigeración y redes independientes.
Para garantizar la resistencia, hay un mínimo de tres zonas independientes en todas las
regiones habilitadas.
La separación física de las zonas de disponibilidad dentro de una región protege las
aplicaciones y los datos frente a los errores del centro de datos.
Los servicios con redundancia de zona replican las aplicaciones y los datos en zonas de
disponibilidad como protección ante los únicos puntos de error.
Los servicios de Azure que admiten zonas de disponibilidad se dividen en dos categorías.
Category Descripción E
Servicios de zona Los servicios de zona de Azure anclan cada recurso a una zona específica. -
-
A
-
Servicios con redundancia En el caso de los servicios de Azure con redundancia de zona, la plataforma se replica -
de zona automáticamente en todas las zonas. re
-
Sugerencia
Para lograr una continuidad empresarial integral en Azure, cree la arquitectura de aplicación
mediante la combinación de zonas de disponibilidad y pares de regiones de Azure.
Completado100 XP
2 minutos
El escalado vertical, también conocido como escalado y reducción vertical, implica aumentar o
disminuir el tamaño de la máquina virtual como respuesta a una carga de trabajo. El escalado
vertical hace que las máquinas virtuales sean más poderosas (escalado vertical) o menos
poderosas (reducción vertical).
Estos son algunos escenarios en los que puede ser ventajoso utilizar el escalado vertical:
Si tiene un servicio basado en una máquina virtual infrautilizada (por ejemplo, los fines
de semana), puede usar el escalado vertical para disminuir el tamaño de la máquina
virtual y reducir los costos mensuales.
Revise estas consideraciones respecto del escalado vertical y horizontal. Piense en qué
implementación podría necesitar para admitir el sitio web de la empresa.
Completado100 XP
2 minutos
Las instancias de Azure Virtual Machine Scale Sets son un recurso de Azure Compute que
puede utilizar para implementar y administrar un conjunto de máquinas virtuales idénticas. Al
implementar Virtual Machine Scale Sets y configurar todas las máquinas virtuales de la misma
manera, obtiene una escalabilidad automática verdadera. Virtual Machine Scale Sets aumenta
automáticamente el número de instancias de máquina virtual a medida que la demanda de la
aplicación aumenta, y reduce el número de instancias de máquina a medida que la demanda
disminuye.
Con Virtual Machine Scale Sets, no es necesario aprovisionar previamente las máquinas
virtuales. Esto facilita la creación de servicios a gran escala cuyo objetivo son las cargas de
trabajo en contenedores, de macroproceso y macrodatos. A medida que aumentan las cargas
de trabajo, se pueden agregar más instancias de máquina virtual. A medida que disminuyen las
cargas de trabajo, se pueden quitar instancias de máquina virtual. El proceso de agregar y
quitar máquinas puede ser manual, automatizado, o bien una combinación de ambos.
Aspectos que se deben saber sobre Azure Virtual Machine Scale Sets
Virtual Machine Scale Sets admite el uso de Azure Load Balancer para la distribución de
tráfico de capa 4 básica y Azure Application Gateway para la distribución de tráfico
de capa 7 más avanzada, además de la terminación SSL.
Puede usar Virtual Machine Scale Sets para ejecutar varias instancias de la aplicación.
Si una de las instancias de máquina virtual tiene un problema, los clientes siguen
accediendo a la aplicación a través de otra instancia de máquina virtual con una
interrupción mínima.
La demanda de la aplicación por parte de los clientes puede cambiar a lo largo del día o
de la semana. A fin de satisfacer la demanda de los clientes, Virtual Machine Scale Sets
implementa la escalabilidad automática para aumentar y reducir automáticamente el
número de máquinas virtuales.
Virtual Machine Scale Sets admite hasta 1000 instancias de máquina virtual. Si crea y
carga sus propias imágenes de máquina virtual personalizadas, el límite es de
600 instancias.
Completado100 XP
2 minutos
Puede implementar Azure Virtual Machine Scale Sets en Azure Portal. Especifique el número
de máquinas virtuales y sus tamaños e indique las preferencias para usar instancias de Azure
Spot, discos administrados de Azure y directivas de asignación.
En Azure Portal, hay varias opciones que se deben configurar para crear una implementación
de Azure Virtual Machine Scale Sets.
Modo de orquestación: elija cómo el conjunto de escalado administra las máquinas
virtuales. En modo de orquestación flexible, se crea y se agrega manualmente una
máquina virtual de cualquier configuración al conjunto de escalado. En modo de
orquestación uniforme, se define un modelo de máquina virtual y Azure generará
instancias idénticas basadas en ese modelo.
Ejecución con descuento de Azure Spot: Azure Spot ofrece una tarifa con descuento
para la capacidad de Azure sin usar y no precios de pago por uso. Las cargas de trabajo
deben tolerar pérdidas de infraestructura, ya que Azure puede recuperar la capacidad.
Tamaño: seleccione un tamaño de máquina virtual para admitir la carga de trabajo que
quiere ejecutar. El tamaño que elija determina factores tales como la capacidad de
almacenamiento, la memoria y la capacidad de procesamiento. Azure ofrece una
amplia variedad de tamaños para admitir muchos tipos de usos. Azure cobra un precio
por hora según el sistema operativo y el tamaño de la máquina virtual.
Completado100 XP
2 minutos
Una implementación de Azure Virtual Machine Scale Sets puede aumentar o disminuir
automáticamente el número de instancias de máquina virtual que ejecutan la aplicación. Este
proceso se denomina escalabilidad automática. La escalabilidad automática le permite escalar
dinámicamente la configuración a fin de satisfacer las cambiantes demandas de carga de
trabajo.
Revise las consideraciones siguientes sobre la escalabilidad automática. Piense en cómo este
proceso puede ser una ventaja para la implementación del sitio web de la empresa.
Considere la posibilidad de ajustar automáticamente la capacidad. Puede crear reglas
de escalabilidad automática que definan el rendimiento aceptable para una
experiencia positiva del cliente. Cuando se cumplen los umbrales definidos, las reglas
de escalabilidad automática actúan para ajustar la capacidad de la implementación de
Virtual Machine Scale Sets.
Tenga en cuenta la sobrecarga. Usar Azure Virtual Machine Scale Sets con la
escalabilidad automática reduce la sobrecarga de administración que implica
supervisar y optimizar el rendimiento de la aplicación.
Completado100 XP
2 minutos
Al crear una implementación de Azure Virtual Machine Scale Sets en Azure Portal, puede
habilitar la escalabilidad automática. Para lograr un rendimiento óptimo, debe definir un
número mínimo, máximo y predeterminado de instancias de máquina virtual que se usarán
durante el proceso de escalabilidad automática.
En Azure Portal, hay varias opciones que se deben configurar para implementar la escalabilidad
automática con Azure Virtual Machine Scale Sets.
Directiva de escalado: la escalabilidad manual mantiene un recuento fijo de instancias. La
escalabilidad automática personalizada escala la capacidad según cualquier programación, en
función de cualquier métrica.
Número mínimo de VM: especifique el número mínimo de máquinas virtuales que
debe haber disponibles al aplicar la escalabilidad automática a la implementación de
Virtual Machine Scale Sets.
Escalado horizontal
Reducción horizontal
Completado100 XP
40 minutos
Diagrama de la arquitectura
Objetivos
o Cargue un script de Azure PowerShell. Este script instalará el rol Servidor web
de Windows Server en una máquina virtual.
o Configure la red virtual a fin de incluir una regla de entrada para permitir HTTP.
o Cargue un script de Azure PowerShell para instalar el rol instalar servidor web
Windows Server.
o Ejecute el script en la máquina virtual mediante la característica de extensión
de script personalizado.
o Uso de Azure PowerShell para iniciar un bucle infinito que envíe las solicitudes
HTTP a los sitios web hospedados en las instancias de los conjuntos de
escalado de máquinas virtuales de Azure
Nota
Haga clic en la imagen en miniatura para iniciar la simulación de laboratorio. Cuando haya
terminado, asegúrese de volver a esta página para continuar con el aprendizaje.
Azure proporciona varias opciones de alta disponibilidad para máquinas virtuales. Puede lograr
una alta disponibilidad mediante conjuntos de disponibilidad, zonas de disponibilidad y Azure
Virtual Machine Scale Sets.
Saber más
Lea sobre la escalabilidad automática con Azure Virtual Machine Scale Sets.
Elija el número correcto de dominios de error para Azure Virtual Machine Scale Sets.
Compile una aplicación escalable con Azure Virtual Machine Scale Sets. Suscripción a
Azure obligatoria.
BLOQUE 7
Introducción
Completado100 XP
3 minutos
La transición de las cargas de trabajo a la nube conlleva algo más que mover servidores, sitios
web y datos. Las empresas deben pensar en cómo proteger esos recursos, identificar los
usuarios autorizados y asegurarse de que el acceso a los datos, los servicios creados y las
operaciones realizadas por esos usuarios son, todos ellos, factibles. La seguridad es un asunto
complicado que se plantea mal muy fácilmente, como pone de manifiesto la inmensa cantidad
de ataques a grandes empresas que vemos en las noticias.
Azure intenta facilitar la solución de estos tipos de problemas con Microsoft Entra ID. Microsoft
Entra ID es el servicio de administración de acceso e identidades basado en la nube de
Microsoft que facilita el inicio de sesión único y la autenticación multifactor para ayudar a
proteger a los usuarios del 99,9 % de los ataques de ciberseguridad.
Objetivos de aprendizaje
Obtenga información sobre cómo a crear una solución de identidad híbrida con
Microsoft Entra Connect.
Requisitos previos
Completado200 XP
10 minutos
Nota
Microsoft ofrece hoy varias ofertas basadas en la nube, todas las cuales pueden usar Microsoft
Entra ID para identificar a los usuarios y controlar el acceso:
Microsoft Azure
Microsoft 365
Microsoft Intune
Cuando una empresa u organización se suscribe para usar una de estas ofertas, se les asigna un
directorio de predeterminado, una instancia de Microsoft Entra ID. Este directorio contiene los
usuarios y grupos que accederán a cada uno de los servicios que la empresa ha comprado. Este
directorio predeterminado se conoce como inquilino. Un inquilino representa la organización y
el directorio predeterminado asignado.
Puede agregar usuarios y grupos a varias suscripciones. Esto permite al usuario crear, controlar
y acceder a recursos en la suscripción. Al agregar un usuario a una suscripción, este debe
conocerse en el directorio asociado, tal y como se muestra en la siguiente imagen:
Si pertenece a varios directorios, puede cambiar el directorio actual en el que esté trabajando
con el botón Directorio + Suscripción del encabezado de Azure Portal.
También puede decidir cómo se selecciona el directorio predeterminado: por última visita o
por directorio específico. También puede establecer un filtro predeterminado de las
suscripciones que se muestran. Los filtros predeterminados resultan útiles si tiene acceso a
varias suscripciones, pero solo suelen funcionar en unas cuantas.
Importante
A continuación se muestran los pasos para crear un directorio, aunque esta opción no estará
disponible a menos que sea propietario de su cuenta de Azure. El espacio aislado de Azure no
permite crear nuevos directorios de Microsoft Entra.
4. Seleccione Crear.
Vamos a explorar uno de los elementos principales con los que trabajará en Microsoft Entra
ID: usuarios.
Completado100 XP
8 minutos
Cada usuario que necesita acceso a los recursos de Azure precisa una cuenta de usuario de
Azure. Una cuenta de usuario contiene toda la información necesaria para autenticar al usuario
durante el proceso de inicio de sesión. Una vez autenticado, Microsoft Entra ID crea un token
de acceso para autorizarle, determinar a qué recursos puede acceder y determinar lo que
puede hacer con esos recursos.
Puede usar el panel de Microsoft Entra ID en Azure Portal para trabajar con objetos de usuario.
Tenga en cuenta que solo se puede trabajar con un único directorio al mismo tiempo, pero
puede usar el panel Directorio + suscripción para cambiar de un directorio a otro. En la barra
de herramientas del panel también hay un botón Cambiar directorio que facilita el cambio a
otro directorio disponible.
Visualización de usuarios
Para ver los usuarios de Microsoft Entra, en el panel de menús izquierdo, en Administrar,
seleccione Usuarios. Aparece el panel Todos los usuarios. Dedique un minuto a acceder al
portal y ver los usuarios. Observe las columnas Tipo de usuario y Entidades, tal y como se
muestra en la captura de pantalla siguiente:
Identidades de nube: Estos usuarios solo existen en Microsoft Entra ID. Algunos
ejemplos son las cuentas de administrador y los usuarios que usted mismo administra.
El origen es Microsoft Entra ID o Microsoft Entra External ID si el usuario está definido
en otra instancia de Microsoft Entra, pero necesita acceso a los recursos de suscripción
controlados por este directorio. Cuando estas cuentas se quitan del directorio
principal, se eliminan.
Agregar usuarios
Otras opciones
Microsoft Entra Connect es un servicio independiente que permite sincronizar una instancia
tradicional de Active Directory con su instancia de Microsoft Entra. Así es como la mayoría de
los clientes empresariales agregan usuarios al directorio. La ventaja de este método es que los
usuarios pueden usar el inicio de sesión único (SSO) para acceder a los recursos tanto locales
como basados en la nube.
Puede agregar nuevos usuarios manualmente a través de Azure Portal. Esta es la forma más
fácil de agregar un conjunto reducido de usuarios. Debe tener el rol Administrador de
usuarios para realizar esta función.
1. Para agregar un nuevo usuario a través de Azure Portal, en la barra de menús superior,
seleccione Nuevo usuario y, luego, Crear nuevo usuario.
3. También puede invitar a un usuario a que acceda al directorio. En este caso, se envía
un correo electrónico a una dirección de correo electrónico conocida, tras lo cual una
cuenta se crea y se asocia a esa dirección de correo electrónico si el usuario acepta la
invitación.
El usuario invitado deberá crear una cuenta Microsoft (MSA) asociada si esa dirección de
correo electrónico específica no está asociada a una y la cuenta se agregará Microsoft Entra ID
como usuario invitado.
Si hay muchos usuarios que agregar, la mejor opción es usar una herramienta de línea de
comandos. Se puede ejecutar el comando New-AzureADUser de Azure PowerShell para agregar
usuarios basados en la nube.
PowerShellCopiar
$PasswordProfile.Password = "<Password>"
ResultadosCopiar
Si prefiere una interfaz de la línea de comandos más estándar, puede usar la CLI de Azure:
Azure CLICopiar
--password "<password>" \
--user-principal-name "[email protected]" \
--force-change-password-next-login true \
--mail-nickname "AbbyB"
Si tiene previsto usar un archivo CSV, estos son algunos aspectos que hay que tener presentes:
Convención de nomenclatura: establezca o implemente una convención de
nomenclatura para los nombres de usuarios, los nombres para mostrar y los alias. Por
ejemplo, un nombre de usuario podría consistir en el apellido, seguido de un punto (.)
y del nombre propio (por ejemplo, [email protected]).
2. Cree perfiles de contraseña para los nuevos usuarios. Las contraseñas de los usuarios
nuevos deben cumplir con las reglas de complejidad de contraseña que estableció para
el directorio.
3. Use Import-CSV para importar el archivo CSV. Debe especificar la ruta de acceso y el
nombre del archivo CSV.
4. Recorra los usuarios del archivo y cree los parámetros de usuario necesarios para cada
uno de ellos. Algunos parámetros de ejemplo son Nombre principal del usuario,
Nombre para mostrar, Nombre propio, Departamento y Puesto.
Otras opciones
Completado100 XP
8 minutos
Un grupo de Microsoft Entra ayuda a organizar a los usuarios, lo que facilita la administración
de permisos. El uso de grupos permite al propietario del recurso (o al propietario del directorio
de Microsoft Entra), asignar un conjunto de permisos de acceso a todos los miembros del
grupo en lugar de tener que proporcionar los derechos uno a uno. Los grupos permiten definir
un límite de seguridad y, después, agregar y quitar usuarios concretos para concederles o
denegarles el acceso con una cantidad mínima de esfuerzo. Aún mejor, Microsoft Entra ID
admite la capacidad de definir la pertenencia en función de las reglas, como el departamento
en el que trabaja un usuario o el título de trabajo que tienen.
Microsoft Entra ID permite definir dos tipos diferentes de grupos.
1. Grupos de seguridad: son los más comunes y se usan para administrar el acceso de
miembros y del equipo a los recursos compartidos de un grupo de usuarios. Por
ejemplo, puede crear un grupo de seguridad relativo a una directiva de seguridad
específica. De esta forma, puede conceder una serie de permisos a todos los miembros
a la vez, en lugar de tener que agregarlos a cada miembro individualmente. Esta opción
requiere un administrador de Microsoft Entra.
Puede ver todos los grupos seleccionando Grupos en la sección Administrar en el panel de
Microsoft Entra. Una nueva instalación de Microsoft Entra ID no tendrá ningún grupo definido.
Las mismas opciones están disponibles para crear grupos en Microsoft Entra ID como vimos
con los usuarios. Azure Portal es la forma más fácil de crear grupos. Debe seleccionar el tipo de
grupo (Seguridad o Microsoft 365) y asignar un nombre de grupo único, una descripción y
un tipo de pertenencia.
El campo Tipo de pertenencia puede tener uno de tres valores:
1. Asignado (estático). El grupo contendrá los usuarios o grupos específicos que se hayan
seleccionado.
Los grupos de seguridad se pueden usar con dispositivos o con usuarios, pero los grupos de
Office 365 solo pueden usarse con grupos de usuarios. Si el departamento del usuario cambia
en el futuro, dicho usuario se quitará del grupo automáticamente. Esta característica requiere
una licencia P1 de Microsoft Entra ID.
Por último, puede seleccionar los propietarios del grupo que pueden administrar dicho grupo y
los miembros que van a pertenecer al grupo. Ambos pueden contener otros grupos, así como
usuarios individuales.
Azure PowerShell también puede servir para agregar un grupo mediante el comando New-
AzureADGroup, como se refleja aquí.
PowerShellCopiar
Una vez creado el grupo, puede editar la pertenencia al grupo mediante la adición o
eliminación de usuarios (o grupos); para ello, hay que seleccionar el grupo y usar las opciones
de la sección Administrar.
Uso de roles para controlar el acceso a los recursos
Completado200 XP
10 minutos
Azure proporciona varios roles integrados para cubrir los escenarios de seguridad más
comunes. Para entender cómo funcionan los roles, vamos a examinar tres roles que son válidos
en cualquier tipo de recurso:
Propietario, que tiene acceso total a todos los recursos, incluido el derecho a delegar
este acceso a otros.
Colaborador, que puede crear y administrar todos los tipos de recursos de Azure, pero
no conceder acceso a otros.
Definiciones de roles
Por ejemplo, el rol Propietario incluye todas las acciones, lo que se indica mediante un
asterisco (*); no se deniega ninguna acción, y se incluyen todos los ámbitos, lo cual se señala
mediante una barra diagonal (/).
PowerShellCopiar
Get-AzRoleDefinition Owner
ResultadosCopiar
Name : Owner
Id : 8e3af657-a8ff-443c-a75c-2fe8c4bcb635
IsCustom : False
Actions : {*}
NotActions : {}
DataActions : {}
NotDataActions : {}
AssignableScopes : {/}
Pruebe lo mismo con los roles Colaborador y Lector para ver las acciones permitidas y
denegadas.
Una definición de roles es una colección de permisos. Una definición de roles enumera las
operaciones que se pueden realizar, por ejemplo, lectura, escritura y eliminación. También
puede enumerar las operaciones que no se pueden realizar u operaciones relacionadas con
datos subyacentes.
Nombre Descripción
ejemplo, Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
AssignableScopes Ámbitos en los que se aplica este rol; / indica global, pero puede llegar a un árbol jerárquico.
[]
Esta estructura se representa como JSON cuando se usa en el control de acceso basado en rol
(RBAC) o desde la API subyacente. Por ejemplo, esta es la definición de roles Colaborador en
formato JSON.
JSONCopiar
"Name": "Contributor",
"Id": "b24988ac-6180-42a0-ab88-20f7382dd24c",
"IsCustom": false,
"Actions": [
"*"
],
"NotActions": [
"Microsoft.Authorization/*/Delete",
"Microsoft.Authorization/*/Write",
"Microsoft.Authorization/elevateAccess/Action"
],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/"
Actions y NotActions
Por ejemplo, estas son las acciones de los tres roles que examinamos antes.
Rol integrado Actions NotActions
La operación de carácter comodín (*) en Actions indica que la entidad de seguridad asignada a
este rol puede realizar todas las acciones; o en otras palabras, este rol puede administrar todo,
incluidas las acciones definidas en el futuro, a medida que Azure agrega nuevos tipos de
recursos. Con el rol Lector, solo se permite la acción read.
Las operaciones en NotActions se quitan de Actions. Con el rol Colaborador, NotActions quita
la capacidad de este rol para administrar y asignar el acceso a los recursos.
DataActions y NotDataActions
Ámbitos asignables
La definición de las propiedades Actions y NotActions no basta para implementar un rol por
completo. También hay que especificar debidamente el ámbito del rol.
Crear roles
Microsoft Entra ID incluye roles integrados que probablemente cubran el 99 % de lo que todo
el mundo quiere hacer. Si es posible, es preferible usar un rol integrado. pero puede crear roles
personalizados si así lo precisa.
Nota
Azure Portal: Puede usar Azure Portal para crear un rol personalizado:
seleccione Microsoft Entra ID>Roles y administradores>Nuevo rol personalizado.
Azure Graph API: se puede usar una llamada de REST a Graph API para crear un rol
mediante programación.
8 minutos
Las empresas que usan una solución local de Windows Server Active Directory pueden integrar
sus usuarios y grupos existentes con Microsoft Entra ID mediante Microsoft Entra Connect. Se
trata de una herramienta gratuita que se puede descargar e instalar para sincronizar su
instancia de AD local con su directorio de Azure.
Con Microsoft Entra Connect, puede proporcionar a los usuarios una identidad común para las
aplicaciones de Microsoft 365, Azure y SaaS integradas con Microsoft Entra ID en un entorno
de identidad híbrido.
Microsoft Entra Connect proporciona varios componentes que se pueden instalar para crear un
sistema de identidades híbrido.
Ventajas
La integración de directorios locales con Microsoft Entra ID hace que los usuarios sean más
productivos, dado que se les proporciona una identidad común para tener acceso a recursos de
nube y locales. Los usuarios y las organizaciones obtienen las siguientes ventajas:
Los usuarios pueden usar una única identidad para acceder tanto a aplicaciones locales
como a servicios en la nube, como Microsoft 365.
Mediante una sola herramienta, se proporciona una experiencia de implementación
simplificada para la sincronización y el inicio de sesión.
Instalación de
Resumen
Completado100 XP
3 minutos
Lecturas adicionales
Consulte las siguientes referencias para obtener más información sobre algunos de los temas
analizados en este módulo.