0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · 강의

환경 변수 및 보안 비밀

GitHub Actions에서 민감한 정보와 환경별 구성을 안전하게 관리하는 방법을 배웁니다.

환경 변수 및 보안 비밀은(는) CoddyKit의 무료 CI/CD with GitHub Actions & DevOps Pipelines 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 CI/CD with GitHub Actions & DevOps Pipelines 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. CI/CD with GitHub Actions & DevOps Pipelines 강의에는 총 4개의 강의가 포함되어 있습니다.

환경 변수 및 비밀 정보: 기본

3과에 오신 것을 환영합니다! 지속적 통합/지속적 배포에서는 파이프라인을 동적 값이나 민감한 정보로 구성해야 하는 경우가 많습니다.

이때 환경 변수와 비밀 정보가 꼭 필요합니다. 이를 사용하면 워크플로가 다양한 상황에 맞게 작동하고 민감한 데이터를 안전하게 처리할 수 있습니다.

지속적 통합/지속적 배포에서 사용하는 이유

개발, 스테이징, 운영 환경에 배포하거나 응용 프로그래밍 인터페이스 키를 사용하여 외부 서비스에 연결하는 상황을 상상해 보세요.

  • 유연성: 환경 변수를 사용하면 워크플로 파일을 수정하지 않고도 동작을 변경할 수 있습니다.
  • 보안: 비밀 정보는 암호와 응용 프로그래밍 인터페이스 토큰 같은 민감한 데이터가 노출되지 않도록 보호합니다.
  • 재사용성: 구성을 한 번 정의하고 여러 작업이나 단계에서 사용할 수 있습니다.

작업의 환경 변수

환경 변수는 실행 중인 프로세스의 동작 방식에 영향을 줄 수 있도록 이름을 동적으로 지정할 수 있는 값입니다. GitHub 작업에서는 워크플로를 구성 가능하게 만드는 핵심 요소입니다.

직접 환경 변수를 정의하거나 GitHub 작업에서 기본으로 제공하는 다양한 환경 변수를 사용할 수 있습니다.

GitHub 작업의 기본 제공 환경 변수

GitHub 작업은 유용한 사전 정의 환경 변수를 다양하게 자동으로 제공합니다. 이러한 변수는 저장소, 워크플로 실행 등에 대한 정보를 제공합니다.

예를 들어 GITHUB_SHA는 커밋 해시이고, GITHUB_REF는 워크플로를 실행한 브랜치 또는 태그 이름입니다.

식에서는 github 컨텍스트 객체를 사용하거나, 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 }}"

사용자 지정 환경 변수: 워크플로 범위

워크플로 수준이나 작업 수준에서 직접 환경 변수를 정의할 수 있습니다. 워크플로 수준에서 정의한 변수는 해당 워크플로 안의 모든 작업과 단계에서 사용할 수 있습니다.

워크플로 파일의 최상위 수준에서 env 키워드를 사용하여 변수를 설정하세요.

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 variable

사용자 지정 환경 변수: 작업 및 단계 범위

더 구체적인 요구 사항이 있다면 작업 수준이나 단계 수준에서 환경 변수를 정의하세요. 작업에 정의한 변수는 해당 작업의 모든 단계에서 사용할 수 있고, 단계 수준의 변수는 해당 단계 하나에서만 사용할 수 있습니다.

이를 통해 구성을 세밀하게 제어할 수 있습니다.

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 empty

GitHub 비밀 정보 소개

환경 변수는 민감하지 않은 데이터에 적합합니다. 그렇다면 응용 프로그래밍 인터페이스 키, 데이터베이스 암호, 비공개 토큰과 같은 기밀 정보는 어떻게 해야 할까요?

이때 GitHub 비밀 정보를 사용합니다. GitHub 비밀 정보를 사용하면 민감한 정보를 안전하게 저장하고, 저장소의 코드나 기록에 노출하지 않은 채 워크플로에서 사용할 수 있습니다.

  • 암호화됨: GitHub가 안전하게 저장합니다.
  • 자동으로 가려짐: 워크플로 기록에서 자동으로 숨겨집니다.
  • 접근 제어: 지정된 워크플로에서만 사용할 수 있습니다.

GitHub 비밀 정보 만들기

