g2g-crawling05: 엑세스 키 관리 문제

엑세스키 노출

파일 하나에서 함수를 모두 관리했었고, 당연 문제가 됐다.

이전 업데이트 때 깜빡하고 GCP acc 키가 제거되지 않은 상태로 push 해버린 것.

조취(20220303)

당장 연결 권한을 바꿔야한다.
그 이후, 같은 실수가 발생하지 않도록 관리방법이 추가되야한다.

불특정된 사람들이 깃헙을 유심히 볼만한 정도는 아니라 다행이라 생각한다.

엑세스키 제거 후 재발급

commit을 일일히 삭제하는 방법을 생각했지만, 어딘가엔 데이터가 남을 가능성이 있어 GCP에서 서비스 키를 새로 발급받았다.

이걸로 일단 노출된 키로 접근하는 불상사는 막았다.

새로운 py 파일 생성

source를 계속 업데이트 한다면 역시 까먹어도 문제 없도록 엑세스 함수를 숨기거나 따로 관리해야한다.

기존에 사용하던 crawl_URL_boost.py에서 SQL에 접근하는 데이터가 들어있는 connecting, dataInsertPsycopg2, accGBQ을 crawl_acc_sql.py 파일로 옮겨 개인 모듈로 관리한다.

crawl_acc_sql.py에 사용되는 모듈들을 boost에서 옮겨담는다.

crawl_acc_sql.py
1
2
3
4
5
import pandas_gbq
import psycopg2
from psycopg2 import connect, extensions
import psycopg2.extras as extras
from google.oauth2 import service_account

crawl_URL_boost.py에는 crawl_acc_sql 모듈을 추가함에 따라 기존 함수들도 모듈에 맞춰 수정했다.

crawl_URL_boost.py
1
2
3
4
5
6
7
8
9
import crawl_acc_sql as accsql


if __name__ == "__main__":

conn = accsql.connecting()
accsql.dataInsertPsycopg2(conn, data=df)

accsql.accGBQ(df)

혹시 모를 에러를 대비해 .backup 로컬 폴더에 수정된 날짜를 파일명에 추가해 이전 버전을 백업했다.

새로운 sql을 추가하지 않는 이상 crawl_acc_sql.py를 편집할 일은 없으므로 계정 키를 항상 지워서 업로드해야하는 불편함이 줄었다.

내부링크

GCP 엑세스키 발급받기

Google Cloud Platform

Python 코드에서 Bigquery로 data를 보내기 위해 GCP 엑세스 키가 필요해졌다.

google cloud 콘솔에 접속하자.

Service Account 생성

콘솔에서 엑세스 키를 발급받을 프로젝트를 선택하자.

  • 다음으로 [탐색 메뉴] - [IAM 및 관리자] - [서비스 계정]에 접속한다.
  • [+ 서비스 계정 만들기]를 클릭해서 서비스 계정을 만들고 프로젝트 엑세스 권한을 설정하면된다.

계정 생성

Service Account Key 발급받기

  • 생성된 계정의 [작업] - [키 관리]로 이동한다.
  • [키 추가] - [새 키 만들기] - [JSON]으로 발급받아서 사용하면 된다.

python GCP 연동하기

외부링크