Cambios en las concesiones gratuitas de Azure Pipelines
Estamos cambiando temporalmente el proceso para adquirir concesiones gratuitas de Azure Pipelines para abordar el creciente abuso de los agentes hospedados. De forma predeterminada, es posible que las nuevas organizaciones creadas en Azure DevOps ya no obtengan una concesión gratuita de canalizaciones simultáneas. Los nuevos usuarios tendrán que enviar un correo electrónico y proporcionar información adicional para obtener información gratuita de CI/CD.
Consulte la lista de características siguiente para obtener más información.
Azure Pipelines
- Cambios en las concesiones gratuitas de Azure Pipelines
- Eliminación de directivas de retención por canalización en compilaciones clásicas
- Nuevos controles para variables de entorno en canalizaciones
- Generación de tokens sin restricciones para compilaciones de bifurcación
- Cambio en los módulos preinstalados de Az, Azure y Azure RM
Azure Repos
Azure Pipelines
Cambios en las concesiones gratuitas de Azure Pipelines
Azure Pipelines ha estado ofreciendo ci/CD gratis a proyectos públicos y privados durante varios años. Dado que esto equivale a dar proceso libre, siempre ha sido un objetivo para el abuso, especialmente la minería de cifrado. Minimizar este abuso siempre ha tomado energía del equipo. En los últimos meses, la situación ha empeorado considerablemente, con un alto porcentaje de proyectos nuevos en Azure DevOps que se usan para la minería de cifrado y otras actividades que clasificamos como abusivos. Varios incidentes de servicio durante el último mes han sido causados por este abuso, lo que da lugar a tiempos de espera largos para los clientes existentes.
Para solucionar esta situación, hemos agregado un paso adicional para que las nuevas organizaciones de Azure DevOps obtengan su concesión gratuita. Los siguientes cambios son efectivos inmediatamente:
- De forma predeterminada, las nuevas organizaciones creadas en Azure DevOps ya no obtendrán una concesión gratuita de canalizaciones simultáneas. Esto se aplica tanto a proyectos públicos como privados en nuevas organizaciones.
- Para solicitar su concesión gratuita, envíe una solicitud y proporcione los siguientes detalles claramente:
- Tu nombre
- Organización de Azure DevOps para la que solicita la concesión gratuita
- Si necesita la concesión gratuita para proyectos públicos o proyectos privados
- Vínculos a los repositorios que planea compilar (solo proyectos públicos)
- Breve descripción del proyecto (solo proyectos públicos)
Revisaremos su solicitud y responderemos en unos días.
Nota:
Este cambio solo afecta a las nuevas organizaciones. No se aplica a proyectos o organizaciones existentes. Esto no cambia la cantidad de concesión gratuita que puede obtener. Solo agrega un paso adicional para obtener esa concesión gratuita.
Nos disculpamos por cualquier inconveniente que esto pueda provocar que los nuevos clientes deseen usar Azure Pipelines para CI/CD. Creemos que esto es necesario para seguir proporcionando un alto nivel de servicio a todos nuestros clientes. Continuaremos explorando formas automatizadas de prevenir el abuso y restauraremos el modelo anterior una vez que tengamos un mecanismo confiable para evitar el abuso.
Eliminación de directivas de retención por canalización en compilaciones clásicas
Ahora puede configurar directivas de retención para compilaciones clásicas y canalizaciones YAML en la configuración del proyecto de Azure DevOps. Aunque esta es la única manera de configurar la retención para canalizaciones YAML, también puede configurar la retención para canalizaciones de compilación clásicas por canalización. Se quitarán todas las reglas de retención por canalización para las canalizaciones de compilación clásicas en una próxima versión.
Lo que significa esto para usted: cualquier canalización de compilación clásica que todavía tenga reglas de retención por canalización pronto se regirá por las reglas de retención de nivel de proyecto.
Para ayudarle a identificar estas canalizaciones, estamos implementando un cambio en esta versión para mostrar un banner en la parte superior de la página de lista de ejecuciones.
Se recomienda actualizar las canalizaciones quitando las reglas de retención por canalización. Si la canalización requiere específicamente reglas personalizadas, puede usar una tarea personalizada en la canalización. Para obtener información sobre cómo agregar concesiones de retención a través de una tarea, consulte la documentación de establecimiento de directivas de retención para compilaciones, versiones y pruebas.
Nuevos controles para variables de entorno en canalizaciones
El agente de Azure Pipelines examina la salida estándar de los comandos de registro especiales y las ejecuta. El setVariable
comando se puede usar para establecer una variable o modificar una variable definida previamente. Esto puede ser aprovechado por un actor fuera del sistema. Por ejemplo, si la canalización tiene un paso que imprime la lista de archivos en un servidor ftp, una persona con acceso al servidor ftp puede agregar un nuevo archivo, cuyo nombre contiene el setVariable
comando y hacer que la canalización cambie su comportamiento.
Tenemos muchos usuarios que dependen de establecer variables mediante el comando de registro en su canalización. Con esta versión se realizan los siguientes cambios para reducir el riesgo de usos no deseados del setVariable
comando.
- Hemos agregado una nueva construcción para los autores de tareas. Al incluir un fragmento de código como el siguiente en
task.json
, un autor de tareas puede controlar si sus tareas establecen variables.
{
"restrictions": {
"commands": {
"mode": "restricted"
},
"settableVariables": {
"allowed": [
"myVar",
"otherVar"
]
}
},
}
Además, estamos actualizando una serie de tareas integradas, como ssh, para que no se puedan aprovechar.
Por último, ahora puede usar construcciones YAML para controlar si un paso puede establecer variables.
steps:
- script: echo hello
target:
settableVariables: none
steps:
- script: echo hello
target:
settableVariables:
- things
- stuff
Generación de tokens sin restricciones para compilaciones de bifurcación
Los usuarios de GitHub suelen usar bifurcaciones para contribuir a un repositorio ascendente. Cuando Azure Pipelines compila contribuciones desde una bifurcación de un repositorio de GitHub, restringe los permisos concedidos al token de acceso del trabajo y no permite que dichos trabajos accedan a secretos de canalización. Puede encontrar más información sobre la seguridad de la creación de bifurcaciones en nuestra documentación.
Las mismas restricciones se aplican de forma predeterminada al compilar bifurcaciones de un repositorio de GitHub Enterprise Server. Esto puede ser más restrictivo que el deseado en estos entornos cerrados, donde los usuarios todavía pueden beneficiarse de un modelo de colaboración de origen interno. Aunque puede configurar un valor en una canalización para que los secretos estén disponibles para bifurcaciones, no hay ninguna opción para controlar el ámbito del token de acceso del trabajo. Con esta versión, le proporcionamos control para generar un token de acceso de trabajo normal incluso para compilaciones de bifurcaciones.
Puede cambiar esta configuración desde Desencadenadores en el editor de canalizaciones. Antes de cambiar esta configuración, asegúrese de que comprende completamente las implicaciones de seguridad de habilitar esta configuración.
Cambio en los módulos preinstalados de Az, Azure y Azure RM
Estamos actualizando el proceso de preinstalar los módulos Az, Azure y AzureRM a imágenes hospedadas en Ubuntu y Windows para un uso más eficaz del espacio de imágenes y la compatibilidad.
Durante la semana del 29 de marzo, todas las versiones, excepto la más reciente y la más popular, se almacenarán como archivos y se extraerán mediante la tarea de Azure PowerShell a petición. La lista detallada de cambios se muestra a continuación:
Imágenes de Windows
Todas las versiones del módulo Az excepto la más reciente (actualmente, 5.5.0) se archivarán.
Todos los módulos de Azure excepto el más reciente (actualmente, 5.3.0) y 2.1.0 se archivarán
Todos los módulos de AzureRM excepto el más reciente (actualmente, 6.13.1) y 2.1.0 se archivarán
Imágenes de Ubuntu
- Todos los módulos Az excepto el más reciente (actualmente, 5.5.0) se archivarán o quitarán completamente de la imagen y la tarea se instalará a petición.
Las canalizaciones que usen tareas integradas de Azure en agentes hospedados funcionarán según lo previsto y no requerirán actualizaciones. Si no usa estas tareas, cambie las canalizaciones al uso de la tarea de Azure PowerShell para evitar cambios en los módulos preinstalados.
Nota:
Estas actualizaciones no afectarán a las canalizaciones que se ejecutan en agentes autohospedados.
Azure Repos
Deshabilitar un repositorio
A menudo, los clientes han solicitado una manera de deshabilitar un repositorio y evitar que los usuarios accedan a su contenido. Por ejemplo, puede que quiera hacerlo cuando:
- Encontró un secreto en el repositorio.
- Una herramienta de análisis de terceros encontró que un repositorio no cumple los requisitos.
En tales casos, es posible que desee deshabilitar temporalmente el repositorio mientras trabaja para resolver el problema. Con esta actualización, puede deshabilitar un repositorio si tiene permisos de eliminación del repositorio . Al deshabilitar un repositorio, puede:
- Puede enumerar el repositorio en la lista de repositorios
- No se puede leer el contenido del repositorio
- No se puede actualizar el contenido del repositorio
- Vea un mensaje que indica que el repositorio se ha deshabilitado cuando intentan acceder al repositorio en la interfaz de usuario de Azure Repos.
Una vez realizados los pasos de mitigación necesarios, los usuarios con el permiso Eliminar repositorio pueden volver a habilitar el repositorio. Para deshabilitar o habilitar un repositorio, vaya a Configuración del proyecto, seleccione Repositorios y, a continuación, el repositorio específico.
Pasos siguientes
Nota:
Estas características se implementarán en las próximas dos a tres semanas.
Vaya a Azure DevOps y eche un vistazo.
Cómo enviar sus comentarios
Nos encantaría escuchar lo que piensas sobre estas características. Use el menú de ayuda para notificar un problema o proporcionar una sugerencia.
También puede obtener consejos y sus preguntas respondidas por la comunidad en Stack Overflow.
Gracias,
Vijay Machiraju