Configurar y validar permisos
En este laboratorio, configurará un entorno seguro que cumpla el principio de privilegios mínimos, lo que garantiza que los miembros solo puedan acceder a los recursos que necesitan para realizar sus tareas y minimizar los posibles riesgos de seguridad. Esto implica configurar y validar permisos de usuario y canalización y establecer comprobaciones de aprobación y ramificación en Azure DevOps.
Estos ejercicios duran aproximadamente 20 minutos.
Antes de comenzar
Necesitarás una suscripción a Azure, una organización de Azure DevOps y la aplicación eShopOnWeb para seguir los laboratorios.
- Siga los pasos para validar el entorno de laboratorio.
- Instale un agente autohospedado siguiendo el laboratorio Configuración de agentes y grupos de agentes para canalizaciones seguras o los pasos descritos en Instalación de un agente autohospedado.
Instrucciones
Ejercicio 0: (omitir si ya lo has completado) importación y ejecución de canalizaciones de CI/CD
En este ejercicio, importarás y ejecutarás las canalizaciones de CI/CD en el proyecto de Azure DevOps.
Tarea 1: (omitir si ya la has completado) Importación y ejecución de la canalización de CI
Empecemos importando la canalización de CI denominada eshoponweb-ci.yml.
-
Ve al portal de Azure DevOps en
https://aex.dev.azure.com
y abre tu organización. -
Abre el proyecto eShopOnWeb en Azure DevOps.
-
Ve a Canalizaciones > Canalizaciones.
-
Selecciona el botón Crear canalización.
-
Selecciona Git de Azure Repos (YAML).
-
Selecciona el repositorio eShopOnWeb.
-
Selecciona Archivo YAML de Azure Pipelines existente.
-
Selecciona el archivo /.ado/eshoponweb-ci.yml y haz clic en Continuar.
-
Haz clic en el botón Ejecutar para ejecutar la canalización.
Nota: la canalización adoptará un nombre en función del nombre del proyecto. Cambiarás el nombre para identificar la canalización con más facilidad.
-
Ve a Canalizaciones > Canalizaciones y selecciona la canalización creada recientemente. Selecciona los puntos suspensivos (…) y, a continuación, selecciona Cambiar nombre/mover.
-
Asígnale el nombre eshoponweb-ci y selecciona Guardar.
Tarea 2: (omitir si ya la has completado) Importación y ejecución de la canalización de CD
Nota: en esta tarea, importarás y ejecutarás la canalización de CD denominada eshoponweb-cd-webapp-code.yml.
-
Ve a Canalizaciones > Canalizaciones.
-
Selecciona el botón Nueva canalización.
-
Selecciona Git de Azure Repos (YAML).
-
Selecciona el repositorio eShopOnWeb.
-
Selecciona Archivo YAML de Azure Pipelines existente.
-
Selecciona el archivo /.ado/eshoponweb-cd-webapp-code.yml y, después, selecciona Continuar.
-
En la definición de canalización de YAML, establece la sección variables de la siguiente manera:
variables: resource-group: 'YOUR-RESOURCE-GROUP-NAME' location: 'centralus' templateFile: 'infra/webapp.bicep' subscriptionid: 'YOUR-SUBSCRIPTION-ID' azureserviceconnection: 'YOUR-AZURE-SERVICE-CONNECTION-NAME' webappname: 'YOUR-WEB-APP-NAME'
-
Reemplaza los valores de las variables por los valores correctos de tu entorno:
- Reemplaza YOUR-RESOURCE-GROUP-NAME por el nombre del grupo de recursos que deseas usar en este laboratorio, por ejemplo, rg-eshoponweb-multi.
- Establece el valor de la variable location en el nombre de la región de Azure en la que quieres implementar los recursos, por ejemplo, centralus.
- Reemplaza YOUR-SUBSCRIPTION-ID por tu identificador de suscripción a Azure.
- Reemplaza YOUR-AZURE-SERVICE-CONNECTION-NAME por azure subs
- Reemplaza YOUR-WEB-APP-NAME por un nombre único global de la aplicación web que se va a implementar, por ejemplo, la cadena eshoponweb-lab-multi-123456 seguida de un número aleatorio de seis dígitos.
-
Selecciona Guardar y ejecutar y elige hacer “commit” directamente en la rama principal.
-
Selecciona Guardar y ejecutar de nuevo.
-
Abre la ejecución de la canalización. Si ves el mensaje “Esta canalización necesita permiso para acceder a un recurso antes de que esta ejecución pueda continuar con Implementar en WebApp”, selecciona Ver, Permitir y Permitir de nuevo. Esto es necesario para permitir que la canalización cree el recurso de Azure App Service.
-
La implementación puede tardar unos minutos en completarse, espera a que se ejecute la canalización. La canalización se desencadena después de la finalización de la canalización de CI e incluye las siguientes tareas:
- AzureResourceManagerTemplateDeployment: Implementa la aplicación web de Azure App Service mediante una plantilla de Bicep.
- AzureRmWebAppDeployment: Publica el sitio web en la aplicación web de Azure App Service.
Nota: en caso de que se produzca un error en la implementación, ve a la página de ejecución de la canalización y selecciona Volver a ejecutar trabajos con errores para invocar otra ejecución de canalización.
Nota: la canalización adoptará un nombre en función del nombre del proyecto. Vamos a cambiarle el nombre para identificar mejor la canalización.
-
Ve a Canalizaciones > Canalizaciones y selecciona la canalización creada recientemente. Selecciona los puntos suspensivos (…) y, a continuación, selecciona la opción Cambiar nombre/mover.
-
Asígnale el nombre eshoponweb-cd-webapp-code y haz clic en Guardar.
Ejercicio 1: Configuración y validación de comprobaciones de aprobación y rama
En este ejercicio, configurarás y validarás las comprobaciones de aprobación y rama de la canalización de CD.
Tarea 1: Creación de un entorno y adición de aprobaciones y comprobaciones
-
En el portal de Azure DevOps, en la página del proyecto eShopOnWeb, selecciona Canalizaciones > Entornos.
-
Selecciona Crear entorno.
-
Asigna al entorno el nombre Pruebas, selecciona Ninguno como recurso y selecciona Crear.
-
Abre el entorno de Pruebas y selecciona la pestaña Aprobaciones y comprobaciones.
-
Selecciona Aprobaciones.
-
En el cuadro de texto Aprobadores, escribe tu nombre de usuario.
-
Si no está habilitado, activa la casilla “Permitir que los aprobadores aprueben sus propias ejecuciones”.
-
Proporciona las instrucciones Aprobar la implementación para probar y selecciona Crear.
-
Haz clic en el botón + Agregar nuevo, selecciona Control de ramas y, después, selecciona Siguiente.
-
En el campo Ramas permitidas, deja el valor predeterminado y selecciona Crear. Puedes agregar más acciones si lo deseas.
-
Crea otro entorno denominado Producción y realiza los mismos pasos para agregar aprobaciones y el control de ramas. Para diferenciar los entornos, agrega las instrucciones Aprobar la implementación en Producción y establece las ramas permitidas en refs/head/main.
Nota: puedes agregar más entornos y configurar aprobaciones y control de ramas para ellos. Además, puedes configurar Seguridad para agregar usuarios o grupos al entorno con roles como Usuario, Creador o Lector.
Tarea 2: Configuración de la canalización de CD para usar el nuevo entorno
-
En el portal de Azure DevOps, en la página del proyecto eShopOnWeb, selecciona Canalizaciones > Canalizaciones.
-
Abre la canalización eshoponweb-cd-webapp-code.
-
Selecciona Editar.
-
Selecciona la línea situada encima del comentario #download artifacts, hasta la línea stages: del archivo YAML de canalización y reemplaza el contenido por el código siguiente:
stages: - stage: Test displayName: Testing WebApp jobs: - deployment: Test pool: eShopOnWebSelfPool environment: Test strategy: runOnce: deploy: steps: - script: echo Hello world! Testing environments! - stage: Deploy displayName: Deploy to WebApp jobs: - deployment: Deploy pool: eShopOnWebSelfPool environment: Production strategy: runOnce: deploy: steps: - checkout: self
Nota: tendrá que desplazar todas las líneas que siguen al código anterior seis espacios a la derecha para asegurarte de que se cumplen las reglas de sangría de YAML.
La canalización debe ser parecida a esta:
[!IMPORTANT] Confirma que el nombre del grupo es el mismo que el que creaste en el laboratorio anterior.
-
Haz clic en Validar y guardar, elige hacer “commit” directamente en la rama principal y, a continuación, haz clic en Guardar.
-
La canalización se desencadenará automáticamente. Abre la ejecución de la canalización.
Nota: si ves el mensaje “Esta canalización necesita permiso para acceder a un recurso antes de que esta ejecución pueda continuar con Implementar en WebApp”, selecciona Ver, Permitir y Permitir de nuevo.
-
Abre la fase Prueba de WebApp de la canalización y anota el mensaje 1 aprobación necesita su revisión antes de que esta ejecución pueda pasar a la prueba de WebApp. Selecciona Revisar y selecciona Aprobar.
-
Espera a que finalice la canalización, abre el registro de canalización y comprueba que la fase Prueba de WebApp se haya ejecutado correctamente.
-
Vuelve a la canalización y verás la etapa Implementar en WebApp esperando aprobación. Selecciona Revisar y Aprobar como hiciste antes en la fase Prueba de WebApp.
Nota: si ves el mensaje “Esta canalización necesita permiso para acceder a un recurso antes de que esta ejecución pueda continuar con Implementar en WebApp”, selecciona Ver, Permitir y Permitir de nuevo.
-
Espera a que finalice la canalización y comprueba que la fase Implementación en WebApp se haya ejecutado correctamente.
Nota: debes poder ejecutar la canalización correctamente con las aprobaciones y comprobaciones de rama en ambos entornos, pruebas y producción.
[!IMPORTANT] Recuerda eliminar los recursos creados en Azure Portal para evitar cargos innecesarios.
Revisión
En este laboratorio, has aprendido a configurar un entorno seguro que cumpla el principio de privilegios mínimos, lo que garantiza que los miembros solo puedan acceder a los recursos que necesitan para realizar sus tareas y minimizar los posibles riesgos de seguridad. Has configurado y validado permisos de usuario y canalización y establecido comprobaciones de aprobación y rama en Azure DevOps.