본문으로 건너뛰기
프로젝트 목록

PF-03 · Tencent · IaC

Tencent Cloud 감사 대비 Terraform

CloudAudit 추적을 서비스별로 코드에 정의해 위험한 변경을 COS 버킷에 남기는 Tencent Cloud 모듈 모음입니다.

역할
설계 · 구현
기간
개인 프로젝트 · 2026.11 공개
CSP
Tencent
규모
모듈 18종 · 예제 3개
핵심 기술
Terraform · Tencent Cloud · CloudAudit · COS · CAM · CLB
GitHub
18
공개한 Terraform 모듈
4
서비스별 감사 트랙
19
코드로 추적하는 감사 이벤트

한눈에 보기

CloudAudit 추적 → COS 버킷COS 버킷CAMCVMCBSVPCcam/cvm/disk/vpc/AddUserCreateApiKeyAttachUserPolicyRunInstancesTerminateInstancesResizeDiskCreateSecurityGroupPoliciesaudit 트랙 4개 · 서비스별 COS prefix빨간 테두리: 위험 이벤트
누가 무엇을 바꿨는지 COS에 서비스별로 쌓입니다. 한 번에 한 종류씩 읽을 수 있습니다.

문제

Tencent Cloud에서 누가 무엇을 바꿨는지 서비스별로 남겨야 했습니다. 또 provider 릴리스 주기가 불규칙해 버전이 바뀌면 코드 변경 없이도 plan이 달라질 수 있었습니다.

접근

CloudAudit 추적을 CAM, CVM, CBS, VPC 서비스별로 코드에 정의하고 COS 버킷의 서비스별 prefix에 저장합니다. provider는 모든 모듈에서 = 1.81.163으로 고정합니다.

결과

권한, 서버, 디스크, 보안그룹 변경 이벤트가 코드로 정의한 추적에 따라 COS에 남습니다. CreateApiKey와 AttachUserPolicy 같은 위험 이벤트도 포함합니다.

자세히 보기

클라이언트CLBL7 HTTPS 443규칙 기반 전달L4 TCP_SSL 9443게임 트래픽CVM 백엔드HTTP → HTTPS 리다이렉트:8080:9000provider = 1.81.163 (정확한 버전 고정)
이 구성은 provider를 = 1.81.163으로 고정한 모듈로 만듭니다. Tencent provider는 릴리스 주기가 불규칙합니다.

서비스별 감사 트랙

이 코드가 하는 일: 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 버전 고정

이 코드가 하는 일: provider를 정확한 버전으로 고정합니다.

terraform {
  required_version = ">= 1.9, < 2.0"

  required_providers {
    tencentcloud = {
      source  = "tencentcloudstack/tencentcloud"
      version = "= 1.81.163"
    }
  }
}

배운 점

여러 이벤트를 한 트랙에 섞지 않고 서비스별 트랙으로 나누면 감사 로그를 한 종류씩 읽고 보관 기간도 따로 정할 수 있습니다.

다음에 개선할 점

스캐너의 Tencent Cloud 규칙이 적어 통과해도 AWS보다 검증 범위가 좁습니다. CI에서는 예제를 검증만 하고 apply하지 않습니다.

Open to work · 클라우드 인프라/보안