Google Cloud Armor로 비율 제한 구성
이 문서에서는 Cloud Service Mesh 클라이언트에 공평한 공유 비율 제한을 적용하여 서비스의 공정한 소비를 관리하고 악의적이거나 잘못된 클라이언트가 서비스를 과부하하지 않도록 하는 방법을 설명합니다.
구성 프로세스에서는 Cloud Armor 보안 정책과 엔드포인트 정책을 만들어야 합니다. Cloud Armor 보안 정책에 익숙하지 않다면 보안 정책 개요를 읽어보는 것이 좋습니다.
속도 제한 작동 방식
비율 제한은 서비스의 가용성을 개선하고 사용 가능한 용량을 클라이언트 간에 공정하게 공유하기 위해 지정된 시간 간격 내에 서비스가 클라이언트로부터 수신할 수 있는 요청 수를 제한합니다.
Cloud Armor가 비율 제한 기준점을 초과하는 수신 트래픽에 적용하는 요청 기준점, 간격, 작업은 사용자가 구성할 수 있습니다. Cloud Service Mesh 비율 제한의 경우 Cloud Armor는 보안 정책 유형 CLOUD_ARMOR_INTERNAL_SERVICE
를 사용하고 보안 정책 규칙은 fairshare
작업을 사용합니다.
각 Cloud Armor 보안 정책에는 하나 이상의 규칙이 포함되어 있습니다. 각 규칙은 일치 조건과 작업으로 구성됩니다. 요청이 일치 조건을 충족하면 Cloud Armor가 구성된 작업을 요청에 적용합니다.
비율 제한을 구성할 때는 앞에서 언급한 비율 제한 작업 중 하나와 사용 사례에 맞는 일치 조건 (--src-ip-ranges "*"
플래그를 사용하여 모든 수신 요청과 일치하는 경우 포함)을 사용하여 보안 정책 규칙을 만듭니다. 정책 내의 규칙은 우선순위에 따라 평가됩니다. 숫자 우선순위가 가장 낮은 규칙은 논리적 우선순위가 가장 높으며 먼저 평가됩니다. Cloud Armor는 서버 측 비율 제한을 실행합니다. 즉, 클라이언트 기기가 아닌 서버에서 비율 제한을 적용합니다.
비율 제한 작업에는 비율 제한 기준점을 미세 조정하는 데 사용하는 추가 필드가 있습니다. 다음 필드는 모든 비율 제한 규칙 간에 공유됩니다.
rate_limit_threshold_count
: Cloud Armor가 비율 제한을 적용해야 하는 사용자 구성 시간 간격당 요청 수입니다.interval_sec
:rate_limit_threshold_count
의 시간 간격(초)입니다.exceed_action
: 비율 제한 기준점을 초과하는 요청에 대해 실행할 작업입니다.conform_action
: 비율 제한 기준점을 초과하지 않는 요청에 대해 실행할 작업입니다.
Cloud Service Mesh를 사용한 비율 제한
이 섹션에서는 Cloud Service Mesh로 비율 제한을 구성하기 위해 실행해야 하는 단계를 간략하게 설명합니다.
먼저 엔드포인트 정책을 만들고 EndpointMatcher
가 인바운드 트래픽에 대한 비율 제한을 적용할 Cloud Service Mesh 인스턴스를 선택하는지 확인합니다. EndpointMatcher
는 엔드포인트 라벨을 사용하여 연결할 인스턴스를 식별합니다.
다음으로 CLOUD_ARMOR_INTERNAL_SERVICE
유형의 Cloud Armor 보안 정책을 만듭니다. 이 보안 정책 유형에 사용할 수 있는 유일한 작업은 fairshare
입니다. 이 정책에서는 우선순위가 더 높은 규칙을 충족하지 않는 모든 트래픽에 공평한 공유 비율 제한을 적용하기 위해 fairshare
작업이 있는 기본 규칙을 만듭니다. 새로운 우선순위가 더 높은 규칙을 추가하여 다양한 종류의 트래픽에 다양한 비율 제한을 적용할 수 있습니다. 예를 들어 특정 IP 주소 범위에 더 낮거나 높은 비율 제한을 부여할 수 있습니다.
마지막으로 하나 이상의 비율 제한 규칙으로 보안 정책을 만든 후 엔드포인트 정책에 연결합니다. 보안 정책을 연결하면 Cloud Armor는 규칙의 일치 조건과 일치하고 EndpointMatcher
가 선택한 서비스 메시 인스턴스에 연결되는 모든 수신 트래픽에 서버 측 비율 제한을 적용합니다.
Cloud Service Mesh는 모든 인스턴스에 걸쳐 전역 비율 제한을 구성합니다. 즉, 모든 서버 인스턴스의 총 트래픽 볼륨이 집계되어 비율 제한을 적용할 시점을 결정합니다. 이러한 서비스에 요청을 전송하는 클라이언트는 동일한 시정 기준 및 정책을 적용받습니다. 즉, 집계 트래픽 비율이 기준점을 초과하면 일부 요청이 삭제됩니다.
Cloud Service Mesh로 비율 제한을 구성하려면 Envoy로 Google Cloud Armor 비율 제한 구성을 참고하세요.
제한사항
Cloud Armor로 비율 제한을 구성할 때는 다음 제한사항을 고려하세요.
- Cloud Armor 할당량은 만들 수 있는 맞춤 규칙의 수를 제한합니다. 맞춤 규칙을 20개 이상 만들기 전에 할당량을 확인하는 것이 좋습니다.
- 각 엔드포인트 정책 리소스는 서로 다른 보안 정책을 참조해야 합니다. 기존 엔드포인트 정책에서 이미 참조하는 경우 새 엔드포인트 정책에 보안 정책을 연결할 수 없습니다.
fairshare
작업이 있는 보안 정책은ALL
비율 제한 키로 제한됩니다.fairshare
작업을 사용하여 보안 정책을 배포하면 Cloud Armor는 규칙 적용 중에preview
필드를 무시합니다.- TCP 트래픽 라우팅을 사용하는 경우 Cloud Armor 보안 정책을 구성할 수 없습니다.
또한 CLOUD_ARMOR_INTERNAL_SERVICE
유형의 Cloud Armor 보안 정책은 다음 맞춤 표현식 언어 (CEL) 속성으로 제한됩니다.
request.headers
request.method
request.path
request.scheme
request.query
CEL 속성에 대한 자세한 내용은 맞춤 규칙 언어 속성 구성을 참고하세요.