Skip to main content

Descripción de los tipos de secretos de GitHub

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

Cómo GitHub almacena secretos

          GitHub usa [cajas selladas libódicas](https://libsodium.gitbook.io/doc/public-key_cryptography/sealed_boxes) para cifrar secretos. Un secreto se cifra antes de alcanzar GitHub y permanece cifrado hasta que se usa en Dependabot, GitHub Actionso Codespaces.

Dependabot secretos

           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.

Usage

          Los secretos de Dependabot se suelen usar en Dependabot para autenticarse en registros de paquetes privados. Esto permite Dependabot abrir solicitudes de incorporación de cambios para actualizar dependencias vulnerables o obsoletas en repositorios privados. Para la autenticación, se hace referencia a estos Dependabot secretos en el archivo `dependabot.yml` de un repositorio.

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

Ámbito

Puede definir Dependabot secretos en:

  • Nivel de repositorio

  • Nivel de organización

            Dependabot los secretos 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 Dependabot acceden a los secretos de GitHub Actions cuando Dependabot inicia el evento desencadenante para el flujo de trabajo. 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 Actions. Por lo tanto, los secretos necesarios para estos flujos de trabajo deben almacenarse como Dependabot secretos, en lugar de secretos de acciones. Hay restricciones de seguridad adicionales para el evento `pull_request_target`. Consulta [Limitaciones y restricciones](#limitations-and-restrictions).

Permisos de acceso de usuario

Secretos de nivel de repositorio:

  • Los usuarios con acceso de administrador al repositorio pueden crear y administrar Dependabot secretos.
  • 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 Dependabot secretos.
  • Los usuarios que tengan acceso de colaborador a los repositorios con acceso a cada secreto pueden utilizar dicho secreto para Dependabot.

Limitaciones y restricciones

En el caso de los flujos de trabajo iniciados por Dependabot, el pull_request_target evento 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 las solicitudes de incorporación de cambios creadas por Dependabot.

          Los secretos de Dependabot no se pasan a las 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.

Usage

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 dentro de los flujos de trabajo GitHub Actions. A pesar de ejecutarse en Acciones, Dependabot no tiene acceso a los 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 Dependabot secretos 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 oculta automáticamente el contenido de todos los secretos de GitHub que se imprimen en los registros del 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.

Codespaces secretos

          Los secretos de Codespaces almacenan credenciales e información confidencial, como tokens de API y claves SSH, para su utilización en GitHub Codespaces, lo que permite configurar entornos de desarrollo seguros.

Usage

          Codespaces Los secretos se referencian dentro de la configuración del Codespaces contenedor de desarrollo (`devcontainer.json`).

Ámbito

Puede definir Codespaces secretos en:

  • Nivel de cuenta de usuario
  • Nivel de repositorio
  • Nivel de organización

En el caso de los secretos de nivel de cuenta de usuario, puedes elegir qué repositorios tienen acceso al secreto.

          Codespaces los secretos 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

          Codespaces solo se puede acceder a los secretos en Codespaces.

          GitHub Actions no puede acceder a los secretos de Codespaces.

Permisos de acceso de usuario

Secretos de nivel de cuenta de usuario:

  • Codespaces Los secretos están disponibles para cualquier espacio de código que cree mediante repositorios con acceso a ese secreto.

Secretos de nivel de repositorio:

  • Los usuarios con acceso de administrador al repositorio pueden crear y administrar Codespaces secretos.
  • 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 Codespaces secretos.
  • Los usuarios con acceso de colaborador a los repositorios con acceso a cada secreto pueden usar el secreto.

Limitaciones y restricciones

  • Puede almacenar hasta 100 secretos para GitHub Codespaces.
  • Los secretos tienen un tamaño máximo de 48 KB.
  •           Los secretos de Codespaces no se pasan a las bifurcaciones.
    

Lectura adicional