Tencent Cloud 감사 대비 Terraform.
CloudAudit 추적을 서비스별로 코드에 정의해 위험한 변경을 COS 버킷에 남기는 Tencent Cloud 모듈 모음입니다.
문제
Tencent Cloud에서 누가 무엇을 바꿨는지 서비스별로 남겨야 했습니다. 또 provider 릴리스 주기가 불규칙해 버전이 바뀌면 코드 변경 없이도 plan이 달라질 수 있었습니다.
접근
CloudAudit 추적을 CAM, CVM, CBS, VPC 서비스별로 코드에 정의하고 COS 버킷의 서비스별 prefix에 저장합니다. provider는 모든 모듈에서 = 1.81.163으로 고정합니다.
구현
- Terraform
- Tencent Cloud
- CloudAudit
- COS
- CAM
- CLB
규모 · 모듈 18종 · 예제 3개
CloudAudit 추적을 서비스별로 코드에 정의합니다. 저장 위치는 COS 버킷의 서비스별 prefix입니다.
CAM 추적입니다. CreateApiKey와 AttachUserPolicy 같은 위험 이벤트도 함께 기록합니다.
CVM 추적은 RunInstances, TerminateInstances 같은 서버 변경을 남깁니다.
CBS와 VPC 트랙이 디스크 변경과 보안그룹 정책 변경을 남깁니다.
누가 무엇을 바꿨는지 COS에 서비스별로 쌓입니다. 한 번에 한 종류씩 읽을 수 있습니다.
전체 단계 읽기
- CloudAudit 추적을 서비스별로 코드에 정의합니다. 저장 위치는 COS 버킷의 서비스별 prefix입니다.
- CAM 추적입니다. CreateApiKey와 AttachUserPolicy 같은 위험 이벤트도 함께 기록합니다.
- CVM 추적은 RunInstances, TerminateInstances 같은 서버 변경을 남깁니다.
- CBS와 VPC 트랙이 디스크 변경과 보안그룹 정책 변경을 남깁니다.
- 누가 무엇을 바꿨는지 COS에 서비스별로 쌓입니다. 한 번에 한 종류씩 읽을 수 있습니다.
결과
권한, 서버, 디스크, 보안그룹 변경 이벤트가 코드로 정의한 추적에 따라 COS에 남습니다. CreateApiKey와 AttachUserPolicy 같은 위험 이벤트도 포함합니다.
- 18
- 공개한 Terraform 모듈
- 4
- 서비스별 감사 트랙
- 19
- 코드로 추적하는 감사 이벤트
배운 점
감사 로그는 남기는 것보다 나중에 읽을 수 있게 나누는 것이 더 중요했습니다. 여러 이벤트를 한 트랙에 섞지 않고 CAM, CVM, CBS, VPC 서비스별 트랙과 COS prefix로 나누면, 검토하는 사람이 권한 변경이나 서버 변경처럼 한 종류씩 읽을 수 있고 보관 기간도 종류별로 따로 정할 수 있습니다. 또 provider를 정확한 버전으로 고정하는 일은 단순한 습관이 아니라, 코드가 그대로인데 plan이 바뀌는 일을 막는 감사 대비 장치라는 것을 알게 됐습니다. 검사 도구를 통과했다는 사실도 그 도구가 얼마나 많은 규칙을 갖고 있느냐에 따라 의미가 달라서, Tencent Cloud처럼 규칙이 적은 환경에서는 무엇을 직접 코드로 기록할지 스스로 정해야 한다는 점을 배웠습니다.
감사 트랙 4개 — CAM · CVM · CBS · VPC