깃허브 민감 정보 숨기기

강우엉·2023년 9월 30일
0

study

목록 보기
25/44

프로젝트를 진행하며 application.* 파일등의 정보나 API KEY값들처럼 깃허브 저장소에서는 공개되지 않았으면 하는 정보들이 있다.

오늘은 Gitgub action 에서 secrets을 사용하여 값들을 관리하는 방법을 알아보자.

github actions란

github actions는 github에서 제공하는 기능으로, 특정 트리거가 발동되었을 때 미리 설정한 워크플로를 실행시키는 자동화 툴이다. github actions를 활용하면 main 브랜치에 코드가 푸시되었을 때 자동으로 코드를 테스트하고, 문제가 없다면 배포까지 진행하는 등 프로세스 자동화가 가능해진다.

Secrets

secrets는 말 그대로 비밀이라는 뜻을 갖고 있다. 즉, api키나 password와 같이 우리가 남들에게 숨기고 싶어하는 데이터를 관리해주는 역할을 한다. 사용 방법은 간단하다. github에서 secrets에 원하는 값을 입력하면, actions의 workflow가 실행될 때 이 secrets에 접근이 가능해진다. 그러면 이때 동적으로 secrets의 데이터를 취합해 .env파일을 새로 생성하면 되는 것이다.

사용방법

  1. secrets를 등록하고 싶은 repo에 접속 후
    settings -> security -> secrets and variables -> actions
    우측 상단 new repository secret 클릭

  2. name에는 변수명, secret에는 값을 입력 후 add secret

  3. yml 파일 등의 숨기고싶은 값을 secrets에서 설정한 변수명으로 치환

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3305/stylemate
    username: ${MYSQL_USERNAME}
    password: ${MYSQL_PASSWORD}
  1. 3.에서 처럼 비밀번호 등 값을 변수명으로 치환하면 로컬에서 데이터베이스를 띄우거나 할 때 문제가 생긴다. 따라서 환경변수를 추가해줘야한다.
    IntelliJ에 상단메뉴에서 Run -> Edit Configuration 접속
    구성 세부 정보에 Environment variables 섹션에서 환경변수 추가

4-1. !!!!문제발생!!!!
4.과 같이 IntelliJ에서 환경변수를 설정하면 application.yml파일의 변수들은 읽지만 docker-compose파일에 변수를 읽지 못하는 문제가 발생한다.

아래와 같은 순서로 문제를 해결하였다.

프로젝트 최상단 경로의 .env 파일 생성

MYSQL_ROOT_USER=해당 값
MYSQL_ROOT_PASSWORD=해당 값
MYSQL_USERNAME=해당 값
MYSQL_PASSWORD=해당 값

EnvFile 플러그인 설치

IntelliJ에 상단메뉴에서 Run -> Edit Configuration 접속
Enable EnvFile 체크 후 생성해놓은 env 파일 추가

profile
우엉이의 코딩 성장일기💻

0개의 댓글