Google PCNE: 방화벽 정책, Cloud Armor 및 네트워크 보안 — 학습 가이드
다음의 일부입니다: Google Professional Cloud Network Engineer — 학습 가이드. 검증된 답안으로 연습하기: Google 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.
개요
Google Cloud의 방화벽 정책, Cloud Armor, 네트워크 보안은 함께 계층적 제어를 제공하여 세분화, 공격 표면 감소, DDoS 복원력, 관측 가능성을 확보합니다. 효과적인 설계는 ID 인식 타겟팅, 계층적 적용, 최소 권한 인그레스 및 이그레스, Google의 글로벌 부하 분산기에 연결된 엣지 보호를 결합합니다. 운영 성공 여부는 규칙 평가, 암시적 동작, 로깅 범위, 그리고 다양한 부하 분산 모드에서 트래픽이 실제로 어디서 시작되는지를 이해하는 데 달려 있습니다.
VPC 방화벽 규칙 및 ID 인식 타겟팅
VPC 방화벽 규칙은 상태 저장(stateful)이며 네트워크, 방향, 우선순위별로 평가됩니다.
- 방향 및 암시적 규칙:
- 인그레스는 VM NIC로 들어오는 트래픽에 대해 평가되고, 이그레스는 나가는 트래픽에 대해 평가됩니다.
- 모든 VPC에는 두 가지 암시적 규칙이 존재합니다: 암시적 모든 인그레스 거부 규칙과 암시적 모든 이그레스 허용 규칙입니다. 이 규칙들은 수정할 수 없으며 로그를 생성하지 않습니다. 기본 네트워크는 여러 허용 규칙을 추가로 생성하지만, 커스텀 VPC는 그렇지 않습니다.
- 우선순위 및 평가:
- 우선순위 범위는 0–65535이며, 숫자가 낮을수록 먼저 평가됩니다. 일치하는 첫 번째 규칙이 작업을 완전히 결정합니다.
- 동일한 우선순위를 가진 여러 규칙이 일치하는 경우, 가장 구체적인 IP 범위가 우선 적용됩니다. 구체성이 같고 작업이 충돌하는 경우, 거부가 우선 적용됩니다. 동일 우선순위 규칙이 겹치지 않도록 하십시오.
- 대상 및 소스:
- 대상은 규칙이 적용될 VM을 정의합니다: 네트워크 태그, VM 서비스 계정 또는 보안 태그. 소스/대상은 IP CIDR입니다. 인그레스의 경우, 동일 VPC 내 소스에 대해 소스 서비스 계정이나 태그를 지정할 수도 있습니다.
- 네트워크 태그는 프로젝트 사용자가 설정할 수 있는 VM 메타데이터로, 간단하지만 제어가 덜 엄격합니다. 서비스 계정은 워크로드 ID 및 IAM과 연결된 ID 인식 타겟팅을 제공하여 오용하기 어렵습니다. 보안 태그(IAM을 통해 바인딩된 조직 수준 리소스 관리자 태그)를 사용하면, 개발자가 보호 우회 태그를 자체 할당하는 것을 허용하지 않고도 보안팀이 규칙의 대상 VM을 제어할 수 있습니다. 더 강력한 거버넌스를 위해 사용하십시오.
- 로깅:
- 규칙별로 방화벽 규칙 로깅을 활성화하여 해당 규칙과 일치하는 허용 또는 거부된 연결을 캡처할 수 있습니다. 암시적 거부는 로깅되지 않으므로, 거부 로그가 필요하다면 로깅이 활성화된 명시적인 높은 우선순위의 거부 규칙을 추가해야 합니다.
- 로그에는 규칙 참조, 작업, 5-튜플, 바이트 수가 포함되며 포렌식을 위해 내보낼 수 있습니다.
설계 및 운영:
- 최소 권한 인그레스: 명시적인 높은 우선순위의 거부 규칙을 사용하여 기본적으로 거부하는 방식을 선호하고, 서비스 계정이나 보안 태그를 통해 범위가 지정된 허용 규칙을 추가하십시오. 부하 분산기 뒤의 인스턴스 그룹의 경우, 실제로 트래픽을 발생시키는 부하 분산기 또는 상태 확인 범위에서만 허용하십시오.
- 최소 권한 이그레스: 암시적 허용 규칙을 명시적인 높은 우선순위의 모든 이그레스 거부 규칙과 대상이 지정된 허용 규칙(NAT 범위, 파트너 IP 또는 Private Google Access를 통한 Google API용)으로 대체하십시오. 반환 흐름을 방해하지 않도록 주의하십시오. 상태 저장(statefulness) 특성 덕분에 허용된 연결에 대한 응답은 별도의 규칙 없이 허용됩니다.
- ID 인식 타겟팅:
- 서비스 계정을 사용하여 IP 이동성과 무관하게 “누가 통신할 수 있는지"에 대한 정책을 적용하십시오.
- 보안 태그를 사용하여 개발자가 허용적인 네트워크 태그를 자체 적용하는 것을 방지하십시오.
- 일반적인 함정과 실패 모드:
- 부하 분산기 소스 ID: 외부 HTTP(S) load balancers의 경우, 백엔드는 클라이언트 IP가 아닌 Google Front End 프록시로부터의 연결을 확인합니다. 클라이언트 IP 허용/거부에는 Cloud Armor를 사용하고, GFE 이그레스 및 상태 확인 범위를 허용하는 데는 VPC 방화벽을 사용하십시오. TCP/UDP Network Load Balancers의 경우, 백엔드는 클라이언트 IP를 직접 확인하므로 클라이언트 IP의 방화벽 허용 목록이 직접 적용됩니다.
- 거부 로그 누락: 암시적 규칙에 의한 거부는 로깅되지 않습니다. 차단된 트래픽을 관찰하려면 로깅이 활성화된 명시적 거부 규칙을 추가하십시오.
- NAT 우회: VM에 외부 IP가 있으면 이그레스에 해당 IP를 사용하게 되어 Cloud NAT를 우회합니다. 외부 IP를 제거하여 강제로 NAT를 사용하도록 하십시오.
- 규칙 불일치 진단: 방향, 대상 ID(태그/서비스 계정/보안 태그), 우선순위, 소스 필터를 확인하십시오. 로그에 일치하는 항목이 없다면 트래픽이 예상한 규칙에 도달하지 않은 것입니다.
간단한 예시, 로깅을 사용한 ID 인식 인그레스 허용:
- 대상: 서비스 계정 sa: web-backend@project.iam.gserviceaccount.com
- 소스 범위: GFE 프록시 범위 + Google 상태 확인
- 우선순위: 100
- 작업: tcp:80,443 허용
- 로깅: 켜기
계층적 방화벽 정책, 세분화 및 서비스 경계
계층적 방화벽 정책은 VPC 수준 규칙보다 먼저 조직 또는 폴더 전체에 적용되는 규칙을 시행합니다. 이를 사용하여 가드레일을 보장합니다(예: “부하 분산되지 않은 VM으로의 모든 인터넷 인그레스 거부” 또는 “0.0.0.0/0으로부터의 RDP/SSH 거부”). 하위 수준의 VPC 규칙은 이미 일치한 조직/폴더의 거부 규칙을 재정의할 수 없습니다.
세분화 전략:
- 인그레스 세분화:
- 조직/폴더 정책: 위험한 포트에 대한 높은 우선순위의 거부 규칙과 승인된 진입점을 제외한 기본 거부 규칙을 설정합니다. 필요한 경우 Google 상태 확인 범위를 허용합니다.
- VPC 규칙: 서비스 계정 또는 보안 태그를 사용하여 워크로드별 허용 규칙을 지정합니다. 내부 서비스의 경우, 제한된 규칙을 사용하여 동서 간(east-west) 액세스를 위해 Private Service Connect 또는 내부 부하 분산을 사용합니다.
- 이그레스 세분화:
- 암시적인 모든 이그레스 허용 규칙을 조직/폴더 또는 VPC 범위에서 높은 우선순위의 모든 이그레스 거부 규칙으로 대체한 후, 필요한 것만 엽니다:
- Cloud NAT 또는 승인된 이그레스 방화벽을 통한 인터넷 이그레스.
- Private Google Access 및 private.googleapis.com 또는 restricted.googleapis.com 엔드포인트를 통한 Google API 액세스. restricted 엔드포인트는 VPC Service Controls와 함께 사용하여 승인되지 않은 ID나 프로젝트로의 데이터 유출을 방지합니다.
- 0.0.0.0/0 트래픽을 서드파티 방화벽으로 보내면서도 헤어피닝(hairpinning) 없이 Google API에 직접 액세스해야 하는 설계의 경우, Google API VIP 블록에 대한 정적 경로를 기본 인터넷 게이트웨이로 추가하고 서브넷에서 Private Google Access를 활성화합니다. 이렇게 하면 보안 제어를 유지하면서 지연 시간을 줄이고 자사 서비스에 대한 서드파티 장치 의존도를 낮출 수 있습니다.
- 암시적인 모든 이그레스 허용 규칙을 조직/폴더 또는 VPC 범위에서 높은 우선순위의 모든 이그레스 거부 규칙으로 대체한 후, 필요한 것만 엽니다:
서비스 경계 상호작용:
- VPC Service Controls는 프로젝트와 지원되는 Google API 주위에 경계를 정의하여 데이터 유출을 완화합니다. 경계가 활성화된 경우:
- API 호출이 경계 컨텍스트 내에 유지되도록 restricted.googleapis.com을 사용하는 것을 선호합니다.
- DNS가 관련 도메인을 restricted 또는 private 엔드포인트로 가리키고, 경로가 신뢰할 수 없는 이그레스 장치로 백홀(backhaul)되지 않도록 합니다.
- 경계 정책을 이그레스 방화벽 허용 목록과 결합하여 경계 외부 엔드포인트로의 우발적인 유출을 방지합니다.
장단점:
- 조직 수준의 거부 규칙은 위험 관리를 단순화하지만, 변경 제어가 느릴 경우 합법적인 실험을 차단할 수 있습니다. 보안 태그와 문서화된 요청 워크플로를 사용하여 예외를 위임합니다.
- 공격적인 이그레스 거부 규칙은 장애 발생 반경을 줄이지만, 서비스 중단을 방지하기 위해 강력한 서비스 검색 및 변경 제어가 필요합니다.
Cloud Armor, WAF 및 글로벌 에지 보호
Cloud Armor는 외부 HTTP(S) 및 외부 TCP/SSL 프록시 부하 분산기에 보안 정책을 바인딩하여 에지에서 보호 기능을 제공합니다.
- WAF 규칙:
- OWASP Top 10 및 일반적인 CVE에 대해 사전 구성된 규칙을 사용하고, 표현 언어를 사용하여 헤더, IP, 국가, URI 등을 기준으로 일치하는 맞춤 규칙을 사용합니다.
- 백엔드 서비스별로 규칙을 연결하고 우선순위에 따라 정렬합니다. 작업에는 허용, 특정 응답과 함께 거부 또는 HTTP(S)에 대한 리디렉션이 포함됩니다.
- 속도 제한:
- 슬라이딩 윈도우 및 버스트 제어를 사용하여 키별 할당량(예: 클라이언트 IP, 헤더 또는 쿠키 기준)을 적용합니다. 속도 기반 차단은 악의적인 소스에 대해 임시 거부 규칙을 자동으로 추가합니다.
- Adaptive Protection:
- ML 기반 이상 감지는 정상적인 요청 패턴을 학습하고 L7 DDoS 또는 악용 사례를 식별합니다. 후보 규칙을 제안하거나 자동으로 생성할 수 있으며, 먼저 미리보기 모드로 배포합니다.
- 미리보기 모드:
- 트래픽에 영향을 주지 않고 새 규칙을 평가합니다. 미리보기 결과는 로깅되어 위험이 낮은 튜닝을 가능하게 합니다. 확인 후 적용 모드로 전환합니다.
DDoS 방어 및 글로벌 부하 분산기 제어:
- Google의 글로벌 애니캐스트 에지는 대규모 L3/L4 공격을 흡수합니다. SYN/ACK 유효성 검사, 잘못된 형식의 패킷 처리 및 에지 용량 자동 확장은 외부 HTTP(S) 및 TCP/SSL 프록시를 위한 플랫폼에 내장되어 있습니다.
- Cloud Armor와 결합하여 L7 플러드, 크리덴셜 스터핑 및 애플리케이션 악용을 완화합니다.
- 부하 분산기에서 TLS 정책, 최신 암호화 방식 및 필요한 경우 클라이언트 mTLS를 적용합니다. IPv6 요구사항의 경우, IPv6 VIP가 있는 글로벌 외부 HTTP(S) 또는 TCP/SSL 프록시 부하 분산기를 사용합니다.
- 부하 분산된 앱에 특정 클라이언트 IP를 허용 목록에 추가하려면:
- HTTP(S)를 사용하는 경우, 클라이언트 IP를 키로 하는 Cloud Armor 허용 목록을 사용하는 것을 선호하며 백엔드 방화벽 규칙은 GFE 및 상태 확인 소스로 제한합니다.
- TCP/UDP 네트워크 부하 분산기를 사용하는 경우, 백엔드는 실제 클라이언트 IP를 볼 수 있습니다. 대상 인스턴스에 직접(보안 태그 또는 서비스 계정 사용) VPC 방화벽 허용 목록을 적용하고 Google 상태 확인 IP를 포함합니다.
운영 시 주의사항:
- 규칙은 에지에서 평가됩니다. 잘못된 허용 목록은 즉시 전역적인 서비스 중단을 유발할 수 있습니다. 미리보기 및 단계적 출시를 사용하고 Cloud Armor 로그와 부하 분산기 측정항목을 모니터링합니다.
- 세션 어피니티 요구사항은 다양합니다. 혼합 프로토콜(예: 동일한 클라이언트에서 동일한 백엔드 풀로의 HTTP 및 TFTP)의 경우, 부하 분산기의 클라이언트 IP 어피니티는 여러 포트에서 고정성(stickiness)을 유지합니다.
가시성, 검사 및 사고 대응
가시성:
- VPC Flow Logs는 샘플링된 5튜플 플로우 레코드를 서브넷별로 제공하며, 샘플링, 메타데이터 보강, 집계 간격을 구성할 수 있습니다. 성능 기준선 설정 및 이상 감지에 사용합니다.
- 방화벽 규칙 로깅은 로깅이 활성화된 특정 규칙에 대해 연결별 허용 및 거부를 캡처합니다. 암시적 거부 규칙에 의해 차단될 트래픽을 로깅하려면 명시적 거부 규칙을 생성해야 합니다.
- Cloud Armor 요청 로그 및 미리보기 결과는 엣지에서 규칙 일치, 조치 결정, 비율 제한 결과를 보여줍니다.
검사 및 탐지:
- Packet Mirroring은 심층 패킷 검사(DPI) 또는 IDS를 위해 동일 리전의 수집기로 트래픽을 복사합니다. 오버헤드를 제한하기 위해 서브넷, 태그 또는 서비스 계정별로 미러링 범위를 지정합니다. Packet Mirroring은 대역 외(out-of-band) 방식이며 트래픽을 차단하지 않습니다. Cloud IDS 또는 서드파티 센서와 함께 사용합니다.
- 인라인 L7 검사는 2-NIC 어플라이언스 패턴과 이를 통과하는 라우팅이 필요합니다. 대칭 라우팅 및 고가용성(HA)을 위해 설계하고, 리전 장애 도메인과 잠재적인 처리량 병목 현상을 고려해야 합니다. 인라인 장치는 실패 시 장애 영향 반경(blast radius)을 증가시킵니다. 해당되는 경우 관리형 인스턴스 그룹과 상태 확인 기반의 경로 장애 조치 패턴을 배포합니다.
사고 대응 관행:
- 로그를 보안 프로젝트에 중앙 집중화하고, 갑작스러운 거부 급증, 새로운 높은 우선순위 규칙 생성 또는 Cloud Armor 비율 제한 트리거에 대한 탐지를 구축합니다. 조사를 위해 BigQuery 또는 SIEM 통합을 사용합니다.
- 최소 권한의 IAM을 보장합니다. Shared VPC에서 방화벽 정책을 수정하려면 Network Admin 권한으로는 부족하며 Security Admin 권한이 필요합니다. 네트워크팀과 보안팀 간의 직무를 분리합니다.
- SSH 긴급 액세스(break-glass access)가 필요하고 키가 미리 프로비저닝되지 않은 경우, IAM 및 인스턴스 메타데이터 설정이 허용한다면 Cloud Shell에서
undefined
를 사용하여 임시 키를 인스턴스 메타데이터를 통해 푸시합니다.
- ‘로그 없음’ 시나리오 문제 해결을 위해 규칙과 방향을 확인하고, 암시적 거부는 로깅되지 않는다는 점을 기억하며, 더 일찍 일치했을 수 있는 계층적 정책을 확인합니다.
실용적인 문제 시나리오
Contoso Retail은 Google Cloud에서 다중 계층 웹 플랫폼을 운영합니다. 프런트엔드 트래픽은 전역 외부 HTTP(S) 부하 분산기에서 처리되며, 애플리케이션 VM은 외부 IP 없이 여러 리전에서 실행됩니다. Egress 트래픽은 Google API(BigQuery 및 Pub/Sub)를 제외하고 서드파티 NGFW를 통해 헤어핀(hairpin)되어야 합니다. 보안팀은 조직 전체의 가드레일, 파트너 파일럿을 위한 클라이언트 IP 허용 목록, 그리고 의심스러운 악성 클라이언트 테스트 시 위험 최소화를 원합니다.
접근 방식:
- 계층적 가드레일 설정
- 조직 수준의 계층적 방화벽 정책을 생성하여,
undefined
보안 태그가 없는 VM 대상을 향한 0.0.0.0/0에서의 모든 인그레스를 거부하고, 인터넷으로부터의 관리 포트(SSH, RDP)를 거부합니다.
- 근거: 전역적으로 안전하지 않은 노출을 막습니다. 개발자는 태그에 대한 IAM 때문에 보안 태그를 스스로 할당할 수 없습니다.
ID 기반 워크로드 타겟팅
- 프런트엔드, 애플리케이션, 데이터베이스 계층에 각각 다른 서비스 계정을 할당합니다. VPC 수준 방화벽 규칙에서 이러한 서비스 계정을 참조하여 필요한 동서 간 트래픽 흐름(예: 프런트엔드→앱 tcp:443, 앱→DB tcp:5432)만 허용합니다.
- 근거: 정책을 워크로드 ID와 연결하여 우발적인 태그 오용을 방지합니다.
부하 분산된 백엔드에 대한 인그레스 허용
- 앱 VM에서 앱 서비스 계정을 대상으로 하는 높은 우선순위의 인그레스 허용 규칙을 생성하고, 소스 범위를 Google Front End 프록시 및 Google 상태 확인 범위와 동일하게 설정하며 로깅을 활성화합니다.
- 근거: HTTP(S) L7의 경우, 백엔드는 GFE 및 상태 확인 IP로부터의 연결만 수락해야 합니다. 클라이언트 IP 허용 목록은 엣지에서 적용됩니다.
Cloud Armor 엣지 정책
- 외부 HTTP(S) 부하 분산기 백엔드 서비스에 Cloud Armor 정책을 연결합니다.
- 파트너 클라이언트 IP 허용 목록 규칙을 추가합니다.
- OWASP Top 10에 대한 사전 구성된 WAF 규칙을 활성화합니다.
- 보수적인 임계값을 사용하여 클라이언트 IP를 키로 하는 비율 제한을 구성합니다.
- 근거: 클라이언트 IP가 보이고 트래픽이 VPC에 도달하기 전에 클라이언트 소스 제한 및 애플리케이션 계층 보호를 적용합니다.
- 외부 HTTP(S) 부하 분산기 백엔드 서비스에 Cloud Armor 정책을 연결합니다.
적응형 보호 및 안전한 테스트
- Adaptive Protection을 활성화하고 의심스러운 클라이언트 IP에 대한 거부 규칙을 미리보기 모드로 생성합니다.
- 근거: 미리보기 모드를 사용하면 실제 사용자에게 영향을 주지 않고 동작을 확인할 수 있으며, 적용하기 전에 로그를 통해 클라이언트가 악성인지 확인할 수 있습니다.
Private Google Access를 사용한 Egress 세분화
- 서드파티 NGFW로 향하는 0.0.0.0/0 경로를 유지합니다. Google API VIP에 대한 사용자 지정 정적 경로를 기본 인터넷 게이트웨이로 추가하고 서브넷에서 Private Google Access를 활성화합니다. 명시적인 높은 우선순위의 Egress 전체 거부 규칙을 추가한 다음, NGFW 다음 홉 및 Google API에 대한 특정 허용 규칙을 추가하고 로깅을 활성화합니다.
- 근거: 일반적인 인터넷 Egress 트래픽은 NGFW를 통과하도록 강제하면서, BigQuery 및 Pub/Sub는 불필요한 헤어피닝 없이 비공개로 도달할 수 있도록 합니다.
NAT 및 외부 IP 제어
- 인터넷 Egress가 필요하지만 외부 IP가 없는 인스턴스를 위해 Cloud NAT를 사용합니다. NAT를 사용해야 하는 컴퓨팅 인스턴스에 있는 모든 외부 IP를 감사하고 제거합니다.
- 근거: NAT 우회를 방지하고 단일 Egress 구성을 유지합니다.
검사 및 모니터링
- 각 리전의 앱 계층에 대해 Packet Mirroring을 활성화하고, 앱 서비스 계정을 대상으로 하며, 미러링된 트래픽을 리전별 IDS 수집기로 보냅니다. 주요 규칙에 대해 VPC Flow Logs 및 방화벽 규칙 로깅을 활성화하고, Cloud Armor 및 VPC 로그를 중앙 보안 프로젝트와 BigQuery로 내보냅니다.
- 근거: 경로상 지연 시간 없이 위협 탐색 및 성능 기준선 설정을 위한 심층적인 가시성을 제공합니다.
사고 대응 준비 운영
- Cloud Armor 거부, 방화벽 거부 로그의 급증 또는 계층적 정책 변경에 대한 알림을 구축합니다. 통제된 비상 액세스를 위해 Cloud Shell
undefined
를 사용하는 긴급 SSH 절차를 문서화합니다.
- 근거: 활발한 악용을 신속하게 탐지하고 해결을 위한 안전한 운영 경로를 보존합니다.
- 변경 안전성 및 롤백
- Cloud Armor 변경 사항을 미리보기 모드에서 테스트한 후 적용합니다. 방화벽 변경의 경우, 조직 수준 정책으로 전파하기 전에 위험이 낮은 우선순위와 카나리 프로젝트를 사용합니다.
- 근거: 강력한 보안 상태를 유지하면서 정책 실수로 인한 전역적인 중단 가능성을 최소화합니다.
← VPC 아키텍처 · 모든 도메인 · 하이브리드 연결 →
이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
시험 합격하기 →