본문으로 건너뛰기
hannctl.
PDF ↓
← 모든 작업
05 / PF-05 · Multi-cloud · Python 운영 자동화 · 멀티클라우드 운영 · 클라우드 보안

멀티 클라우드 자산·감사 자동화.

AWS, GCP, Tencent Cloud의 자산·권한·감사 로그를 공통 스키마로 모으고, 위험 이벤트가 생기면 바로 알리는 Python 도구입니다.

PERIOD
개인 프로젝트 · 2026.11 공개
MY ROLE
설계 · 구현
TOOLS & CONTEXT
Python · boto3 · Google Cloud SDK · Tencent Cloud SDK · Google Sheets · Slack · Telegram — 클라우드 3개 · 수집기 7종 · 감사 액션 49종
AWSGCPTencent교차 계정 역할iamfirewallinstanceloadbalancervpcaudit_logunused공통 스키마Google SheetsSlackTelegram위험 이벤트 즉시 알림연도/월 보관
감사 시트는 월 1회 CSV로 떠서 연도/월 폴더에 보관합니다.
01 / CONTEXT

문제

세 클라우드는 같은 개념을 서로 다른 형태로 돌려줍니다. 권한이나 방화벽을 비교하려면 사람이 세 형식을 맞춰 읽어야 했습니다.

02 / DECISIONS

접근

계정별로 STS AssumeRole 등 교차 계정 역할로 접근하고, 자원 종류별 수집기 7개로 모은 결과를 자원별 데이터 클래스 하나로 정규화합니다. Google Sheets와 CSV로 내보내고, 위험 이벤트 16종은 critical_events.yaml 기준으로 Slack과 Telegram에 바로 보냅니다.

03 / ENGINEERING

구현

  • Python
  • boto3
  • Google Cloud SDK
  • Tencent Cloud SDK
  • Google Sheets
  • Slack
  • Telegram

규모 · 클라우드 3개 · 수집기 7종 · 감사 액션 49종

FLOW / 07
AWSGCPTencent

공개 코드는 AWS, GCP, Tencent Cloud의 자산·권한·감사 로그를 읽습니다.

01 / 07
전체 단계 읽기
  1. 공개 코드는 AWS, GCP, Tencent Cloud의 자산·권한·감사 로그를 읽습니다.
  2. 계정별로 교차 계정 역할(STS AssumeRole 등)로 접근합니다. 키 파일을 두지 않습니다.
  3. 자원 종류별 수집기 7개가 같은 구조로 데이터를 모읍니다.
  4. 서로 다른 응답을 자원별 공통 데이터 클래스로 정규화합니다.
  5. Google Sheets에 올리면서 헤더, 필터, 열 너비를 자동으로 맞춥니다.
  6. 위험 이벤트로 정한 항목은 Slack과 Telegram으로 바로 알립니다.
  7. 감사 시트는 월 1회 CSV로 떠서 연도/월 폴더에 보관합니다.
위험 이벤트 규칙AWSGCPTencentAttachUserPolicyCreateAccessKeyStopInstancesTerminateInstancesModifyInstanceAttributeSetIamPolicyCreateServiceAccountKeyinstances.stopinstances.deleteinstances.setMachineTypeAttachUserPolicyAttachUserPoliciesCreateApiKeyStopInstancesTerminateInstancesResetInstancesTypecritical_events.yaml 에서 규칙을 바꿉니다SlackTelegram
목록에 있는 이벤트만 Slack과 Telegram으로 즉시 보냅니다.
04 / VERIFICATION

결과

바탕이 된 실무 도구는 Azure를 포함한 4개 클라우드를 매일 새벽에 점검해 월말 며칠의 수동 점검을 없앴고, Terraform 기본값과 CI 관문과 함께 보안 지적 조치율을 60%에서 85% 이상으로 올리는 데 기여했습니다.

3
공개 코드가 다루는 클라우드
7
자원 종류별 수집기
49
추적하는 감사 액션 (16종은 즉시 알림)
05 / REFLECTION

배운 점

여러 클라우드를 함께 운영할 때 가장 큰 비용은 데이터를 모으는 일이 아니라 서로 다른 형식을 사람이 맞춰 읽는 일이었습니다. 수집 방식은 클라우드마다 달라도 결과를 자원별 데이터 클래스 하나로 정규화하면, 권한이나 방화벽을 같은 열에서 비교할 수 있고 새 클라우드를 붙일 때도 수집기만 추가하면 됩니다. 위험 이벤트 목록을 코드가 아니라 데이터(critical_events.yaml)로 둔 것도 중요했습니다. 보안 담당자가 Python을 읽지 않고도 규칙을 검토하고 고칠 수 있고, 규칙 변경과 코드 변경이 섞이지 않습니다. 다만 일부 경로는 실제 계정이 아닌 mock으로만 검증했기 때문에, 자동화를 믿을 수 있는 범위는 어디까지 실제로 확인했느냐로 정해진다는 점도 함께 배웠습니다.

OUTCOME

3개 클라우드 — 수집기 7종, 공통 스키마 1개

공개 레포: pf-05-multicloud-asset-audit-automation ↗

관련 현장 노트

NEXT / PF-06 · AI · FastAPI AetherCrew: AI 직원 11명의 가상 회사

사이트 검색

바로 가기 ↑ ↓ 결과 이동 · Enter 열기 · Esc 닫기

테마 고르기

사원증을 누르면 그 테마로, 보던 내용과 같은 곳으로 이동합니다. 끌면 흔들리기만 합니다.

처음 화면으로 →