설명
cloud-platform은 넓은 OAuth 접근 스코프이지만 그 자체로 모든 Google Cloud 권한을 부여하지 않습니다. 실제 API 접근에는 서비스 계정의 IAM 권한이 필요합니다. Google은 일반적으로 cloud-platform 스코프와 최소 IAM 역할을 함께 사용하는 방식을 권장합니다.
IAM 권한이 과도하면 VM 침해의 영향이 커집니다. 스코프 축소만으로 모든 접근 방식이나 권한을 통제할 수는 없습니다.
잠재적 영향
- 과도한 IAM 역할이 있는 VM은 침해 시 여러 리소스에 피해를 줄 수 있습니다.
- 필요한 스코프를 잘못 제거하면 정상 API 호출이 실패할 수 있습니다.
해결 방법
- 연결된 서비스 계정을 확인하고 업무에 필요한 리소스와 작업만 IAM 역할로 허용하세요. cloud-platform만 있다는 이유로 무조건 제거하지 마세요.
- 별도 요구로 좁은 스코프를 사용한다면 필요한 API와 인증 방식의 호환성을 확인하세요. 변경 후 필요한 호출은 성공하고 불필요한 호출은 거부되는지 시험하세요.
예시
두 예제는 OAuth 스코프만 비교하며 IAM 역할을 정의하지 않습니다. 구형 이미지와 네트워크는 실제 환경으로 바꾸고 서비스 계정의 실효 권한을 확인하세요. 변경 후 구성은 제한 스코프가 필요한 환경의 선택지이지 보편적인 보안 수정은 아닙니다.
변경 전
hcl
resource "google_compute_instance" "vm" {
name = "test"
machine_type = "e2-medium"
zone = "us-central1-a"
boot_disk {
initialize_params {
image = "debian-cloud/debian-9"
}
}
network_interface {
network = "default"
access_config {}
}
service_account {
scopes = ["userinfo-email", "compute-ro", "storage-ro", "cloud-platform"]
}
}
변경 후
hcl
resource "google_compute_instance" "vm" {
name = "test"
machine_type = "e2-medium"
zone = "us-central1-a"
boot_disk {
initialize_params {
image = "debian-cloud/debian-9"
}
}
network_interface {
network = "default"
access_config {}
}
service_account {
scopes = ["userinfo-email", "compute-ro", "storage-ro"]
}
}
설명:
- 변경 전: cloud-platform이 포함되어 있지만 실제 권한은 IAM 역할에 제한됩니다.
- 변경 후: 스코프를 좁힙니다. 필요한 API 호출이 중단되지 않는지 확인해야 하며 IAM 최소 권한을 대신하지 않습니다.