구글 클라우드 플랫폼에서 API 서비스들을 내 앱에 추가하기
- 서비스 계정 생성 (GCP Console)
- json key 파일 다운받기 (GCP Console)
- 구글 클라우드 콘솔에서 console.cloud.google
- 서비스 계정 -> 이메일 클릭 -> 키 -> 키추가(json)
- IAM에 위 1.에서 발급한 서비스 계정 등록 (GCP Console)
- IAM에 역할 등록 (GCP Console)
- 로컬 코드에 json key 파일 경로 참조시키기(Local)
from google.oauth2 import service_account
SERVICE_ACCOUNT_FILE = "GCP 콘솔에서 다운받은 json 파일 경로"
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE)
db=firestore.Client(credentials=credentials)
- 아래처럼 환경변수에 json 파일 경로 등록하면 터미널 나갔다 오면 다시 등록해야 해서 아주 불편함
export GOOGLE_APPLICATION_CREDENTIALS="/data/ephemeral/home/upstageailab-llm-pjt-chatbot-1/Daun/upstageailab5-llm-pjt-8a83e65dcb7a.json
- 구글 GCP API 콜 실행 (Local)
- 앱에서 동작하게 하려는 거면 개인 이메일 계정 등록할 필요 없음
- 발급한 서비스 계정 하나면 됨
- .gitignore에 추가 안 해서 github에 올라가 있으면 구글에서 자동 탐지해 json파일이 자동 막히게 되 있는 거 같다.
Google이 공개 저장소에서 감지된 서비스 계정 키를 자동으로 사용 중지합니다. 'iam.serviceAccountKeyExposureResponse' 조직 정책을 사용하여 이러한 동작을 맞춤설정할 수 있습니다.
- 잘 되다가 다시 금방 json JWT 오류가 나면서 막히던게 github에 유출됐기 때문인지 아니면 환경파일에 등록하고 소스코드에 넣지 않았기 때문인지는 더 살펴봐야 할 것 같다.