Git

[GitHub Actions] CI/CD 주요정보 Secrets로 관리하기

발달중인 망고 2024. 3. 3. 19:03

안녕하세요~ 오늘은 Git Action 을 공부하는중. 처음엔 자동 재배포를 할때 SpringBoot 기준으로 민감한 정보를 가진 application-secret.yml 같은 파일은 deploy과정에서 어떻게 추가할까? 라는 의문이 들었고 이후 Github Secrets 기능을 이용해서 CI/CD 파이프라인 구축 과정에서 중요한 정보를 안전하게 관리할 수 있다는 걸 알게됐습니다.

본 포스팅에서는 GitHub Actions를 사용할 때, API 키, 데이터베이스 비밀번호, SSH 키 등의 민감한 정보들은 코드에 직접 포함시키는 것이 아니라, GitHub의 Secrets기능을 통해 안전하게 관리하는 방법을 알아보겠습니다~

 

 

Secrets 설정 방법 : 텍스트

  1. 💡 GitHub 리포지토리로 이동: 먼저, 관리하고자 하는 GitHub 리포지토리의 메인 페이지로 이동합니다.
  2. 💡 Settings 탭 선택: 리포지토리의 상단 메뉴에서 "Settings"를 클릭합니다.
  3. 💡 Secrets & Actions 메뉴 선택: 왼쪽 사이드바에서 "Secrets & Actions"를 찾아 클릭합니다.
  4. 💡 New repository secret 버튼 클릭: 페이지 상단의 "New repository secret" 버튼을 클릭하여 새로운 Secret을 생성합니다.
  5. 💡 Secret 정보 입력: Secret의 이름과 값을 입력합니다. 이름은 워크플로우에서 참조할 때 사용되며, 값은 보호하고자 하는 민감한 정보입니다.
  6. 💡 Add secret 버튼 클릭: 모든 정보를 입력한 후 "Add secret" 버튼을 클릭하여 Secret을 저장합니다.

Secrets 설정 방법 : 사진 + 예시

✅ application-secret.yml 파일을 GitHub-Secrets에 등록하겠습니다.

 

😅 2 ~ 3번의 진행과정

😃 4~ 5번의  진행과정

  여기서 New Repository secret을 클릭하시면 되는데 아래 application-secret.yml 을 그냥 복사 붙여넣기 해서는 안됩니다.

# application-secret.yml

spring:
  config:
    activate:
      on-profile: blue

  security:
    oauth2:
      client:
        registration:
          kakao:
            redirect-uri: "https://api.bookeverywhere.site/login/oauth2/code/kakao"

 

  이 파일을 그대로 Secrets 설정을 해주시면 안됩니다. Base64로 인코딩 하여 Secrets 등록을 해주셔야 정확히 인식됩니다.

 

  Base64 인코딩 홈페이지 => https://www.convertstring.com/ko/EncodeDecode/Base64Encode

 

  이후 마저 등록해줍니다.

  설정이 완료됐다면 Git Action yml 파일에서 APPLICATION_SECRET_YML 이라는 상수를 사용할 수 있게 됩니다.

 

사용 예제

      - name: Build with Gradle
        run: |
          echo ${{secrets.APPLICATION_SECRET_YML}} | base64 --decode > ./src/main/resources/application-secret.yml

 

 

결론

결론적으로, GitHub ActionsGitHub Secrets 기능을 함께 사용함으로써, 민감한 정보를 보호하는 동시에 자동화된 CI/CD 파이프라인을 효율적으로 구축하고 관리할 수 있습니다. 이는 개발 프로세스의 보안성과 효율성을 모두 강화하는 중요한 방법입니다.

 

감사합니다.😊