본문 바로가기
Python

[Python] config.json 사용해서 민감한 정보 가리기

by 카랑현석 2024. 12. 11.

사용 이유

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"]