Configuración de Secretos en GitHub Actions

GitBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a utilizar los Secretos de GitHub Actions (GitHub Actions Secrets). Los secretos son variables de entorno cifradas que usted crea en una organización, repositorio o entorno de repositorio. Los secretos que crea están disponibles para su uso en sus flujos de trabajo (workflows) de GitHub Actions.

Esto es esencial para mantener segura la información sensible como claves de API, tokens de acceso y contraseñas. GitHub Actions automáticamente oculta (redacts) los secretos de los registros (logs), asegurando que no queden expuestos.

Este laboratorio se basa en el repositorio que creó en los laboratorios anteriores. Añadirá un secreto a su repositorio github-actions-demo y creará un flujo de trabajo que lo utilice.

Usted seguirá los siguientes pasos:

  1. Añadir un secreto de repositorio a su repositorio de GitHub existente.
  2. Clonar el repositorio y crear un archivo de flujo de trabajo que haga referencia al secreto.
  3. Añadir pasos para utilizar el secreto.
  4. Subir (push) el flujo de trabajo a GitHub.
  5. Verificar que el secreto está enmascarado en los registros de ejecución.
Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 100%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Crear un secreto de repositorio llamado MY_SECRET en la configuración de GitHub

En este paso, añadirás un secreto a tu repositorio existente github-actions-demo en GitHub y clonarás el repositorio a tu entorno LabEx.

Añadir un Secreto de Repositorio

  1. Abre tu navegador web y navega a tu repositorio github-actions-demo en GitHub: https://github.com/your-username/github-actions-demo
  2. Haz clic en la pestaña Settings (Configuración).
  3. En la barra lateral izquierda, desplázate hacia abajo hasta la sección Security (Seguridad), haz clic en Secrets and variables (Secretos y variables) y luego selecciona Actions.
  4. Haz clic en el botón verde New repository secret (Nuevo secreto de repositorio).
  5. Introduce los siguientes detalles:
    • Name (Nombre): MY_SECRET
    • Secret (Secreto): SuperSecretValue123
  6. Haz clic en Add secret (Añadir secreto).
GitHub Actions secrets

Ahora deberías ver MY_SECRET listado bajo "Repository secrets" (Secretos del repositorio).

Clonar el Repositorio

Ahora, vuelve al entorno LabEx para clonar el repositorio.

  1. En la página de tu repositorio de GitHub para github-actions-demo, haz clic en el botón verde Code (Código).
  2. Asegúrate de que la pestaña HTTPS esté seleccionada y copia la URL. Debería verse como https://github.com/your-username/github-actions-demo.git.
  3. Abre la terminal en el entorno LabEx. La ruta predeterminada es ~/project.
  4. Usa el comando git clone para descargar el repositorio. Reemplaza your-username con tu nombre de usuario real de GitHub.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git

Salida de Ejemplo:

