Q: 애플리케이션 연동을 위한 서비스 계정 키(JSON) 생성 및 관리는 어떻게 하나요?
상세 설명: 서비스 계정 키는 애플리케이션이 GCP 리소스에 접근할 수 있도록 허가하는 자격 증명입니다.
다운로드한 키 파일(JSON)을 애플리케이션 환경변수(GOOGLE_APPLICATION_CREDENTIALS)로 설정하면 Google Cloud 클라이언트 라이브러리가 자동으로 인증을 처리합니다.
보안 주의사항:
- 키 파일은 비밀번호와 동일하므로 절대 GitHub 등 소스코드 저장소에 업로드하지 마십시오.
- 보안 강화를 위해 키를 주기적으로 교체(Rotation)하거나, 가능하다면 키 파일 대신 워크로드 아이덴티티 제휴(Workload Identity Federation)와 같은 더 안전한 대안을 사용하는 것을 권장합니다.
1. 서비스 계정 키(JSON) 생성 방법
GCP 콘솔에서 서비스 계정 키를 생성하는 절차는 다음과 같습니다.
a. Google Cloud Console에 접속합니다.
b. 상단 검색창에서 "IAM 및 관리자" 또는 "IAM & Admin"을 검색하여 선택합니다.
c. 왼쪽 메뉴에서 "서비스 계정(Service Accounts)"을 클릭합니다.
d. 키를 생성할 기존 서비스 계정을 클릭하거나, 필요한 경우 “서비스 계정 만들기”를 클릭하여 새 서비스 계정을 생성합니다.
e. 서비스 계정 세부 정보 페이지에서 "키(Keys)" 탭을 선택합니다.
f. "키 추가(Add Key)"를 클릭한 후 "새 키 만들기(Create new key)"를 선택합니다.
g. 키 유형으로 "JSON"을 선택합니다. (권장)
h. "만들기(Create)" 버튼을 클릭하면 JSON 키 파일이 자동으로 다운로드됩니다.
i. 다운로드된 키 파일을 안전하게 보관하고, 필요한 애플리케이션 환경에 배포합니다.
2. 서비스 계정 키 관리 모범 사례
서비스 계정 키 사용 시 보안 위험을 최소화하기 위해 다음 5가지 원칙을 준수해야 합니다.
-
키 보안 유지 및 저장
- 키 파일을 소스 코드 저장소(Git 등)에 절대 포함하지 마십시오.
- 파일 시스템 권한을 제한하여 승인되지 않은 사용자의 접근을 차단하십시오.
- 가능하다면 Secret Manager와 같은 비밀 관리 시스템을 통해 키를 안전하게 저장하고 호출하십시오.
-
최소 권한 원칙 (Principle of Least Privilege)
- 서비스 계정에는 작업을 수행하는 데 필요한 '최소한의 권한'만 부여하십시오.
- 불필요하게 광범위한 권한(예: Owner, Editor) 부여를 지양하고, 정기적으로 권한을 검토하십시오.
-
키 순환(Rotation) 의무화
- 서비스 계정 키를 정기적으로 교체하는 정책을 수립하십시오. (90일 주기 권장)
- 새 키 생성 -> 애플리케이션 적용 및 테스트 -> 이전 키 삭제 순서로 안전하게 교체하십시오.
-
키 사용 감사 및 모니터링
- Cloud Audit Logs를 활성화하여 서비스 계정 키의 사용 내역을 모니터링하십시오.
- 예상치 못한 지역이나 IP에서의 접근 등 비정상적인 패턴이 없는지 정기적으로 로그를 확인하십시오.
-
더 안전한 대체 인증 방법 우선 고려
- 장기(Long-lived) 키 파일 사용을 피하고, 아래 '키 관리 대안'에 명시된 방법을 우선적으로 고려하십시오.
3. 서비스 계정 키 관리 대안 (권장)
Google Cloud는 키 파일 유출 위험을 원천 차단하기 위해 키 없는(Keyless) 인증 방식을 권장합니다.
- Workload Identity Federation (워크로드 아이덴티티 제휴)
AWS, Azure, 온프레미스 등 GCP 외부에서 실행되는 애플리케이션이 키 파일 없이 GCP 리소스에 접근할 수 있게 해주는 메커니즘입니다.
- Workload Identity Federation for GKE
GKE(Google Kubernetes Engine) 내의 파드(Pod)가 Kubernetes 서비스 계정을 통해 GCP 서비스 계정 권한을 안전하게 가장할 수 있게 합니다.
- Compute Engine 인스턴스에 서비스 계정 연결
Compute Engine 인스턴스에 서비스 계정을 직접 연결하여, 애플리케이션이 메타데이터 서버를 통해 액세스 토큰을 자동으로 가져오게 합니다.
관련 공식 문서
[+] 서비스 계정 생성 및 관리
서비스 계정 만들기 | Identity and Access Management (IAM)
[+] 서비스 계정 키 생성 및 삭제
서비스 계정 키 생성 및 삭제 | Identity and Access Management (IAM)
[+] 서비스 계정 키 관리 권장사항
서비스 계정 키 관리 권장사항 | Identity and Access Management (IAM)
[+] 워크로드 아이덴티티 제휴
워크로드 아이덴티티 제휴 | Identity and Access Management (IAM)
[+] Google Cloud에서 서비스 계정을 인증하는 적합한 방법 선택하기
Choose the best way to use and authenticate service accounts on Google Cloud
댓글
댓글 0개
댓글을 남기려면 로그인하세요.