Skip to main content

Descripción de los tipos de secretos de GitHub

Obtén información sobre los permisos de uso, ámbito y acceso para los secretos de GitHub.

Acerca de los tipos de secretos de GitHub

Los secretos de GitHub se usan para almacenar de forma segura información confidencial, como claves de API, tokens y contraseñas en repositorios.

Al almacenar la información confidencial como un secreto de GitHub, elimina la necesidad de codificar de forma rígida la credencial o la clave y así evitas la exposición de ella en el código o los registros. Después, el secreto se puede usar para autenticar servicios, administrar credenciales y pasar de forma segura datos confidenciales en flujos de trabajo.

Existen dos tipos de secretos que usa GitHub:

Según el tipo de secreto de GitHub, puedes crear y administrar secretos en la página de configuración de seguridad del repositorio, la organización o la cuenta personal.

Secretos de Dependabot

Los secretos de Dependabot se usan para almacenar credenciales e información confidencial para su uso en Dependabot.

Se hace referencia a los secretos de Dependabot en el archivo dependabot.yml de un repositorio.

Uso

Los secretos de Dependabot los usa normalmente Dependabot para autenticarse en registros de paquetes privados. Esto permite que Dependabot abra solicitudes de incorporación de cambios para actualizar dependencias vulnerables u obsoletas en repositorios privados. Se usan para la autenticación, se hace referencia a estos secretos de Dependabot en el archivo dependabot.yml de un repositorio.

Los secretos de Dependabot también pueden incluir secretos necesarios para los flujos de trabajo iniciados por Dependabot. Por ejemplo, Dependabot puede desencadenar flujos de trabajo de GitHub Actions cuando creas solicitudes de incorporación de cambios para actualizar las dependencias o comentarios sobre las solicitudes de incorporación de cambios. En este caso, se puede hacer referencia a los secretos de Dependabot desde archivos de flujo de trabajo (.github/workflows/*.yml) siempre que el flujo de trabajo se desencadene mediante un evento Dependabot.

Ámbito

Puedes definir los secretos de Dependabot a:

  • Nivel de repositorio
  • Nivel de organización

Los secretos de Dependabot se pueden compartir entre repositorios cuando se establecen en el nivel de organización. Debes especificar qué repositorios de la organización pueden acceder al secreto.

Permisos de acceso

Dependabot accede a los secretos de Dependabot al autenticarse en registros privados para actualizar las dependencias.

Los flujos de trabajo de GitHub Actions acceden a los secretos de Dependabot cuando el evento de desencadenador para el flujo de trabajo lo inicia Dependabot. Esto se debe a que cuando un flujo de trabajo lo inicia Dependabot, solo están disponibles los secretos de Dependabot: no se puede acceder a los secretos de acciones. Por lo tanto, los secretos necesarios para estos flujos de trabajo deben almacenarse como secretos de Dependabot, en lugar de secretos de acciones. Hay restricciones de seguridad adicionales para el evento pull_request_target. Consulta Limitaciones y restricciones.

Permisos de acceso de usuario

Secretos de nivel de repositorio:

  • Los usuarios con acceso de administrador al repositorio pueden crear y administrar secretos de Dependabot.
  • Los usuarios con acceso de colaborador al repositorio pueden usar el secreto para Dependabot.

Secretos de nivel de organización:

  • Los propietarios de la organización pueden crear y administrar secretos de Dependabot.
  • Los usuarios con acceso de colaborador a los repositorios con acceso a cada secreto pueden usar el secreto para Dependabot.

Limitaciones y restricciones

En el caso de los flujos de trabajo iniciados por Dependabot, el evento pull_request_target se trata de forma diferente a otros eventos. Para este evento, si la referencia base de la solicitud de incorporación de cambios se creó mediante Dependabot (github.event.pull_request.user.login == 'dependabot[bot]'):

  • El flujo de trabajo recibe un GITHUB_TOKEN de solo lectura.
  • Los secretos no están disponibles para el flujo de trabajo.

Esta restricción adicional ayuda a evitar posibles riesgos de seguridad que podrían surgir de solicitudes de incorporación de cambios creadas por Dependabot.

Los secretos de Dependabot no se pasan a bifurcaciones.

Secretos de acciones

Los secretos de acciones se usan para almacenar información confidencial, como claves de API, tokens de autenticación y otras credenciales en flujos de trabajo.

Uso

Se hace referencia a secretos de Acciones en archivos de flujo de trabajo (.github/workflows/*.yml).

Ámbito

Puede definir secretos de Acciones en:

  • Nivel de repositorio
  • Nivel de entorno
  • Nivel de organización

Los secretos de nivel de entorno son específicos de un entorno determinado, como producción o ensayo. Los secretos de acciones se pueden compartir entre repositorios si se establecen en el nivel de organización. Puedes usar directivas de acceso para controlar qué repositorios tienen acceso al secreto.

Permisos de acceso

Los secretos de Acciones solo están disponibles en los flujos de trabajo de GitHub Actions. A pesar de ejecutarse en Acciones, Dependabot no tiene acceso a secretos de Acciones.

En el caso de los flujos de trabajo iniciados por Dependabot, los secretos de Acciones no están disponibles. Estos secretos de flujo de trabajo deben almacenarse como secretos de Dependabot para poder acceder al flujo de trabajo.

La ubicación donde se almacena el secreto de Acciones determina su accesibilidad:

  • Secreto del repositorio: todos los flujos de trabajo del repositorio pueden acceder al secreto.
  • Secreto de entorno: el secreto está limitado a los trabajos que hacen referencia a ese entorno determinado.
  • Secreto de la organización: todos los flujos de trabajo de los repositorios a los que la organización ha concedido acceso pueden acceder a los secretos de la organización.

Permisos de acceso de usuario

Secretos de entorno y nivel de repositorio:

  • Los usuarios con acceso de administrador al repositorio pueden crear y administrar secretos de Acciones.
  • Los usuarios con acceso de colaborador al repositorio pueden usar el secreto.

Secretos de nivel de organización:

  • Los propietarios de la organización pueden crear y administrar secretos de Acciones.
  • Los usuarios con acceso de colaborador a los repositorios con acceso a cada secreto pueden usar el secreto.

Limitaciones y restricciones

  • Los secretos de Acciones no están disponibles para los flujos de trabajo iniciados por Dependabot.
  • Los secretos de Acciones no se pasan a los flujos de trabajo desencadenados por una solicitud de incorporación de cambios de una bifurcación.
  • GitHub Actions redacta automáticamente el contenido de todos los secretos de GitHub que se imprimen en los registros de flujo de trabajo.
  • Puedes almacenar hasta 1,000 secretos de organización, 100 secretos de repositorio y 100 secretos de ambiente. Los secretos tienen un tamaño máximo de 48 KB. Para obtener más información, consulta Límites de secretos.

Información adicional