설명
ActionTrail 로그를 저장하는 OSS 버킷에 공개 읽기가 허용되면 운영 활동, 계정 행위와 보안 이벤트가 외부에 노출될 수 있습니다. 감사 로그는 사고 조사와 보안 추적의 핵심 자료이므로 필요한 운영자와 서비스만 접근할 수 있어야 합니다.
public-read와 public-read-write ACL을 피하고, 버킷 정책·객체 ACL·공개 접근 차단을 함께 확인하세요. 인터넷에서 연결 가능한 OSS 엔드포인트 자체가 익명 접근을 뜻하지는 않습니다.
잠재적 영향
- 로그에 포함된 리소스 정보와 활동 내역이 노출되어 환경을 파악하는 단서가 될 수 있습니다.
- 실제 쓰기 권한까지 공개되면 로그 객체의 변경이나 삭제로 조사 자료의 신뢰성이 훼손될 수 있습니다.
해결 방법
- 로그 버킷의 ACL을
private로 설정하고 정책과 객체 ACL의 불필요한 공개 권한을 제거하세요. - ActionTrail의 로그 쓰기에 필요한 역할 권한은 유지하고, 조회 권한은 필요한 운영자에게만 부여하세요.
- 변경 후 새 로그가 계속 전달되는지와 허가받지 않은 요청이 거부되는지 확인하세요.
예시
버킷 이름은 사용 가능한 고유 이름으로, actiontrail_oss_write_role_arn은 로그 전달 권한이 있는 실제 RAM 역할 ARN으로 지정하세요. 기존 버킷의 ACL을 바꿀 때는 이름과 Terraform 리소스 주소를 유지하세요.
변경 전
hcl
resource "alicloud_oss_bucket" "actiontrail_bucket" {
bucket = "bucket-actiontrail-3"
acl = "public-read"
}
resource "alicloud_actiontrail_trail" "actiontrail" {
trail_name = "action-trail"
oss_write_role_arn = var.actiontrail_oss_write_role_arn
oss_bucket_name = "bucket-actiontrail-3"
event_rw = "All"
trail_region = "All"
}
공개 읽기 ACL을 요청합니다. 실제 공개 범위는 객체 ACL과 다른 접근 통제도 함께 확인해야 합니다.
변경 후
hcl
resource "alicloud_oss_bucket" "actiontrail_bucket" {
bucket = "bucket-actiontrail-1"
acl = "private"
}
resource "alicloud_actiontrail_trail" "actiontrail" {
trail_name = "action-trail"
oss_write_role_arn = var.actiontrail_oss_write_role_arn
oss_bucket_name = "bucket-actiontrail-1"
event_rw = "All"
trail_region = "All"
}
비공개 ACL을 사용합니다. 버킷 정책의 별도 허용과 로그 전달에 필요한 권한도 확인하세요.