Skip to main content

Protecciones de ejecución de flujo de trabajo

Las protecciones de ejecución de flujo de trabajo permiten controlar quién puede desencadenar GitHub Actions flujos de trabajo y qué eventos pueden ejecutarlos en toda la organización.

Nota:

Las protecciones de ejecución de flujo de trabajo están en versión preliminar pública y están sujetas a cambios.

Acerca de las protecciones de ejecución de flujo de trabajo

Las protecciones de ejecución de flujo de trabajo permiten definir una lista de permitidos que controla quién puede desencadenar GitHub Actions flujos de trabajo y qué eventos pueden ejecutarlos. Anteriormente, un flujo de trabajo se ejecutó en función del archivo de flujo de trabajo en la confirmación que lo desencadenó y un atacante con acceso al repositorio podría modificar ese archivo para ejecutar código malintencionado. Las protecciones de ejecución de flujo de trabajo cierran esa brecha. Los administradores definen las reglas y GitHub Actions las evalúan antes de que se ejecute un flujo de trabajo, por lo que un actor o evento no autorizado nunca llega a la ejecución.

Las protecciones de ejecución de flujo de trabajo están disponibles en los niveles de empresa, organización y repositorio.

Respaldado por conjuntos de reglas

Las protecciones para la ejecución de flujos de trabajo se basan en el marco de conjuntos de reglas GitHub, por lo que la segmentación que ya conoces de los conjuntos de reglas también se aplica aquí. Puede aplicar protecciones con conjuntos de reglas y limitarlas a repositorios específicos mediante propiedades personalizadas del repositorio. Esto significa que puede aplicar protecciones amplias desde un solo lugar en lugar de configurar cada archivo de flujo de trabajo individualmente. Para obtener más información sobre los conjuntos de reglas, consulte Acerca de los conjuntos de reglas.

También puede usar el modo de evaluación para ejecutar las reglas sin aplicarlas. El modo de evaluación muestra exactamente lo que bloquearía una regla antes de aplicarla, por lo que puede implementar directivas sin interrumpir los flujos de trabajo existentes.

Reglas disponibles

El evento y el actor son las dos primeras reglas y GitHub planea agregar más reglas a lo largo del tiempo.

  • Las reglas de actor controlan quién puede desencadenar flujos de trabajo, incluidos usuarios individuales, roles de repositorio como Read, Maintain y Admin, GitHub Apps, y CopilotDependabot.
  • Las reglas de eventos controlan qué eventos se permiten, como push, pull_request, pull_request_targety workflow_dispatch.

De forma predeterminada, cada usuario con acceso de escritura a un repositorio puede desencadenar flujos de trabajo. Las reglas de actores permiten separar quién aporta código de quién ejecuta la integración continua, por lo que puede conceder acceso de escritura a un colaborador sin otorgarle permiso para ejecutar flujos de trabajo.

Impedir técnicas habituales de los atacantes

Las protecciones de ejecución de flujo de trabajo interrumpen varios patrones de ataque reales:

  • Ejecución de canalización envenenada a partir de solicitudes de incorporación de cambios. Restrinja o prohíba pull_request_target, incluso en repositorios públicos, donde se explota con más frecuencia.
  • Abuso de desencadenador manual. Limite workflow_dispatch a los mantenedores para que las identidades que no sean de confianza no puedan iniciar flujos de trabajo.
  • Ejecución de actor no confiable. Impedir que las identidades de confianza baja desencadenen flujos de trabajo por completo.
  • Explotación de configuración incorrecta. Aplique una directiva central que invalide cualquier archivo de flujo de trabajo mal configurado.

Configuración de protecciones de ejecución de flujo de trabajo

Las protecciones de ejecución de flujo de trabajo se configuran en la nueva sección Directivas de la GitHub Actions configuración. Esta sección Directivas es independiente de la configuración general existente.

  1. En la esquina superior derecha de GitHub, haz clic en la foto del perfil y luego en Your organizations.

  2. Seleccione una organización haciendo clic en ella.

  3. Debajo del nombre de la organización, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de las pestañas en el perfil de una organización. La pestaña "Configuración" se destaca en naranja oscuro.

  4. En la barra lateral izquierda, en Acciones, haga clic en Directivas.

  5. Cree un conjunto de reglas y agregue las reglas de evento y actor.

  6. Elija si el conjunto de reglas está activo o en modo de evaluación y, a continuación, guarde los cambios.