privileged 컨테이너가 설정된 AWS Batch Job Definition

AWS Batch 작업에 불필요한 privileged 권한을 부여하지 마세요.

설명

Batch Job Definition의 container_properties.privileged를 true로 설정하면 컨테이너가 호스트에 더 강한 권한으로 접근할 수 있어 일반적인 컨테이너 격리 수준이 약화됩니다. 작업 코드나 이미지가 침해되면 피해 범위가 호스트와 다른 작업으로 확대될 수 있습니다.

privileged 모드는 단순히 컨테이너 안에서 root 사용자로 실행하는 것과 다릅니다. AWS Fargate에서 실행하는 작업에는 이 모드를 사용할 수 없습니다.

잠재적 영향

  • 호스트 자원에 대한 과도한 접근으로 작업 간 격리가 약화될 수 있습니다.
  • 악성 코드나 이미지의 권한 오용이 더 큰 피해로 이어질 수 있습니다.

해결 방법

container_properties.privileged를 false로 설정하거나 생략하세요. 작업에 필요한 권한만 부여하고 호스트 마운트와 특수 기능 사용을 함께 검토하세요. 새 작업 정의 리비전으로 정상 작업이 실행되는지 시험한 뒤 작업 제출 설정을 갱신하세요.

예시

동일한 EC2 기반 작업 정의에서 privileged 설정을 변경하는 예시입니다.

변경 전

hcl
resource "aws_batch_job_definition" "batch_job" {
  name = "tf_test_batch_job_definition"
  type = "container"

  container_properties = <<CONTAINER_PROPERTIES
{
    "command": ["ls", "-la"],
    "image": "busybox",
    "memory": 1024,
    "vcpus": 1,
    "privileged": true
}
CONTAINER_PROPERTIES
}

privileged 모드를 사용하도록 설정합니다.

변경 후

hcl
resource "aws_batch_job_definition" "batch_job" {
  name = "tf_test_batch_job_definition"
  type = "container"

  container_properties = <<CONTAINER_PROPERTIES
{
    "command": ["ls", "-la"],
    "image": "busybox",
    "memory": 1024,
    "vcpus": 1,
    "privileged": false
}
CONTAINER_PROPERTIES
}

privileged 모드를 끕니다. 이 변경만으로 모든 호스트 접근 경로가 제거되는 것은 아니므로 다른 실행 설정도 확인하세요.

참조