서비스 계정 키 사용을 중단하여 클라우드 보안을 강화하세요
Luis Urena
Developer Relations Engineer
*본 아티클의 원문은 2024년 2월 24일 Google Cloud 블로그(영문)에 게재되었습니다.
클라우드 사용자 인증 정보를 안전하게 보호하는 일은 '모비 딕'이 연상되는 엄청난 규모의 과제로 떠올랐습니다. 문제는 심대한 반면 간단한 솔루션은 여전히 찾기 어렵습니다. 사용자 인증 정보 보안 문제 또한 만연해 있습니다. Google Cloud의 2023년 3분기 Threat Horizons 보고서에 따르면 클라우드 보안 침해의 69% 이상이 취약한 비밀번호, 비밀번호 부재, 노출된 API 등 사용자 인증 정보 문제로 인해 발생한 것으로 나타났습니다. 하지만 소설 '모비 딕'과 달리 이 과제는 해피엔딩을 맞을 수 있습니다. 조직은 우선 서비스 계정을 보호하여 사용자 인증 정보 관련 보안 침해로 인해 직면하는 위험을 줄일 수 있습니다.
서비스 계정은 클라우드 관리에 있어 필수적인 도구로 애플리케이션을 대신하여 API를 호출하고 이와 같은 호출을 수행하는 데 IAM 역할을 활용합니다. 한편, 공격자에게는 클라우드 환경에 대한 초기 액세스를 설정하는 데 매력적인 표적이 되기도 합니다.
"조직 전반에서 발생한 알림의 약 65%가 서비스 계정의 부실한 사용과 관련이 있었습니다. 이러한 계정에는 연결된 권한이 있는데 보안 침해가 발생할 경우 공격자가 이 권한을 통해 지속성을 확보하고 이후 클라우드 환경에서 권한 에스컬레이션에 이 액세스를 사용할 수 있습니다."라고 기술한 부분을 보고서에서 확인하실 수 있습니다.
이 평가는 공격자가 서비스 계정 키를 어떻게 남용할 수 있는지, 조직이 이를 막기 위해 어떤 조치를 취할 수 있는지를 자세히 설명한 Google Cloud의 2023년 1분기 Threat Horizons 보고서의 결론과도 일맥상통합니다. 이 보고서에 따르면 서비스 계정의 68%가 과도한 권한이 있는 역할을 보유하고 있고, 서비스 계정 키가 공개 저장소에 하드코딩되어 있는 경우가 많았으며, 키 유출 이슈와 관련해 Google이 연락을 시도한 후에도 프로젝트 소유자가 시정 조치를 취하지 않은 경우가 42%에 달했습니다.
다음은 서비스 계정 키의 대규모 생성을 방지하고, 키 사용을 모니터링하며, 알림에 신속하게 대응하는 데 도움이 되는 몇 가지 완화 팁입니다. 2023년 1분기 보고서에 강조된 모든 기법을 평가해 보시기 바랍니다.
서비스 계정 키 생성 방지
이 섹션에서는 클라우드 엔지니어가 리소스를 만들고 이 리소스로 작업하기 전에 광범위하지만 확고한 제한을 설정하는 가드레일인 조직 정책을 관리하는 데 필요한 권한이 사용자에게 있다고 가정해 보겠습니다. 자세한 내용은 조직 정책 만들기 및 관리를 참조하세요.
서비스 계정 키 관리와 관련된 권장사항 중 하나는 조직 정책 제약조건을 사용하여 새로운 서비스 계정 키 생성을 방지하고 더 안전한 대안을 사용할 수 없음이 입증된 프로젝트에 대해서만 예외를 허용하는 것입니다.
이 조직 정책 제약조건을 적용하는 가장 쉬운 방법은 Google Cloud 콘솔을 사용하는 것입니다.
계속하기 전에 올바른 Google 계정에 로그인했는지 확인하세요. 이 제약조건을 조직 전체에 적용하려면 Resource Manager 탐색기에서 조직을 선택해야 합니다.


그런 다음 '정책 관리'를 클릭합니다.


그리고 정책을 시행합니다.


이후에 사용자가 서비스 계정 키를 생성하려고 시도할 때마다 다음과 같은 오류가 표시됩니다.


