본문 바로가기
CSP (Cloud Service Provider)/GCP

Cloud Armor & Firewall

by BTC_오은영석사 2023. 9. 14.

베하~! 안녕하세요! 이번주에도 돌아온 금쪽상담소의 오은영석사와 금쪽이 입니다.

한주동안 잘 지내셨나요? 이번주는 가을의 향기가 물씬 풍기는 한주였던거 같아요.

더위는 한층 더 꺽기고 선선한 공기가 기분을 좋게 만드는 지금 저희 블로그와 함께 한주를 마무리 해보아요~

 

이번주에 배울내용은!!!

GCP의 서비스인 Clous Armor와 Firewall 입니다!

클라우드에서는 보안이 필수죠. 보안에 꼭 필요하고 기본이 되는 리소스에 대해 알아보는 시간을 가지도록 하겠습니다.

 


 

Cloud Armor 란?

Google Cloud Armor를 사용하면 DDoS 공격과 교차 사이트 스크립팅(XSS), SQL 삽입(SQLi)과 같은 애플리케이션 공격을 포함한 여러 유형의 위협으로부터 Google Cloud 배포를 보호하는 역할을 합니다.

  • Google 규모의 DDoS 방지 및 WAF 활용

  • Cloud Load Balancing 워크로드에 대한 공격을 감지하고 완화

  • 레이어 7 DDoS 공격을 감지하고 차단하는 데 유용한 Adaptive Protection ML 기반 메커니즘

  • OWASP 10대 위험을 완화하고 온프레미스 또는 클라우드에서 워크로드 보호

 

Cloud Armor의 작동 방식

네트워크 또는 프로토콜 기반 볼륨 DDoS 공격에 대해 상시 사용 설정된 DDoS 보호를 제공합니다.

이러한 보호는 부하 분산기 뒤에 있는 애플리케이션 또는 서비스를 대상으로 합니다.

부하 분산 프록시를 통해 올바른 형식의 요청만 허용되도록 네트워크 공격을 감지하고 완화할 수 있습니다. 

아래의 Load Balancer를 통해 Cloud Armor를 적용할 수 있습니다.

- Global external Application Load Balancer
- Classic Application Load Balancer
- External proxy Network Load Balancer

Google Cloud Armor 보안 정책을 사용 설정하면 들어오는 트래픽의 소스와 최대한 가까운 Google Cloud 에지에서 배포에 대한 액세스를 허용하거나 거부할 수 있고 이를 통해 원치 않는 트래픽이 리소스를 소비하거나 Virtual Private Cloud(VPC) 네트워크에 유입되는 것을 방지할 수 있습니다.

 

Cloud Armor 적용 방법

- gcloud를 통해 적용하는 방법에 대해 알아보겠습니다.

 

1. Google Cloud Armor 보안 정책을 만듭니다.

gcloud compute security-policies create <policy 이름> \
--description "<설명>"

2. 트래픽을 거부하려면 기본 규칙을 보안 정책으로 업데이트합니다.

gcloud compute security-policies rules update 2147483647<가장 끝 숫자> \
--security-policy <policy 이름> \
--action "deny-404"

이를 통해 지정된 ip외에 모든 ip 차단할 수 있습니다.

3. 보안 정책에 규칙을 추가합니다.

gcloud compute security-policies rules create <우선순위> \
--security-policy <policy 이름> \
--description "<설명>" \
--src-ip-ranges "<ip>" \
--action "allow"

4. 백엔드 서비스에 보안 정책을 연결합니다.

gcloud compute backend-services update <백엔드 서비스 이름> \
--security-policy <policy 이름>

 


 

Firewall 란?

  • Virtual Private Cloud(VPC) 방화벽 규칙이 특정 프로젝트 및 네트워크에 적용됩니다.
  • VPC 방화벽 규칙을 사용하면 VPC 네트워크의 가상 머신(VM) 인스턴스에 대한 연결을 허용하거나 거부할 수 있습니다.
  • 사용 설정한 VPC 방화벽 규칙은 인스턴스의 구성 및 운영 체제와 상관없이 인스턴스를 보호할 수 있도록 항상 실행되며 아직 시작하지 않은 인스턴스도 마찬가지입니다.
  • 방화벽은 네트워크 수준에서 정의되지만 연결은 인스턴스별로 허용되거나 거부됩니다.

Firewall Rule 구성요소

  • 대상의 관점에서의 방향. 방향은 ingress 또는 egress로 생성
  • 숫자 우선순위: 규칙 적용 여부를 결정하며 다른 구성요소가 트래픽과 일치하는 가장 높은 우선순위(가장 낮은 우선순위 번호) 규칙만 적용됩니다. 우선순위가 낮은 충돌 규칙은 무시됩니다.
  • 연결을 허용할지 차단할지 결정합니다. (allow & deny)
  • 방화벽 규칙을 삭제하지 않고도 사용 설정하거나 사용 중지할 수 있습니다.
  • 대상: 규칙이 적용되는 인스턴스(GKE 클러스터 및 App Engine 가변형 환경 인스턴스 포함)를 정의합니다.
  • network tag를 통해 적용
  • 프로토콜(TCP, UDP, ICMP....) 및 대상 포트

Firewall 생성

gcloud compute firewall-rules create <rule이름>\
--network <VPC 이름> \
--priority <우선순위> \
--direction <ingress or egress> \
--action <deny or allow> \
--target-tags <network tag> \
--target-service-accounts=<service account> \
--source-ranges <ip> \
----> ingress에 사용

--source-tags <network tag> \
--source-service-accounts=<service account> \
--destination-ranges <ip> \
----> egress 사용

--rules <protocol:port or all> \
--enable-logging or --no-enable-logging] \

 


 

이렇게 Cloud Armor와 firewall에 대해 알아보았습니다.

Cloud Armor는 애플리케이션단에서 firewall는 네트워크단에서 보안을 강화할 수 있다는점!

꼭!! 기억해주세요~!

오늘도 유익한 시간이 되셨나요??

그럼 다음시간에 만나요!! 베빠~!

 

<출처 문헌>

https://cloud.google.com/armor/docs/cloud-armor-overview?hl=ko

https://cloud.google.com/armor/docs/configure-security-policies?hl=ko#gcloud\

https://cloud.google.com/firewall/docs/firewalls?hl=ko

https://cloud.google.com/firewall/docs/using-firewalls?hl=ko 

댓글