[GitHub Actions] CI/CD 주요정보 Secrets로 관리하기
안녕하세요~ 오늘은 Git Action
을 공부하는중. 처음엔 자동 재배포를 할때 SpringBoot
기준으로 민감한 정보를 가진 application-secret.yml
같은 파일은 deploy과정에서 어떻게 추가할까? 라는 의문이 들었고 이후 Github Secrets
기능을 이용해서 CI/CD 파이프라인 구축 과정에서 중요한 정보를 안전하게 관리할 수 있다는 걸 알게됐습니다.
본 포스팅에서는 GitHub Actions를 사용할 때, API 키, 데이터베이스 비밀번호, SSH 키 등의 민감한 정보들은 코드에 직접 포함시키는 것이 아니라, GitHub의 Secrets
기능을 통해 안전하게 관리하는 방법을 알아보겠습니다~
Secrets 설정 방법 : 텍스트
- 💡 GitHub 리포지토리로 이동: 먼저, 관리하고자 하는 GitHub 리포지토리의 메인 페이지로 이동합니다.
- 💡 Settings 탭 선택: 리포지토리의 상단 메뉴에서 "Settings"를 클릭합니다.
- 💡 Secrets & Actions 메뉴 선택: 왼쪽 사이드바에서 "Secrets & Actions"를 찾아 클릭합니다.
- 💡 New repository secret 버튼 클릭: 페이지 상단의 "New repository secret" 버튼을 클릭하여 새로운 Secret을 생성합니다.
- 💡 Secret 정보 입력: Secret의 이름과 값을 입력합니다. 이름은 워크플로우에서 참조할 때 사용되며, 값은 보호하고자 하는 민감한 정보입니다.
- 💡 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 Actions
와 GitHub Secrets
기능을 함께 사용함으로써, 민감한 정보를 보호하는 동시에 자동화된 CI/CD 파이프라인을 효율적으로 구축하고 관리할 수 있습니다. 이는 개발 프로세스의 보안성과 효율성을 모두 강화하는 중요한 방법입니다.
감사합니다.😊