Tencent Cloud 감사 대비 Terraform 설계 및 구현
CloudAudit 추적을 서비스별로 코드에 정의해 위험한 변경을 COS 버킷에 남기는 Tencent Cloud 모듈 모음입니다.
서비스별 감사 트랙
이 코드가 하는 일: 감사 추적을 목록으로 정의하고, 항목마다 대상 서비스(resource_type), 기록할 이벤트 이름, 저장 위치를 지정합니다. CAM 트랙은 사용자 추가·삭제, API 키 생성·삭제, 정책 연결·해제 같은 권한 이벤트를, CVM 트랙은 서버 생성·종료·중지·시작, 사양 변경, 디스크 연결·해제 이벤트를 기록합니다. 두 트랙 모두 COS에 저장하지만 prefix를 cam, cvm으로 나눠, 나중에 서비스별로 로그를 따로 읽고 관리할 수 있습니다.
audit_tracks = [
{
name = "iam_trackingset"
resource_type = "CAM"
event_names = ["AddUser", "DeleteUser", "CreateApiKey", "DeleteApiKey", "AttachUserPolicy", "DetachUserPolicy"]
action_type = "*"
storage = {
storage_prefix = "cam"
storage_type = "cos"
}
},
{
name = "vm_trackingset"
resource_type = "CVM"
event_names = ["RunInstances", "TerminateInstances", "StopInstances", "StartInstances", "ResetInstancesType", "AttachDisks", "DetachDisks"]
action_type = "*"
storage = {
storage_prefix = "cvm"
storage_type = "cos"
}
},
provider 버전 고정
이 코드가 하는 일: Terraform 본체는 1.9 이상 2.0 미만으로 범위를 두고, tencentcloud provider는 = 1.81.163 한 버전으로 정확히 고정합니다. 범위가 아닌 정확한 버전으로 묶었기 때문에 provider의 새 릴리스가 나와도 자동으로 올라가지 않고, 코드가 같으면 plan 결과도 같게 유지됩니다.
terraform {
required_version = ">= 1.9, < 2.0"
required_providers {
tencentcloud = {
source = "tencentcloudstack/tencentcloud"
version = "= 1.81.163"
}
}
}