Google Sheets 연동 등에 쓸 GCP Service Account를 발급받아 JSON 키를 Databricks Secret에 등록하고 팀에 접근 권한(ACL)을 부여하는 절차
목적
Databricks 노트북에서 Google Sheets 등 외부 서비스를 연동하려면 GCP 서비스 계정의 JSON 키가 필요하다. 이 문서는 그 서비스 계정을 발급받아 Databricks Secret에 안전하게 등록하고, 필요한 인원에게 접근 권한(ACL)을 부여하는 절차를 다룬다.
사전 조건
- 시트–데이터브릭스 연동용 서비스 계정은 보통
mabq프로젝트에서 발급한다. 사내에서는 credential을 개인이 임의로 만들기보다 용도에 맞게 요청 → 발급받는 구조이므로, 먼저 발급 현황·신청 목적이 정리된 "GCP 계정 발급 정보" 문서를 확인한다. - 이미 발급된 공용 credential(예:
DATA_MA_SECRETSscope의ma_google_api_key)이 있다면 아래 1~2단계를 건너뛰고 곧장 "4. Databricks 노트북에서 사용하기"로 간다. - Databricks Personal Access Token — 사용자 설정 → 개발자 → 액세스 토큰에서 발급
수행 방법
1. GCP에서 서비스 계정 + JSON 키 만들기
Google Cloud Console(https://console.cloud.google.com)에서 진행한다.
- 대상 프로젝트 선택 (예:
mabq) - API 및 서비스 → 라이브러리에서 사용할 API 활성화
- Google Sheets API
- Google Drive API (시트를 이름/파일로 열거나 새로 만들 때 필요)
- API 및 서비스 → 사용자 인증 정보(Credentials) → 사용자 인증 정보 만들기 → 서비스 계정
- 이름/용도를 알아보기 쉽게 지정 (예:
databricks-gsheet-<팀명>)
- 이름/용도를 알아보기 쉽게 지정 (예:
- 만든 서비스 계정 → 키(Keys) 탭 → 키 추가 → 새 키 만들기 → JSON 선택
- JSON 키 파일이 로컬에 다운로드된다. 재발급 불가이니 안전하게 보관한다.
- 서비스 계정의 이메일 주소(
...@<project>.iam.gserviceaccount.com)를 복사해 사용자에게 공유한다.
JSON 키 파일은 절대 노트북·코드·슬랙에 그대로 붙여넣지 않는다. 반드시 아래 "2. Databricks Secret에 JSON 키 등록" 단계의 Databricks Secret으로만 관리한다.
발급 후 https://mivault.miridih.com/credentials/gcp 에 추가 내용을 등록한다.
2. Databricks Secret에 JSON 키 등록
JSON 키를 노트북에 두면 유출 위험이 있으므로, Databricks Secret(금고)에 넣어 관리한다. 아래는 CLI 기준이다.
Databricks CLI 설치 & 설정
brew tap databricks/tap
brew install databricks
databricks configure
# Host: https://miridih-workspace.cloud.databricks.com
# Personal Access Token: 사용자 설정 → 개발자 → 액세스 토큰에서 발급
Scope 생성 (없을 경우)
databricks secrets create-scope <scope-name>
# 예: databricks secrets create-scope DATA_MA_SECRETS
JSON 키를 Secret으로 저장 — JSON 파일 통째로 문자열 값으로 넣는다.
databricks secrets put-secret <SCOPE> <SECRET_NAME> --string-value "$(cat ./gcp_credential.json)"
# 예: databricks secrets put-secret DATA_MA_SECRETS ma_google_api_key --string-value "$(cat ./gcp_credential.json)"
3. 권한 부여 (ACL)
권한을 지정하지 않으면 만든 사람만 접근할 수 있다. 팀이 함께 쓰려면 ACL을 추가한다.
권한 종류: MANAGE, READ, WRITE
databricks secrets put-acl <scope-name> <principal> <permission>
# 예 (그룹에 읽기 권한): databricks secrets put-acl DATA_MA_SECRETS users READ
<principal>에는 사용자 이메일, 그룹명, 또는 service principal을 넣을 수 있다. 공용으로 쓸 땐 보통 팀 그룹에 READ를 부여한다.
4. Databricks 노트북에서 사용하기
Secret에 등록한 credential을 노트북에서 불러와 gspread로 시트를 읽고 쓰는 방법(라이브러리 설치 → 인증 설정 → 시트 읽기/쓰기/업데이트 코드 전체)은 Databricks Notebook에서 Google Sheets 가져오기 문서를 참고한다.
확인 방법
databricks secrets list-secrets <scope-name>
databricks secrets list-acls <scope-name>
관련 문서
- technology-data/data-platform/databricks-google-sheets-import-guide.md — Databricks Notebook에서 gspread로 Google Sheets 읽고 쓰기
- technology-data/access-control/databricks-external-service-credential-management-guide.md — GCP Service Account 등 외부 서비스 연동 키의 발급·등록·배포 전반 절차(Flex 신청 → Mivault → Databricks Secrets)
- GCP 계정 발급 정보 (원문 내부 링크. page_id 미확인 — 이번 실행에서는 열지 않았다)
- Databricks CLI 설정 및 Secrets 관리 (원문이 tiny link로 참고 지목. page_id 656507131로 추정 — 이번 실행에서는 열지 않았다)
- 참고 슬랙 스레드 — https://miridih.slack.com/archives/C04EGUKRF71/p1746602400366899?thread_ts=1746600060.995969&cid=C04EGUKRF71