Recursos de canalización
Azure DevOps Services | | de 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 de YAML, el acceso a los recursos pasa por un sistema denominado comprobaciones. Las comprobaciones pueden suspenderse o incluso producir un error en una ejecución de canalización para mantener seguros los recursos. 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. En Azure Pipelines, todos los recursos protegidos se consideran recursos protegidos en canalizaciones yaML:
- Grupos de agentes
- Variables secretas en grupos de variables
- Proteger archivos
- Conexiones de servicio
- Entornos
- Repositorios
"Protegido" significa:
- Se pueden hacer accesibles a usuarios específicos y canalizaciones específicas 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 de YAML use 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
Opcionalmente, los repositorios se pueden proteger. En el nivel de organización o proyecto, puede optar por limitar el ámbito del token de acceso de Azure Pipelines a repositorios mencionados. Al hacerlo, Azure Pipelines agregará dos protecciones más:
- El token de acceso proporcionado al agente para ejecutar trabajos solo tendrá acceso a los repositorios mencionados explícitamente en la
resources
sección de la canalización. - Los repositorios agregados a la canalización tendrán que ser autorizados por alguien con acceso de lectura 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 la 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 prueba
- 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 es permisos de usuario. En general, asegúrese de que solo concede permisos a los usuarios que los necesiten. Todos los recursos protegidos tienen un modelo de seguridad similar. Un miembro del rol de usuario para un recurso puede:
- Eliminación de aprobadores y comprobaciones configuradas en ese recurso
- Concesión de acceso a otros usuarios o canalizaciones para usar ese recurso
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, se le concedió explícitamente acceso a canalizaciones específicas en las que confía.
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 a 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 intención malintencionada, la mayoría de las canalizaciones necesitan un segundo conjunto de ojos mirar los cambios (especialmente en la propia canalización) antes de implementar en producción. Las comprobaciones permiten pausar la ejecución de la canalización hasta que se cumplan ciertas condiciones:
- Comprobación manual de aprobación. Cada ejecución que usa un recurso protegido por el 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 proviene de la rama derecha.
- Comprobación de rama protegida. Si tiene procesos de revisión de código manuales implementados para algunas 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 variables, 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.
Pasos siguientes
A continuación, considere cómo agrupar los recursos en una estructura de proyecto.