Claude-skill-registry gcp-firewall

GCP 방화벽 규칙 관리

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/gcp-firewall" ~/.claude/skills/majiayu000-claude-skill-registry-gcp-firewall && rm -rf "$T"
manifest: skills/data/gcp-firewall/SKILL.md
source content

GCP Firewall Rules

VPC 방화벽 규칙을 조회, 생성, 관리합니다.

사용법

/gcp-firewall                      # 규칙 목록 조회
/gcp-firewall allow 8080           # TCP 8080 허용 규칙 생성
/gcp-firewall allow 80,443         # 여러 포트 허용
/gcp-firewall delete my-rule       # 규칙 삭제

Workflow

1. 방화벽 규칙 목록

PROJECT_ID=$(gcloud config get-value project)
gcloud compute firewall-rules list --project=$PROJECT_ID \
  --format="table(name,network.basename(),direction,priority,allowed[].map().firewall_rule().list():label=ALLOW,sourceRanges.list():label=SRC_RANGES,targetTags.list():label=TARGET_TAGS)"

2. 규칙 상세 조회

gcloud compute firewall-rules describe RULE_NAME

3. 규칙 생성

기본 HTTP/HTTPS 허용

gcloud compute firewall-rules create allow-http \
  --direction=INGRESS \
  --priority=1000 \
  --network=default \
  --action=ALLOW \
  --rules=tcp:80 \
  --source-ranges=0.0.0.0/0 \
  --target-tags=http-server

특정 포트 허용

gcloud compute firewall-rules create allow-custom-port \
  --direction=INGRESS \
  --priority=1000 \
  --network=default \
  --action=ALLOW \
  --rules=tcp:8080 \
  --source-ranges=0.0.0.0/0 \
  --target-tags=custom-server

특정 IP만 SSH 허용

gcloud compute firewall-rules create allow-ssh-office \
  --direction=INGRESS \
  --priority=900 \
  --network=default \
  --action=ALLOW \
  --rules=tcp:22 \
  --source-ranges=1.2.3.4/32 \
  --target-tags=ssh-allowed

4. VM에 태그 추가

gcloud compute instances add-tags VM_NAME \
  --zone=ZONE \
  --tags=http-server,custom-server

5. 규칙 삭제

gcloud compute firewall-rules delete RULE_NAME

자주 쓰는 규칙 템플릿

용도포트명령어
HTTP80
--rules=tcp:80 --target-tags=http-server
HTTPS443
--rules=tcp:443 --target-tags=https-server
SSH22
--rules=tcp:22 --target-tags=ssh-allowed
MySQL3306
--rules=tcp:3306 --target-tags=db-server
PostgreSQL5432
--rules=tcp:5432 --target-tags=db-server
Redis6379
--rules=tcp:6379 --target-tags=cache-server
Node.js3000
--rules=tcp:3000 --target-tags=node-server
Flask/Django5000,8000
--rules=tcp:5000,tcp:8000

출력 형식

## 방화벽 규칙 목록

| 규칙 이름 | 방향 | 허용 | 소스 | 대상 태그 |
|-----------|------|------|------|-----------|
| default-allow-ssh | INGRESS | tcp:22 | 0.0.0.0/0 | - |
| default-allow-http | INGRESS | tcp:80 | 0.0.0.0/0 | http-server |
| allow-custom | INGRESS | tcp:8080 | 0.0.0.0/0 | custom-server |

---
총 3개 규칙

보안 모범 사례

  1. 최소 권한 원칙: 필요한 포트만 열기
  2. 소스 IP 제한: 가능하면
    0.0.0.0/0
    대신 특정 IP
  3. 태그 사용: 규칙을 특정 VM에만 적용
  4. 우선순위: 거부 규칙은 낮은 숫자 (높은 우선순위)
  5. 정기 감사: 미사용 규칙 정리

주의사항

  • 0.0.0.0/0
    은 전체 인터넷에 노출
  • SSH(22)는 가능하면 IAP 터널 사용 권장
  • 규칙 삭제 시 연결 끊김 주의
  • 같은 우선순위면 거부가 우선