Cómo configurar variables de entorno seguras en GitHub Actions

La gestión de credenciales en flujos de integración y despliegue continuo (CI/CD) garantiza la integridad de la infraestructura. En GitHub Actions, la exposición de tokens de API, contraseñas de bases de datos o claves privadas compromete la seguridad de los entornos de producción.

Diferencia entre Secrets y Variables de Entorno

Es fundamental comprender la distinción técnica entre ambos conceptos para aplicar la seguridad de forma correcta:

  • GitHub Secrets: Son variables cifradas mediante la biblioteca libsodium. Una vez guardadas, los valores no pueden ser visualizados en la interfaz, ni siquiera por el administrador. GitHub los enmascara automáticamente en los logs (***).
  • Variables de Entorno (Variables): Se utilizan para configuraciones no sensibles, como nombres de entornos o rutas de directorios. Son visibles en texto plano y no se cifran.

Implementación Paso a Paso

1. Creación de Secretos en el Repositorio

Para añadir una credencial, el proceso estándar es:

  • Navegue a la pestaña Settings de su repositorio.
  • En la barra lateral, seleccione Secrets and variables > Actions.
  • Haga clic en New repository secret.
  • Defina un nombre (ej. API_KEY_PROD) y pegue el valor correspondiente.

2. Uso de Secretos en el Archivo YAML

Es una práctica recomendada asignar el secreto a una variable de entorno local dentro del step específico:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Ejecutar script de despliegue
        env:
          MY_API_KEY: ${{ secrets.API_KEY_PROD }}
        run: |
          # El valor de MY_API_KEY está disponible de forma segura
          ./deploy_script.sh

Niveles de Alcance (Scope)

GitHub permite gestionar la seguridad en tres niveles jerárquicos:

  • Organización: Permite compartir secretos entre múltiples repositorios.
  • Repositorio: Limitado únicamente a los flujos de trabajo de un proyecto específico.
  • Entornos (Environments): La opción más segura. Permite configurar secretos accesibles solo en entornos específicos (como "Producción") con reglas de aprobación manual.

Protocolos de seguridad

El mantenimiento de un entorno confiable requiere la aplicación de los siguientes principios:

  • Mínimo privilegio: Los tokens deben poseer únicamente los permisos necesarios.
  • Prevención de fugas en logs: Evite comandos que listen variables de entorno (como env o printenv).
  • Restricción en Pull Requests: Los secretos no se transfieren a flujos activados por forks externos para evitar extracciones maliciosas.
  • Rotación programada: La renovación periódica limita la validez de una credencial comprometida.

La configuración de variables seguras constituye la base de la protección de datos en procesos automatizados. El uso de GitHub Secrets y Environments permite establecer una arquitectura de despliegue protegida contra accesos no autorizados.

Imagen generada con IA

© Copyright: Natalia Jaimes

Comentarios

Entradas más populares de este blog

vCard vs Linktree ¿Cuál representa mejor tu marca?

3 formas de usar tu vCard en eventos para generar leads reales

El futuro del trabajo: Cómo adaptarse a la automatización y la IA