GCP 상에서 LB 앞에 간단하지만 강력한 L7 레이어의 보안 역할을 하는(WAF라고 봐도 무방) Cloud Armor 와 커스텀 룰에 대해 알아봅니다.
Google Cloud Armor를 사용하면 DDoS 공격과 교차 사이트 스크립팅(XSS), SQL 삽입(SQLi)과 같은 애플리케이션 공격을 포함한 여러 유형의 위협으로부터 Google Cloud 배포를 보호할 수 있습니다.
basic mode에서는 ip 기반으로 매치된 ip 에 대해서 동작합니다.
CEL 기반으로 표현식을 짜고, 거기에 매칭되는 트래픽에 대해서 허용 거부를 할 수 있습니다.
origin.region_code != 'KR' && origin.region_code != 'ES'
origin.region_code == "AU" && inIpRange(origin.ip, '1.2.3.0/24')
inIpRange(origin.ip, '1.2.3.4/32')
&& has(request.headers['user-agent'])
&& request.headers['user-agent'].contains('WordPress')
request.path.matches('/bad_path/')
동시에 여러개 lb 의 백엔드 서비스를 타겟으로 지정할 수 있습니다.
끝
참고
CEL 도큐먼테이션
https://cloud.google.com/armor/docs/security-policy-overview?_ga=2.194584237.-1415480700.1704570954&hl=ko#about
https://cloud.google.com/armor/docs/rules-language-reference?hl=ko#allow_or_deny_traffic_from_a_specific_region