Variables de entorno y secretos
Aprenda a gestionar de forma segura la información confidencial y las configuraciones específicas de cada entorno en GitHub Actions.
Variables de entorno y secretos es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.
Variables de entorno y secretos: conceptos básicos
¡Le damos la bienvenida a la lección 3! En CI/CD, a menudo necesita configurar sus pipelines con valores dinámicos o información confidencial.
Aquí es donde las variables de entorno y los secretos se vuelven indispensables. Permiten que sus flujos de trabajo se adapten a distintos escenarios y gestionen datos confidenciales de forma segura.
¿Por qué utilizarlos en CI/CD?
Imagine que despliega en distintos entornos (desarrollo, staging y producción) o que se conecta a servicios externos mediante claves de API.
- Flexibilidad: Las variables de entorno permiten cambiar el comportamiento sin modificar el archivo del flujo de trabajo.
- Seguridad: Los secretos protegen datos confidenciales, como contraseñas y tokens de API, para evitar que queden expuestos.
- Reutilización: Defina las configuraciones una sola vez y utilícelas en varios trabajos o pasos.
Variables de entorno en Actions
Una variable de entorno es un valor con un nombre dinámico que puede afectar al comportamiento de los procesos en ejecución. En GitHub Actions, son fundamentales para hacer que sus flujos de trabajo sean configurables.
Puede definir sus propias variables de entorno o utilizar las muchas variables integradas que proporciona GitHub Actions.
Variables de entorno integradas de GitHub Actions
GitHub Actions proporciona automáticamente muchas variables de entorno predefinidas y útiles. Estas le ofrecen información contextual sobre el repositorio, la ejecución del flujo de trabajo y mucho más.
Por ejemplo, GITHUB_SHA es el hash del commit, y GITHUB_REF es el nombre de la rama o etiqueta que activó el flujo de trabajo.
Puede acceder a ellas mediante el objeto de contexto github en las expresiones o directamente como variables del shell si se asignan a env.
name: Print Context Variables
on: [push]
jobs:
display_info:
runs-on: ubuntu-latest
steps:
- name: Show commit SHA
run: echo "Commit SHA: ${{ github.sha }}"
- name: Show branch/tag ref
run: echo "Ref: ${{ github.ref }}"Variables de entorno personalizadas: ámbito del flujo de trabajo
Puede definir sus propias variables de entorno en el nivel del flujo de trabajo o del trabajo. Las variables definidas en el nivel del flujo de trabajo están disponibles para todos los trabajos y pasos de ese flujo.
Utilice la palabra clave env en el nivel superior del archivo del flujo de trabajo para establecerlas.
name: Workflow-level Env Var
on: [push]
env:
GREETING_MESSAGE: "Hello from Workflow!"
jobs:
my_job:
runs-on: ubuntu-latest
steps:
- name: Access workflow variable
run: echo "${{ env.GREETING_MESSAGE }}" # Access via env context
- name: Access workflow variable (shell)
env:
MY_VAR_IN_SHELL: ${{ env.GREETING_MESSAGE }}
run: echo "$MY_VAR_IN_SHELL" # Access as shell variableVariables de entorno personalizadas: ámbito del trabajo y del paso
Para necesidades más específicas, defina variables de entorno en el nivel del trabajo o del paso. Una variable definida para un trabajo está disponible para todos sus pasos, mientras que una variable definida en el nivel del paso solo está disponible para ese paso.
Esto permite controlar la configuración con precisión.
name: Job & Step-level Env Vars
on: [push]
jobs:
my_job:
runs-on: ubuntu-latest
env:
JOB_VAR: "Value for this job"
steps:
- name: Access Job-level variable
run: echo "Job Var: ${{ env.JOB_VAR }}"
- name: Step-specific variable
env:
STEP_VAR: "Value for this step"
run: echo "Step Var: ${{ env.STEP_VAR }}"
- name: Try to access step var in another step
run: echo "Trying to access: ${{ env.STEP_VAR }}" || true # Will be emptyIntroducción a los secretos de GitHub
Las variables de entorno son ideales para datos no confidenciales, pero ¿qué ocurre con información confidencial como claves de API, contraseñas de bases de datos o tokens privados?
Aquí entran en juego los secretos de GitHub. Permiten almacenar información confidencial de forma segura y acceder a ella desde los flujos de trabajo sin exponerla en el código ni en los registros del repositorio.
- Cifrados: GitHub los almacena de forma segura.
- Ocultos: Se ocultan automáticamente en los registros de los flujos de trabajo.
- Acceso controlado: Solo están disponibles para flujos de trabajo específicos.
Creación de secretos de GitHub
Los secretos se crean y gestionan desde la configuración del repositorio o de la organización en GitHub, no directamente en los archivos del flujo de trabajo.
- Vaya a Settings de su repositorio.
- Vaya a Secrets and variables > Actions.
- Haga clic en New repository secret (o en el secreto de organización si necesita un ámbito más amplio).
- Proporcione un Name (por ejemplo,
MY_API_KEY) y pegue el Value.
Una vez guardado, no podrá volver a ver el valor de un secreto; solo podrá actualizarlo o eliminarlo.
Uso de secretos en los flujos de trabajo
Para utilizar un secreto, haga referencia a él mediante el objeto de contexto secrets en su flujo de trabajo, de forma similar a como utiliza env para las variables de entorno.
GitHub oculta automáticamente los secretos en los registros y sustituye sus valores por *** para evitar exposiciones accidentales.
name: Use a Secret Demo
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Display a secret (redacted)
run: echo "My secret key is: ${{ secrets.MY_API_KEY }}"
# GitHub Actions automatically redacts the value in logs.
- name: Pass secret to an environment variable
env:
API_KEY_ENV: ${{ secrets.MY_API_KEY }}
run: echo "API Key in env: $API_KEY_ENV"Buenas prácticas de seguridad para secretos
Gestionar los secretos de forma segura es fundamental para la integridad de su pipeline de CI/CD. Siga siempre estas directrices:
- Mínimo privilegio: Conceda acceso a los secretos únicamente cuando sea absolutamente necesario.
- Nunca los incluya directamente: No inserte secretos directamente en los archivos del flujo de trabajo ni en ningún código del repositorio.
- Evite registrarlos: Aunque GitHub los oculta, evite comandos
echopersonalizados que puedan revelar accidentalmente parte de los secretos. - Rótelos con regularidad: Cambie los secretos periódicamente para minimizar el riesgo de que se vean comprometidos.
- Específicos del entorno: Utilice secretos diferentes para los entornos de desarrollo, staging y producción.
Comprobación rápida: variables de entorno frente a secretos
¿Qué afirmación describe correctamente una diferencia o característica clave de las variables de entorno y los secretos de GitHub Actions?
Repaso: configuraciones seguras
¡Excelente! Ha aprendido a administrar correctamente las configuraciones de sus flujos de trabajo de GitHub Actions.
- Las variables de entorno le permiten inyectar datos dinámicos no confidenciales en las ejecuciones del flujo de trabajo, con la posibilidad de adaptarlos a nivel del flujo de trabajo, del trabajo o del paso.
- Los secretos son fundamentales para gestionar de forma segura información confidencial, como las claves de API, y garantizar que permanezca cifrada y fuera de su código público.
- Al trabajar con secretos, siga siempre las prácticas recomendadas de seguridad para proteger sus implementaciones frente a vulnerabilidades.
Dominar estos conceptos garantiza que sus canalizaciones de CI/CD sean flexibles y seguras.
Preguntas frecuentes
¿La lección «Variables de entorno y secretos» es gratis?
Sí — el texto completo de «Variables de entorno y secretos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué aprenderé en «Variables de entorno y secretos»?
Aprenda a gestionar de forma segura la información confidencial y las configuraciones específicas de cada entorno en GitHub Actions. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Variables de entorno y secretos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Introducción al despliegue continuo
- Despliegue en un entorno de staging
- Variables de entorno y secretos
- Despliegue en producción con puertas de aprobación