본문 바로가기
C.W.K.
Stream
Lesson 05 of 12 · published

Variable (비-비밀 설정)

~8 min · variables, vars, config

Level 0견습생
0 XP0/101 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

모든 걸 비밀값으로 넣을 필욘 없어

AWS 리전, 기본 모델 이름, 피처 플래그 URL 같은 건 그냥 설정이지 비밀값이 아니야. 저장할 때 암호화도 필요 없고, 디버깅을 위해 로그에 보여야 하며, 여러 저장소에서 공유할 수 있어야 하니까.

GitHub는 비밀값 바로 옆에 설정 변수도 제공해. 적용 범위는 비밀값과 똑같이 저장소, 조직, 환경 단위로 지정할 수 있어. 하지만:

  • 평문으로 저장돼.
  • 로그에 그대로 노출돼. (가려지지 않아.)
  • secrets.NAME 대신 vars.NAME으로 접근해.
  • UI도 똑같아: Settings → Secrets and variables → Actions → Variables 탭.

어디에 뭘 넣을까

설정 변수 (vars.X)비밀값 (secrets.X)
AWS_REGIONAWS_ACCESS_KEY_ID
OPENAI_MODELOPENAI_API_KEY
PYTHON_VERSION
STAGING_HOSTSTAGING_SSH_KEY

기준은 간단해. 공개 로그에 누출돼도 상관없으면 설정 변수, 누출되면 키를 교체해야 한다면 비밀값이야.

Code

vars 와 비밀값 혼합·yaml
      - name: Configure AWS
        env:
          AWS_REGION: ${{ vars.AWS_REGION }}
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        run: aws sts get-caller-identity

External links

Exercise

저장소 하나를 골라서 시크릿 감사를 해봐. 민감하지 않은 정보(버전, 리전, 인증 정보가 없는 호스트명)는 변수로 옮기고, 워크플로에서 참조하는 부분도 secrets.X에서 vars.X로 바꿔.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.