Cloning into 'github-actions-demo'...
remote: Enumerating objects: X, done.
remote: Counting objects: 100% (X/X), done.
remote: Total X (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (X/X), done.
  1. Navega dentro del repositorio clonado:
cd ~/project/github-actions-demo

Referenciar el secreto en el flujo de trabajo con ${{ secrets.MY_SECRET }}

En este paso, crearás un archivo de flujo de trabajo que hace referencia al secreto que acabas de crear.

  1. Asegúrate de estar en el directorio del repositorio:
cd ~/project/github-actions-demo
  1. Crea un nuevo archivo llamado secrets-demo.yml dentro del directorio .github/workflows:
touch .github/workflows/secrets-demo.yml
  1. Abre .github/workflows/secrets-demo.yml en el WebIDE y añade el siguiente contenido. Esto define un flujo de trabajo básico que se activa con los eventos push.
name: Secrets Demo
on: [push]

jobs:
  use-secret:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

Esto configura el trabajo (job). En el siguiente paso, añadiremos la lógica para usar el secreto.

Añadir un paso para mostrar el valor del secreto de forma segura

En este paso, modificarás el flujo de trabajo (workflow) para acceder al secreto. GitHub Actions te permite acceder a los secretos usando la sintaxis ${{ secrets.SECRET_NAME }}.

Modificar el Flujo de Trabajo

Abre .github/workflows/secrets-demo.yml y añade el siguiente paso a la lista de steps. Asegúrate de que la indentación sea correcta.

- name: Print Secret
  env:
    MY_SECRET_VAL: ${{ secrets.MY_SECRET }}
  run: |
    echo "Printing secret directly (masked): ${{ secrets.MY_SECRET }}"
    echo "Printing secret from env (masked): $MY_SECRET_VAL"

Tu archivo completo .github/workflows/secrets-demo.yml debería verse así:

name: Secrets Demo
on: [push]

jobs:
  use-secret:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Print Secret
        env:
          MY_SECRET_VAL: ${{ secrets.MY_SECRET }}
        run: |
          echo "Printing secret directly (masked): ${{ secrets.MY_SECRET }}"
          echo "Printing secret from env (masked): $MY_SECRET_VAL"

Concepto Clave

Cuando utilizas un secreto en un flujo de trabajo, GitHub lo enmascara automáticamente en los registros (logs). Incluso si intentas hacer echo del valor, la salida mostrará asteriscos (***) en lugar del valor real.

Confirmar y subir el flujo de trabajo con la referencia al secreto

En este paso, confirmarás (commit) tus cambios y los enviarás (push) a GitHub. Esto activará la GitHub Action.

  1. Asegúrate de estar en el directorio del repositorio:
cd ~/project/github-actions-demo
  1. Prepara (stage) el archivo del flujo de trabajo:
git add .github/workflows/secrets-demo.yml
  1. Confirma los cambios con un mensaje descriptivo:
git commit -m "Add workflow to test secrets"
  1. Envía los cambios al repositorio remoto en GitHub:
git push

Nota sobre la Autenticación:
Cuando ejecutes git push, el WebIDE te pedirá automáticamente que te autentiques. Sigue estos pasos detallados:

  1. Aparecerá una ventana emergente con el mensaje: "The extension 'GitHub' wants to sign in using GitHub." Haz clic en Allow.
  2. Aparecerá una nueva notificación. Haz clic en "Copy&Continue to GitHub", y luego haz clic en "Open" en el siguiente aviso.
  3. Inicia sesión en tu cuenta de GitHub en la ventana del navegador que se abre e introduce el código de autorización que se copió. Después de confirmar la autorización, la página se cerrará automáticamente.
  4. Espera unos segundos y verás que la terminal completa la operación de push con éxito.

Nota de Privacidad: El WebIDE solicitará acceso completo a tu cuenta de GitHub con fines de autenticación. No tienes que preocuparte por problemas de privacidad: la VM de LabEx será destruida inmediatamente después de completar el laboratorio actual, y tus credenciales e información de autorización no se conservarán.

Revisar los registros para asegurar que el secreto se usa sin exposición

Después de subir (push) tu código, el flujo de trabajo se activará automáticamente en GitHub. Puedes ver los registros de la ejecución del flujo de trabajo para verificar que la clave secreta (secret) se esté utilizando de forma segura.

  1. Visita tu repositorio en GitHub en un navegador web: https://github.com/your-username/github-actions-demo
  2. Haz clic en la pestaña Actions en la parte superior de la página del repositorio.
  3. Deberías ver una ejecución de flujo de trabajo listada, probablemente llamada "Add workflow to test secrets" o "Secrets Demo".

Nota: Cuando subes código, es posible que se activen múltiples Acciones (Actions) si tienes varios archivos de flujo de trabajo en tu repositorio. Por favor, identifica la ejecución correcta del flujo de trabajo revisando el nombre del flujo en la barra lateral izquierda o utilizando la lista de ejecuciones del flujo de trabajo en el lado derecho.

  1. Haz clic en el título de la ejecución del flujo de trabajo y luego haz clic en el trabajo (job) use-secret.
  2. Expande el paso Print Secret para ver la salida.

Deberías ver algo como esto:

Printing secret directly (masked): ***
Printing secret from env (masked): ***

Observa que, aunque el flujo de trabajo intentó imprimir el valor del secreto, GitHub Actions lo enmascaró automáticamente con *** en los registros. Esta es una característica de seguridad crítica: evita que la información sensible se exponga accidentalmente en los registros, incluso si intentas imprimirla. Esto confirma que tu secreto está configurado de forma segura y se está utilizando en el flujo de trabajo sin exponer su valor real.

GitHub Actions logs

Resumen

En este laboratorio, ha aprendido con éxito cómo:

  1. Crear un Secreto de Repositorio (Repository Secret) en la Configuración de GitHub para almacenar datos sensibles.
  2. Crear un archivo de flujo de trabajo (workflow file) de GitHub Actions.
  3. Referenciar el secreto usando la sintaxis ${{ secrets.MY_SECRET }}.
  4. Pasar el secreto a variables de entorno dentro de un paso de trabajo (job step).
  5. Verificar que GitHub enmascara automáticamente el valor del secreto en los registros de compilación (build logs).

Esta práctica asegura que sus datos sensibles, como claves de despliegue (deployment keys) y tokens de API, permanezcan seguros durante todo su proceso de CI/CD.