"서비스 계정 키가 재사용됨"
"누구나 BigQuery 데이터를 볼 수 있습니다."
"감사 기록이 활성화되어 있지 않습니다"
1. GCP의 3가지 주요 "누출" 패턴
패턴 (1): 서비스 계정 키 관리 부족
GCP 서비스 계정은 애플리케이션이 GCP 자원에 접근할 수 있도록 하는 "신원 카드"입니다.
문제가 되는 사례:
- '프로젝트 편집자'와 '소유자'에 해당하는 여러 SA 키가 있습니다.
- 키 회전 없이 몇 년간 같은 키를 사용해
- 키는 Git 저장소나 공유 드라이브에 저장되어 있습니다
측정 방법:
가능하면 SA 키를 사용하지 않고 Workload Identity를 사용하세요(GCE/GKE는 키 없이 Google API를 호출할 수 있습니다).
패턴 (2): IAM 특권 불량
많은 경우, 소규모 팀이 모두에게 '편집자 권한'을 부여하고 그대로 둡니다.
체크포인트:
- '역할/소유자' 또는 '역할/편집자'가 개인 계정에 직접 할당되나요?
- 은퇴자나 이직자를 위한 계좌가 남아 있나요?
- 그룹 멤버십 목록이 있나요?
패턴 (3): 객체 오류 출판(GCS 등)
클라우드 저장소(GCS) 버킷에서 'allUsers'와 'allAuthenticatedUsers'에 권한을 부여하면 사실상 전 세계적으로 공개적으로 이용 가능해집니다.
2. IAM 디자인 포인트
최소한의 특권 보장
'역할/편집자'는 유용하지만 위험합니다.
실제로 필요한 권한만 부여하는 커스텀 롤을 사용하는 것을 권장합니다.
# 나쁜 예시야
Gcloud 프로젝트 add-iam-policy-binding PROJECT_ID \
--멤버="user:dev@example.com" \
--role="roles/editor"
# 좋은 예시: 오직 당신이 필요한 서비스만을 제공해
Gcloud 프로젝트 add-iam-policy-binding PROJECT_ID \
--멤버="user:dev@example.com" \
--role="roles/cloudsql.client"
조건부 IAM 활용
IAM 바인딩은 시간과 자원 경로에 의해 조건화됩니다.
운영 시간 동안에만 특정 프로젝트에 접근할 수 있습니다.
3. 클라우드 감사 로그에서 기대할 수 있는 점
GCP 감사 로그에는 세 가지 유형이 있습니다:
| 로그 유형 | 기록 내용 | 기본 |
|---|---|---|
| 관리자 활동 | 설정 및 IAM 변경 | 자동 활성화 (비활성화되지 않음) |
| 데이터 접근 | 데이터 읽기 및 수정 | 기본 설정 비활성화 |
| 시스템 이벤트 | GCP 내 자동 작동 | 자동 활성화 |
특별 참고: 데이터 접근 로그는 기본적으로 비활성화되어 있습니다.
BigQuery와 GCS에 접근하려면 명시적으로 활성화해야 합니다.
4. 모니터링: 보안 지휘 센터(SCC) 활용
GCP 표준 보안 대시보드.
SCC가 감지한 주요 문제:
- 공개된 GCS 버킷
- SA 키 사용 의심
- 과도한 권한을 감지하기
- 외부 세계로의 비정상적인 데이터 전송
SCC에서 프리미엄 계층(이전 명칭: Security Health Analytics + Event Threat Detection)을 사용하여 위협 탐지의 정확도를 높이세요.
5. 컬러크루 시큐리티의 접근
Colorkrew Security는 GCP 환경을 위한 보안 설계, 재고 관리 및 감사 로그 설계를 지원합니다.
GCP가 항상 '기본 설정'으로 안전하지는 않습니다. SA 키, IAM, 감사 로그라는 세 가지 요소를 기억하는 것이 GCP 보안의 첫 단계입니다.