Skip to main content

Databricks의 보안 모델

Databricks는 공유 책임 모델(Shared Responsibility Model) 을 따릅니다. 플랫폼의 보안은 Databricks와 고객이 역할을 나누어 담당합니다. 이 문서에서는 Databricks 보안의 전체 그림을 살펴보고, 각 보안 계층이 어떻게 동작하는지 이해하겠습니다.
💡 공유 책임 모델(Shared Responsibility Model) 이란, 클라우드 서비스 제공자(Databricks)와 고객이 각각의 보안 영역을 분담하는 모델입니다. AWS, Azure, GCP 같은 클라우드 제공자들도 동일한 개념을 사용합니다.

공유 책임 모델


보안 계층 구조 (Defense in Depth)

Databricks의 보안은 다층 방어(Defense in Depth) 전략을 따릅니다. 한 계층이 뚫리더라도 다음 계층이 데이터를 보호합니다.
네트워크 보안 → 인증 → 인가 → 데이터 보안 → 감사 순으로 계층적으로 보호합니다.

데이터 암호화

Databricks는 데이터를 저장 시(At-Rest)전송 중(In-Transit) 모두 암호화합니다.

암호화 유형

고객 관리 키 (Customer-Managed Keys, CMK)

CMK를 사용하면 Databricks가 데이터를 암호화할 때 고객이 소유한 키 를 사용합니다. 키를 철회(revoke)하면 Databricks도 데이터에 접근할 수 없습니다.
💡 CMK(Customer-Managed Key) 는 규제 산업(금융, 의료)에서 “우리 데이터는 우리 키로만 암호화해야 한다”는 요건을 충족하기 위해 사용합니다. 키 관리 서비스(AWS KMS, Azure Key Vault)에서 키를 생성하고 Databricks에 연결합니다.

비밀 관리 (Secrets)

데이터베이스 비밀번호, API 키 같은 민감한 정보를 코드에 직접 넣으면 보안 사고로 이어질 수 있습니다. Databricks의 Secret 기능을 사용하면 민감한 값을 안전하게 저장하고 참조할 수 있습니다.

Secret Scope 유형

실습: Secret Scope 생성 및 사용

⚠️ 주의: dbutils.secrets.get()의 결과를 print()하면 [REDACTED]로 표시됩니다. 이는 의도적인 보안 조치입니다. 노트북 출력이나 로그에 비밀 값이 노출되지 않도록 보호합니다.

Secret에 대한 접근 제어


토큰 관리 (Personal Access Token)

PAT(Personal Access Token) 는 REST API나 CLI에서 인증할 때 사용하는 토큰입니다.
💡 프로덕션 환경에서는 PAT 대신 Service Principal + OAuth를 권장합니다. PAT는 개인에게 종속되어, 해당 직원이 퇴사하면 토큰도 무효화해야 합니다.

서비스 프린시펄 (Service Principal)

Service Principal 은 자동화된 파이프라인, CI/CD, 스케줄된 작업에서 사람 대신 인증하는 서비스 계정 입니다.

PAT vs Service Principal 비교


Enhanced Security Monitoring

Enhanced Security Monitoring (강화된 보안 모니터링) 은 보안 프로필을 활성화하면 사용할 수 있는 추가 보안 기능입니다.
🆕 Compliance Security Profile: HIPAA, PCI-DSS, FedRAMP 등 규정 준수가 필요한 환경에서 활성화합니다. 활성화하면 위의 모니터링 기능이 자동으로 적용됩니다.

감사 로그 (Audit Logs) 활용

Databricks는 모든 사용자 활동을 시스템 테이블 에 기록합니다. 이를 활용하여 보안 이벤트를 모니터링할 수 있습니다.

주요 감사 쿼리 예제


규정 준수 (Compliance)

Databricks는 주요 보안 인증 및 규정 준수 프레임워크를 지원합니다.

보안 구성 권장 단계


보안 모범 사례 체크리스트


정리


참고 링크