비밀 정보는 워크플로 파일에서 직접 만드는 것이 아니라 GitHub의 저장소 또는 조직 설정을 통해 만들고 관리합니다.

  1. 저장소의 설정으로 이동합니다.
  2. 비밀 정보 및 변수 > 작업으로 이동합니다.
  3. 새 저장소 비밀 정보를 클릭합니다(더 넓은 범위에 적용하려면 조직 비밀 정보를 선택합니다).
  4. 이름(예: MY_API_KEY)을 입력하고 값을 붙여 넣습니다.

저장한 후에는 비밀 정보의 값을 다시 볼 수 없으며, 수정하거나 삭제할 수만 있습니다.

워크플로에서 비밀 정보 사용

비밀 정보를 사용하려면 워크플로에서 secrets 컨텍스트 객체를 사용하여 참조합니다. 환경 변수에 env를 사용하는 방법과 비슷합니다.

GitHub는 기록에서 비밀 정보를 자동으로 가리고, 실수로 노출되는 것을 방지하기 위해 값을 ***로 바꿉니다.

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"

비밀 정보 보안 모범 사례

지속적 통합/지속적 배포 파이프라인의 무결성을 위해 비밀 정보를 안전하게 관리하는 것이 무엇보다 중요합니다. 항상 다음 지침을 따르세요.

  • 최소 권한: 꼭 필요한 곳에만 비밀 정보 접근 권한을 부여하세요.
  • 직접 입력 금지: 워크플로 파일이나 저장소 코드에 비밀 정보를 직접 삽입하지 마세요.
  • 기록 피하기: GitHub가 비밀 정보를 가려 주더라도, 일부가 실수로 노출될 수 있는 사용자 지정 메시지 출력 명령은 사용하지 마세요.
  • 정기적으로 교체: 침해 위험을 줄이기 위해 비밀 정보를 주기적으로 변경하세요.
  • 환경별 관리: 개발, 스테이징, 운영 환경에 서로 다른 비밀 정보를 사용하세요.

빠른 확인: 환경 변수와 비밀 정보 비교

GitHub 액션의 환경 변수와 보안 비밀의 주요 차이점 또는 특징을 정확하게 설명하는 문장은 무엇입니까?

복습: 안전한 구성

훌륭합니다! GitHub 액션 워크플로에서 구성을 관리하는 방법을 성공적으로 살펴보셨습니다.

  • 환경 변수는 워크플로, 작업 또는 단계 수준에서 조정할 수 있는 비민감 동적 데이터를 워크플로 실행에 주입하는 데 도움이 됩니다.
  • 보안 비밀은 API 키와 같은 민감한 정보를 안전하게 처리하는 데 필수적이며, 공개 코드에 노출되지 않도록 암호화된 상태로 유지합니다.
  • 보안 비밀을 사용할 때는 항상 보안 모범 사례를 준수하여 배포 환경을 취약점으로부터 보호하십시오.

이러한 개념을 익히면 CI/CD 파이프라인을 유연하고 안전하게 운영할 수 있습니다!

자주 묻는 질문

“환경 변수 및 보안 비밀” 강의는 무료인가요?

네 — “환경 변수 및 보안 비밀” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 CI/CD with GitHub Actions & DevOps Pipelines 강의 전체를 잠금 해제할 수 있습니다. CI/CD with GitHub Actions & DevOps Pipelines 강의에는 총 4개의 강의가 포함되어 있습니다.

“환경 변수 및 보안 비밀”에서 뭘 배우나요?

GitHub Actions에서 민감한 정보와 환경별 구성을 안전하게 관리하는 방법을 배웁니다. 브라우저에서 직접 실행하는 실습 코드로 CI/CD with GitHub Actions & DevOps Pipelines을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

CI/CD with GitHub Actions & DevOps Pipelines을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 CI/CD with GitHub Actions & DevOps Pipelines은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“환경 변수 및 보안 비밀” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 CI/CD with GitHub Actions & DevOps Pipelines 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 CI/CD with GitHub Actions & DevOps Pipelines 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 지속적 배포 소개
  2. 스테이징 환경에 배포
  3. 환경 변수 및 보안 비밀
  4. 승인 게이트를 통한 운영 환경 배포
← CI/CD with GitHub Actions & DevOps Pipelines(으)로 돌아가기