사용 이유
API Key나 토큰, URL, 주소 등 민감한 정보를 그대로 노출하여 Github에 올릴 경우 보안 이슈가 발생할 수 있다.
필자는 디스코드 공지사항 봇을 만들면서 디스코드 봇 아이디 정보가 노출이 되면 안되므로 봇 아이디를 숨기기 위해 config.json에 넣어 숨기기로 결정했다.
많은 데이터가 들어가지 않는 경우에는 config.json 에 넣고 숨기면 된다.
config.json 을 이용해서 숨기는 방법
1. config.json 파일을 만든다.
config.json 파일을 만들어 숨길 데이터를 객체 형태로 넣어놓는다.
예를 들어 숨길 데이터의 변수 이름이 "discord_id" 이고 값이 "583014" 인 것과,
변수 이름이 "gcp_user_agent_path" 이고 값이 " /home/hihi1234/bot/hihi.txt" 이라면 아래와 같이 작성할 수 있다.
{
"discord_id" : "583014",
"gcp_user_agent_path" : "/home/hihi1234/bot/hihi.txt"
}
2. .gitignore 에 config.json 파일을 추가해준다.
.gitignore 파일에 아래 코드를 추가로 작성하여 config.json 파일이 git에 올라가지 않도록 할 수 있다.
# config.json 이 git에 올라가지 않도록 합니다.
config.json
3. 코드를 수정한다.
민감한 데이터들은 config.json 파일을 읽어서 사용하는 방식으로 데이터를 관리한다.
3-1. 먼저 json 데이터를 불러와야 하므로 json을 import 하고 아래 코드와 같이 작성한다.
import json
# config.json 파일 로드
def load_config():
with open('config.json', 'r') as config_file:
return json.load(config_file)
config = load_config()
3-2. config.json에서 데이터를 불러올 때는 아래와 같은 문법을 사용한다.
config["해당데이터의이름"]
예를 들어, key가 "gcp_user_agent_path" 으로 저장된 value 값을 가져오고 싶으면 아래와 같이 작성할 수 있다.
config["gcp_user_agent_path"]