GCP 서비스 계정의 과도한 IAM 권한 점검

서비스 계정의 실제 작업과 리소스 범위에 맞게 IAM 역할을 제한하세요.

설명

서비스 계정에 roles/editor, roles/owner 또는 업무에 필요하지 않은 관리자 권한을 부여하면 자동화 오류나 계정 침해의 영향이 커집니다. 애플리케이션, 배치 작업과 CI/CD에는 실제로 필요한 권한만 부여해야 합니다.

쓰기 권한이나 관리자 역할이 필요한 작업도 있으므로 역할 이름만으로 불필요하다고 단정하지 말고 포함된 권한과 적용 범위를 확인하세요.

잠재적 영향

  • 서비스 계정 침해 시 대량 리소스 변경이나 데이터 접근으로 이어질 수 있습니다.
  • 자동화 작업 오류가 필요 이상의 권한으로 실행돼 피해가 커질 수 있습니다.

해결 방법

  • 업무에 필요한 권한과 리소스를 확인하고 광범위한 owner·editor 대신 적절한 사전 정의 또는 커스텀 역할을 사용하세요.
  • 역할 바인딩과 서비스 계정을 사용할 수 있는 주체를 정기적으로 검토하고, 권한 변경 후 필요한 작업은 성공하며 불필요한 작업은 거부되는지 확인하세요.

예시

실제 서비스 계정 이메일을 var.service_account_email로 제공하세요. google_iam_policy는 정책 문서를 생성할 뿐 권한을 적용하지 않으며 대상 리소스에 별도 적용해야 합니다. 변경 후 역할은 객체 읽기만 필요한 작업의 예입니다.

변경 전

hcl
data "google_iam_policy" "policy" {
  binding {
    role = "roles/editor"

    members = [
      "serviceAccount:${var.service_account_email}",
    ]
  }
}

변경 후

hcl
data "google_iam_policy" "policy" {
  binding {
    role = "roles/storage.objectViewer"

    members = [
      "serviceAccount:${var.service_account_email}",
    ]
  }
}

설명:

  • 변경 전: 광범위한 Editor 역할의 정책 문서를 만듭니다. 실제 적용 범위와 작업 필요성을 확인하세요.
  • 변경 후: Storage Object Viewer 역할로 바꿉니다. 필요한 버킷 범위에 적용하고 다른 권한 부여도 함께 검토해야 합니다.

참조