비트코인 자동매매 프로그램을 만들다보면 업비트 API 액세스 키 및 시크릿 키 그리고 텔레그램 키 등 여러가지 보안 정보들을 사용해야 합니다. 지금까지는 제일 간편한 방법으로 각종 Key를 공통모듈에 넣고 저장하여 사용하였는데요.
이런 경우 코드를 공유할 때 해당 부분을 제거하는 것을 깜빡하는 경우 자신의 Key가 그대로 노출되어 자산이 위험에 빠질 수 있습니다.
이번 시간에는 각종 Key를 공통 코드가 아닌 특정 파일로 빼서 보관하고 필요한 시점에 파일을 읽어 Key를 조회하는 방법으로 공통 모듈을 변경해 보도록 하겠습니다.
목차 - 클릭하면 이동합니다.
보안 정보 파일로 관리하기
폴더 및 파일 생성하기
trade_bot 폴더 아래에 env 폴더를 하나 생성하고 env.txt 파일을 생성합니다.
{'access_key': '업비트 액세스 키', 'secret_key': '업비트 시크릿 키', 'p_username': '오라클 DB ID', 'p_password': '오라클 DB 비밀번호', 'p_service': '오라클 DB 이름', 'line_token': '라인 메신저 토큰', 'telegram_token': '텔레그램 토큰', 'telegram_id': '텔레그램 ID'}
생성한 파일안에 딕셔너리 형태로 사용하는 Key를 입력하고 저장합니다.
환경 파일 읽어오는 함수 추가
from ast import literal_eval
# -----------------------------------------------------------------------------
# - Name : get_env_keyvalue
# - Desc : 환경변수 읽어오기
# - Input
# 1) key : key
# - Output
# 1) Value : 키에 대한 값
# -----------------------------------------------------------------------------
def get_env_keyvalue(key):
try:
path = './env/env.txt'
f = open(path, 'r')
line = f.readline()
f.close()
env_dict = literal_eval(line)
logging.debug(env_dict)
return env_dict[key]
# ----------------------------------------
# 모든 함수의 공통 부분(Exception 처리)
# ----------------------------------------
except Exception:
raise
기존에 사용하던 upbit.py 공통 모듈에 위의 환경 변수를 읽어오는 부분을 추가합니다. 이때 text 형태로 되어 있는 데이터를 파이썬 딕셔너리 형태로 변경하기 위해 literal_eval 함수 사용이 필요합니다.
KEY 값 가져오기
payload = {
'access_key': get_env_keyvalue('access_key'),
'nonce': str(uuid.uuid4()),
'query_hash': query_hash,
'query_hash_alg': 'SHA512',
}
기존에 Key를 가져오던 부분을 위와 같이 함수로 한번 감싸주면 env.txt 파일에서 Key에 대한 Value를 읽어오게 됩니다.
공통모듈 전체 파일
마치며
이번 시간에 살펴본 내용을 통해 지금까지 긴 코드의 공통 모듈 코드를 전부 텍스트 형태로 블로그에 포스팅해서 본문 길이가 너무 길었었는데 이제부터는 간편하게 위와 같이 파일을 업로드할 수 있을 것 같습니다.
기존 방식으로 사용하는데도 문제는 없으나 이왕이면 별도 파일로 빼서 관리하는 것이 더 보안적으로 안전할 것 같으니 가능하면 반영하시는 것이 좋을 것 같습니다.
블로그를 구독하면 소식을 조금 더 빨리 받아 보실 수 있습니다. 감사합니다.
'프로젝트 > 비트코인 자동매매' 카테고리의 다른 글
업비트 웹소켓 데이터 PostgreSQL DB에 저장하기 - 파이썬 비트코인 자동매매 (12) | 2022.02.23 |
---|---|
업비트 공지사항 크롤링하여 텔레그램으로 메세지 알림받기 (21) | 2022.01.29 |
급등주 찾기 - 업비트 파이썬 비트코인 자동매매 프로그램 (19) | 2022.01.26 |
파이썬 업비트 웹소켓 접속방법 - 비트코인 자동매매 프로그램 (20) | 2022.01.14 |
리눅스 서버에서 비트코인 자동매매 프로그램 스케쥴 등록하여 실행하기 (10) | 2022.01.12 |
리눅스 서버에서 비트코인 자동매매 프로그램 실행하기 (33) | 2021.12.21 |