서비스 확장 프로그램을 사용하면 애플리케이션 부하 분산기가 백엔드 서비스에 콜아웃을 보내 처리 경로에 맞춤 처리를 삽입할 수 있습니다. 승인 확장 프로그램은 부하 분산기가 요청 헤더를 수신하고 URL 맵이 백엔드 서비스를 선택한 후 요청 처리 경로에서 실행됩니다. 이 페이지에서는 승인 정책에 정의된 맞춤 승인 엔진을 사용하도록 승인 확장 프로그램을 구성하는 방법을 설명합니다.
애플리케이션 부하 분산기 확장 프로그램에 대한 개요는 Cloud Load Balancing 확장 프로그램 개요를 참고하세요.
소개
Cloud Load Balancing을 사용하면 부하 분산기로 유입되는 트래픽에 액세스 제어를 적용하는 승인 정책을 구성할 수 있습니다. 경우에 따라 복잡한 승인 결정을 승인 정책을 사용하여 쉽게 표현할 수 없습니다.
승인 확장 프로그램으로 승인 정책을 구성하여 승인 결정을 맞춤 승인 엔진에 위임할 수 있습니다. 데이터 경로에서 승인 확장 프로그램은 경로 확장 프로그램 뒤에 실행되지만 트래픽 확장 프로그램 앞에는 실행되지 않습니다. 각 승인 요청에 대해 부하 분산기는 요청 헤더를 확장 프로그램에 전달합니다. 제공업체의 응답에 따라 부하 분산기 프록시는 요청을 전달하거나 거부합니다.
애플리케이션 부하 분산기 확장 프로그램과 관련된 한도에 대한 자세한 내용은 할당량 및 한도 페이지를 참고하세요.
시작하기 전에
호출 백엔드 서비스 구성에 설명된 대로 필요한 리소스를 만듭니다.
승인 확장 프로그램 구성
다음 예시에서는 us-east1의 리전 내부 애플리케이션 부하 분산기에 대한 승인 결정을 위임하는 승인 정책을 사용하여 승인 확장 프로그램 my-authz-ext를 구성하는 방법을 보여줍니다.
gcloud
승인 확장 프로그램을 구성합니다.
백엔드 서비스
authz-service와 연결하는 YAML 파일에서 확장 프로그램을 정의합니다. 제공된 샘플 값을 사용합니다.cat >authz-extension.yaml <<EOF name: my-authz-ext authority: ext11.com loadBalancingScheme: INTERNAL_MANAGED service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/authz-service forwardHeaders: - Authorization failOpen: false timeout: "0.1s" wireFormat: EXT_AUTHZ_GRPC EOFPROJECT_ID를 프로젝트 ID로 바꿉니다.기본적으로 모든 서비스 확장 프로그램 콜아웃은 Envoy 외부 처리 또는
ext_proc프로토콜을 사용합니다. 승인 콜아웃의 경우 미리보기에서 최적의 외부 승인 또는ext_authz프로토콜도 지원됩니다.wireFormat옵션이EXT_AUTHZ_GRPC로 설정되면 콜아웃은ext_authz프로토콜을 사용합니다. 이 옵션을 지정하지 않으면 콜아웃에서ext_proc프로토콜을 사용합니다.승인 확장 프로그램을 가져옵니다. 다음 샘플 값과 함께
gcloud service-extensions authz-extensions import명령어를 사용합니다.gcloud service-extensions authz-extensions import my-authz-ext \ --source=authz-extension.yaml \ --location=us-east1프로토콜을
ext_authz로 설정하려면 대신gcloud beta service-extensions authz-extensions import명령어를 사용하세요.
확장 프로그램으로 승인 정책을 구성합니다.
확장 프로그램
my-authz-ext을 전달 규칙fr1과 연결하는 승인 정책을 정의합니다. 제공된 샘플 값을 사용합니다.CUSTOM작업은 확장 프로그램이 사용되고 있음을 나타냅니다.cat >authz-policy.yaml <<EOF name: my-authz-policy target: loadBalancingScheme: INTERNAL_MANAGED resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-east1/forwardingRules/fr1" action: CUSTOM customProvider: authzExtension: resources: - "projects/PROJECT_ID/locations/us-east1/authzExtensions/my-authz-ext" EOF승인 정책을 프로젝트로 가져옵니다. 다음 샘플 값과 함께
gcloud network-security authz-policies import명령어를 사용합니다.gcloud network-security authz-policies import my-authz-policy \ --source=authz-policy.yaml \ --location=us-east1
승인 확장 프로그램의 제한사항
다음은 승인 확장 프로그램의 몇 가지 제한사항입니다.
- 승인 정책에는 승인 확장 프로그램이 하나만 있을 수 있습니다.
- 전달 규칙은 여러 승인 정책과 함께 사용할 수 있으며, 그중 하나만 맞춤 승인 정책일 수 있습니다.
모든 확장 프로그램에 적용되는 제한사항은 확장 프로그램 제한사항을 참고하세요.
다음 단계
- Service Extensions GitHub 저장소에서
ext_authz및ext_proc서버의 Python 및 Go 샘플을 확인하세요. - 경로 확장 프로그램 구성
- 트래픽 확장 프로그램 구성
- 확장 프로그램 관리하기