조직 정책이 변경되거나 서비스 계정 키가 생성된 경우 찾기
이제 서비스 계정 키 생성을 사용 중지했으므로 다음 단계는 누구도 이 정책을 변경하거나 새 서비스 계정 키를 은밀하게 생성하지 못하도록 하는 것입니다.
정책이 변경된 경우 Google Cloud 운영 제품군을 사용하여 그 증거를 찾을 수 있습니다. 다음 두 예시는 모든 로그가 중앙 집중식 Google Cloud 프로젝트에 저장되어 있고 로그를 쿼리하고 알림을 설정하는 데 필요한 권한이 사용자에게 있다는 가정을 전제로 합니다. 자세한 내용은 다음을 참조하세요.
로그 탐색기로 이동한 후, 작업 툴바에서 범위 미세 조정 버튼을 사용하여 조직의 중앙 집중식 로그 위치를 나타내는 범위를 선택하세요.
다음 쿼리를 사용하여 'iam.disableServiceAccountKeyCreation' 조직 제약조건이 변경된 경우를 찾습니다.


'iam.disableServiceAccountKeyCreation'에 영향을 미치는 조직 정책 변경에 로그합니다.
이 쿼리를 토대로 알림을 만들려면 '신속한 대응을 위한 알림 생성' 섹션으로 이동하여 계속 진행합니다.
서비스 계정 키의 생성 여부 찾기
로그 탐색기로 이동한 후, 작업 툴바에서 범위 미세 조정 버튼을 사용하여 조직의 중앙 집중식 로그 위치를 나타내는 범위를 선택하세요.
다음 쿼리를 사용하여 새 서비스 계정 키가 생성된 경우를 찾습니다.


Log entry demonstrating a new service account key was created
이 로그 항목은 다음을 의미합니다.
- 특정 시점에 서비스 계정 키 생성을 방지하는 조직 정책 제약 조건이 비활성화되었습니다.
- 누군가 새로운 서비스 계정 키를 생성했습니다.
신속한 대응을 위한 알림 생성
이전 섹션에서는 새 서비스 계정 키 또는 조직 정책 변경 인스턴스를 찾는 방법을 설명했습니다. 신속하고 효과적인 대응을 촉진하려면 이러한 이벤트에 빠르게 대응할 수 있도록 알림을 만드세요.
이 섹션에서는 다음 내용을 이해하고 있다고 가정합니다.
"알림 생성"을 클릭합니다.


알림 이름을 지정하고 알림에 포함할 로그가 로그 탐색기의 쿼리와 일치하는지 확인합니다. "로그 미리 보기"를 클릭하여 원하는 항목이 맞는지 확인합니다. 알림 빈도 및 자동 닫기 기간을 설정합니다.
알림 채널을 선택합니다. 알림 채널을 새로 만들어야 하는 경우 다음 안내를 따르세요.
아래는 제가 서비스 계정 키를 생성한 후 발생한 이벤트로 인해 트리거된 알림이 이메일로 전송된 예시입니다.


"사고 보기"를 클릭하면 알림 페이지로 이동합니다.


해당 사고를 클릭하면 다음과 같은 목록이 표시되는 보기로 이동합니다.
- 조건
- 로그 쿼리
- 쿼리와 일치하는 로그 집합
- 사고가 발생한 날짜 및 시간


사고 세부 정보
다음 단계: 사고 관리 협업 프로세스 구축
서비스 계정 키 사용의 위험성을 검토하고, 대규모로 서비스 계정 키 생성을 제한하는 조직 정책을 시행하며, 지속적인 모니터링을 통해 정책 위반을 감지하는 방법을 통해 환경에서 가장 큰 잠재적 위험 중 하나를 더 잘 관리할 수 있음을 보여드렸습니다.
모든 분들께 "사고 관리 협업 프로세스 구축"을 읽어보실 것을 강력히 권장합니다. 이 문서는 이러한 유형의 사고 및 기타 유형의 사고에 대한 조직의 대응을 운영하는 데 도움이 될 수 있습니다. 게다가 누가 거대한 백상아리를 쫓는 어려움 원하겠습니까? 서비스 계정 키를 없애는 것이 클라우드 보안을 강화하는 훨씬 더 간단한 방법입니다.