2026-08-27(목) 세션 — ipwatch: 사무실 공인IP 감시 · 운영 RDS 보안그룹 자동 반영 — 기록: [코디]
논의·대안
[페페] "사무실PC에 감시워커 설치해서 인터넷 연결이 바뀌면 공인IP에 맞춰 적용되게. 결과는 텔레그램 보고."
앞선 사고가 발단이다 — PFS 운영 RDS poin-dbinstance 가 PubliclyAccessible: true 라
3306 인바운드를 IP 화이트리스트로 막는데, 회선이 바뀌면 사무실PC의 엑셀 ODBC DSN pfs 가
21.7초 타임아웃(10060)으로 죽어 "엑셀 파일이 안 열린다"로 보인다. 그날은 사람이 손으로 SG를 고쳤다.
착수 전 그릴링 3배치(9문항)로 방향을 갈랐다. 대안과 기각 사유:
- 워커 위치 — 미니PC가 tailnet 으로 사무실 공인IP를 폴링해 집행하는 안(사무실 업무기에 설치물 0)이 있었으나, 미니PC 전원에 매달리고 자기 공인IP는 자기가 제일 정확히 안다는 이유로 사무실PC 단독 채택.
- 승인 게이트 — 텔레그램 승인 후 적용하면 정책은 깨끗하지만 페페가 답할 때까지 사무실 엑셀이 계속 먹통이라 기각. ISP 대역 판정으로 유선만 자동 처리하는 절충안은 ASN 조회가 붙어 복잡도만 늘어 기각.
- 알림 경로 — 사무실PC 에 봇 토큰을 심는 안 대신 tailnet SSH → 미니PC broker 채택(토큰 노출 0). 대가인 "미니PC 꺼지면 알림 유실"은 로컬 큐 재발송으로 덮었다.
- AWS 권한 — 사무실PC 엔
poinadmin(풀권한) 키가 이미 상주하지만, 자동으로 방화벽을 여는 워커에 풀권한을 물리면 버그 하나가 계정 전체를 만진다 → 전용 IAM 최소권한 채택.
계획 확정 전 코덱스 상의에서 11건을 받아 전부 반영했다. 가장 큰 것 = 새 IP 규칙을 넣은 뒤 3306 실연결 검증에 성공한 다음에만 옛 규칙을 지운다(SG 전파를 즉시 성공으로 가정하지 말 것). 그 밖에 단일 실행 락, AWS 를 진실의 원장으로 두는 reconcile, Description 이 아닌 규칙 ID 기준 삭제, state 원자적 쓰기와 파싱 실패 fail-closed, 네트워크 실패를 변경 횟수에서 제외.
결정
- 사무실PC(POINIMOS01) 단독 · 예약작업
PFS-IPWatch5분 간격 ·pythonw(창 없음) ·/RU poinpc /IT. - 새 IP 발견 시 승인 없이 즉시 적용 + 사후 텔레그램 통보. 대신 노출 한도 5겹 (자동 규칙 항상 1줄 교체식 · Description 태그 소유 격리 · 전용 IAM 리소스 제한 · 하루 변경 10회 상한 후 자가 halt · 변경 시 매번 통보).
- 기존 수동 규칙 정리 =
112.170.234.238을 워커 소유로 이관(AUTO-ipwatch office),211.209.165.141(페페 폰 무선WAN)은PEPE phone WAN - do not touch로 표기만 하고 불가침. 삭제·재추가 대신modify-security-group-rules로 설명만 바꿔 접속 끊기는 창을 0 으로 만들었다. authorize/revoke-security-group-ingress는 brokerAWS_HARD_DENY라 원래 자동화 금지 대상 →RISK_APPROVAL_POLICY.md에 예외 1건으로 명문화(범위·한도 포함).
산출물·커밋
- 미니PC 원본
C:\dev\tools\ipwatch\—ipwatch.py(본체) ·notify_relay.py(미니PC 전용 base64 릴레이) ·e2e_check.py(무중단 E2E) ·iam_policy.json·setup_iam.sh·README.md. - 사무실PC 설치
C:\pfs-ipwatch\(ACL = poinpc·SYSTEM·Administrators, 상속 제거) + 예약작업PFS-IPWatch. - AWS = IAM 유저
ipwatch-office+ 인라인 정책ipwatch-sg-3306(SGsg-01ce3d8ed6eb999ac리소스 제한). - devplan
ipwatch.html+ 허브 카드 등록(projects.json·project_state.json). - 검증 5건 ALL PASS — selftest · 사무실PC 실행 · 무중단 E2E(더미
203.0.113.7/32추가 후 자가 회수, 사무실 규칙 무손) · 알림 경로(예약작업 실행에서 밀린 1건 발송) · 예약작업LastTaskResult 0.
다음
- 회선이 실제로 바뀌는 날 텔레그램 통보 1회 육안 확인(페페).
- 24시간 무인이 필요해지면
/RU SYSTEM전환 — ssh 키·known_hosts 를 SYSTEM 이 읽을 곳으로 같이 옮겨야 한다.
관계
- 주제 그룹: pfs-infra
- 관련 문서: pfs-rules, pfs-handoff