Recursos de canalización

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Azure Pipelines ofrece seguridad más allá de simplemente proteger el archivo YAML y el código fuente. Cuando se ejecutan canalizaciones YAML, el acceso a los recursos pasa por un sistema denominado comprobaciones. Las comprobaciones pueden suspender o incluso producir un error en una ejecución de canalización para mantener los recursos a salvo. Una canalización puede acceder a dos tipos de recursos: protegidos y abiertos.

Recursos protegidos

Las canalizaciones suelen tener acceso a secretos. Por ejemplo, para firmar la compilación, necesita un certificado de firma. Para realizar la implementación en un entorno de producción, necesita una credencial para ese entorno. Azure Pipelines requiere el rol administrador al abrir el acceso a un recurso a todas las canalizaciones para todos los recursos protegidos, excepto los entornos. Para entornos, necesitará el rol Creador . Más información sobre la protección de recursos.
En Azure Pipelines, todos los siguientes recursos se consideran protegidos en canalizaciones YAML:

"Protegido" significa:

  • Se pueden hacer accesibles a usuarios y canalizaciones específicos dentro del proyecto. Los usuarios y las canalizaciones no pueden acceder a ellos fuera de un proyecto.
  • Puede ejecutar otras comprobaciones manuales o automatizadas cada vez que una canalización YAML usa uno de estos recursos. Para más información sobre los recursos protegidos, consulte Acerca de los recursos de canalización.

Protección de los recursos del repositorio

Los repositorios se pueden proteger si lo desea. En el nivel de organización o proyecto, puede optar por limitar el ámbito del token de acceso de Azure Pipelines a los repositorios mencionados. Al hacerlo, Azure Pipelines agregará dos protecciones más:

  • El token de acceso proporcionado al agente para los trabajos en ejecución solo tendrá acceso a los repositorios mencionados explícitamente en la sección resources de la canalización.
  • Los repositorios agregados a la canalización tendrán que estar autorizados por alguien con acceso de contribución al repositorio la primera vez que la canalización use el repositorio.

Esta configuración está activada de forma predeterminada para todas las organizaciones creadas después de mayo de 2020. Las organizaciones creadas antes de eso deben habilitarla en Configuración de la organización.

Apertura de recursos

Todos los demás recursos de un proyecto se consideran recursos abiertos. Los recursos abiertos incluyen:

  • Artifacts
  • Pipelines
  • Planes de pruebas
  • Elementos de trabajo

Obtendrá más información sobre qué canalizaciones pueden acceder a los recursos de la sección sobre proyectos.

Permisos de usuario

La primera línea de defensa para los recursos protegidos son los permisos de usuario. En general, asegúrese de que solo concede permisos a los usuarios que los requieran. Todos los recursos protegidos tienen un modelo de seguridad similar. Un miembro del rol de usuario de un recurso puede:

  • Quitar aprobadores y comprobaciones configurados en ese recurso
  • Conceder acceso a otros usuarios o canalizaciones para usar ese recurso

Captura de pantalla de los permisos de usuario en las canalizaciones

Permisos de canalización

Cuando se usan canalizaciones YAML, los permisos de usuario no son suficientes para proteger los recursos protegidos. Puede copiar fácilmente el nombre de un recurso protegido (por ejemplo, una conexión de servicio para el entorno de producción) e incluirlo en una canalización diferente. Los permisos de canalización protegen contra dicha copia. Para cada uno de los recursos protegidos, asegúrese de que ha deshabilitado la opción para conceder acceso a "todas las canalizaciones". En su lugar, conceda explícitamente acceso a canalizaciones específicas en las que confía.

Captura de pantalla de los permisos de canalización

Comprobaciones

En YAML, una combinación de permisos de usuario y canalización no es suficiente para proteger completamente los recursos protegidos. Los permisos de canalización para los recursos se conceden a toda la canalización. Nada impide que un adversario cree otra rama en el repositorio, inserte código malintencionado y use la misma canalización para acceder a ese recurso. Incluso sin intenciones maliciosas, la mayoría de las canalizaciones necesitan un segundo par de ojos que revisen los cambios (especialmente en la propia canalización) antes de implementarlos en producción. Las comprobaciones permiten pausar la ejecución de la canalización hasta que se cumplan determinadas condiciones:

  • Comprobación de aprobación manual. Cada ejecución que use un recurso protegido por un proyecto se bloquea para la aprobación manual antes de continuar. La protección manual le ofrece la oportunidad de revisar el código y asegurarse de que procede de la rama correcta.
  • Comprobación de rama protegida. Si tiene procesos de revisión de código manuales en vigor para alguna de las ramas, puede ampliar esta protección a las canalizaciones. Configure una comprobación de rama protegida en cada uno de los recursos. Esto impedirá que la canalización se ejecute automáticamente sobre cualquier rama de usuario.
  • Comprobación de recursos protegidos Puede agregar comprobaciones a entornos, conexiones de servicio, repositorios, grupos de agentes, grupos de variables y archivos seguros para especificar las condiciones que deben cumplirse antes de que una fase de cualquier canalización pueda consumir un recurso. Obtenga más información sobre las comprobaciones y aprobaciones.

Captura de pantalla de la configuración de comprobaciones

Pasos siguientes

A continuación, considere cómo agrupar los recursos en una estructura de proyecto.