Posted in

Usar secrets d’entorn de manera segura en GitHub Actions per a projectes Laravel

Quan configurem workflows de CI/CD amb GitHub Actions, és habitual haver d’afegir claus, tokens o altres secrets que el nostre projecte necessita per funcionar. Però aquests secrets han de mantenir-se segurs i no exposar-los al codi ni als logs públics.

1. Què són els secrets d’entorn?

Són variables que contenen informació sensible (com ara tokens d’API, claus SSH, contrasenyes) que es configuren al repositori GitHub i es poden utilitzar dins dels workflows sense que es mostrin o filtrin.

2. On afegir els secrets a GitHub?

Al repositori de GitHub, a Settings > Secrets and variables > Actions pots crear secrets amb un nom i el seu valor. Per exemple:

  • DEPLOY_SSH_KEY
  • API_TOKEN
  • DB_PASSWORD

3. Com utilitzar els secrets als workflows?

En el fitxer YAML del workflow, pots accedir als secrets amb la sintaxi ${{ secrets.NOM_SECRET }}. Ex:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Usar secret d’API
        run: echo "El token és ${{ secrets.API_TOKEN }}"

Important: no mostris mai els secrets directament en logs ni prints. Evita fer echo directe d’un secret.

4. Exemple segur: ús d’una clau SSH per desplegar

Suposem que tens la clau privada SSH com a secret DEPLOY_SSH_KEY. Pots fer això per preparar l’accés SSH al servidor:

- name: Configura SSH
  run: |
    mkdir -p ~/.ssh
    echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/id_rsa
    chmod 600 ~/.ssh/id_rsa
    ssh-keyscan -H example.com >> ~/.ssh/known_hosts

Aquest pas crea la clau privada en local dins del runner i afegeix el servidor a la llista de hosts confiables.

5. Consells per mantenir la seguretat dels secrets

  • No comparteixis els secrets fora del repositori ni amb persones que no siguin de confiança.
  • Revisa els permisos dels runners i limita l’accés als secrets.
  • Si creus que un secret s’ha compromès, canvia’l immediatament i actualitza el secret a GitHub.
  • No incloguis secrets directament al codi o fitxers públics.

6. Bonus: Variables d’entorn per a diferents entorns

Pots crear secrets específics per a entorns (staging, producció) i usar condicions a GitHub Actions per canviar variables segons la branca o l’entorn. Exemple simplificat:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Establir entorn
        run: echo "ENTORN=staging" >> $GITHUB_ENV
      - name: Usar secret segons entorn
        run: |
          if [ "$ENTORN" = "staging" ]; then
            echo "Usant token staging"
            export TOKEN="${{ secrets.STAGING_API_TOKEN }}"
          else
            echo "Usant token producció"
            export TOKEN="${{ secrets.PROD_API_TOKEN }}"
          fi

Conclusió

Els secrets d’entorn són claus per protegir informació sensible quan fem servir CI/CD amb GitHub Actions. Configurar-los correctament i evitar exposar-los en el codi o logs és fonamental per mantenir la seguretat dels teus projectes Laravel o qualsevol altre.

Si vols aprofundir més, aquí tens un exemple complet i pràctic que faig servir habitualment.

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *


The reCAPTCHA verification period has expired. Please reload the page.