승인 확장 프로그램 구성

서비스 확장 프로그램을 사용하면 애플리케이션 부하 분산기가 백엔드 서비스에 콜아웃을 보내 처리 경로에 맞춤 처리를 삽입할 수 있습니다. 승인 확장 프로그램은 부하 분산기가 요청 헤더를 수신하고 URL 맵이 백엔드 서비스를 선택한 후 요청 처리 경로에서 실행됩니다. 이 페이지에서는 승인 정책에 정의된 맞춤 승인 엔진을 사용하도록 승인 확장 프로그램을 구성하는 방법을 설명합니다.

애플리케이션 부하 분산기 확장 프로그램에 대한 개요는 Cloud Load Balancing 확장 프로그램 개요를 참고하세요.

소개

Cloud Load Balancing을 사용하면 부하 분산기로 유입되는 트래픽에 액세스 제어를 적용하는 승인 정책을 구성할 수 있습니다. 경우에 따라 복잡한 승인 결정을 승인 정책을 사용하여 쉽게 표현할 수 없습니다.

승인 확장 프로그램으로 승인 정책을 구성하여 승인 결정을 맞춤 승인 엔진에 위임할 수 있습니다. 데이터 경로에서 승인 확장 프로그램은 경로 확장 프로그램 뒤에 실행되지만 트래픽 확장 프로그램 앞에는 실행되지 않습니다. 각 승인 요청에 대해 부하 분산기는 요청 헤더를 확장 프로그램에 전달합니다. 제공업체의 응답에 따라 부하 분산기 프록시는 요청을 전달하거나 거부합니다.

애플리케이션 부하 분산기 확장 프로그램과 관련된 한도에 대한 자세한 내용은 할당량 및 한도 페이지를 참고하세요.

시작하기 전에

호출 백엔드 서비스 구성에 설명된 대로 필요한 리소스를 만듭니다.

승인 확장 프로그램 구성

다음 예시에서는 us-east1의 리전 내부 애플리케이션 부하 분산기에 대한 승인 결정을 위임하는 승인 정책을 사용하여 승인 확장 프로그램 my-authz-ext를 구성하는 방법을 보여줍니다.

gcloud

  1. 승인 확장 프로그램을 구성합니다.

    1. 백엔드 서비스 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
      EOF
      

      PROJECT_ID프로젝트 ID로 바꿉니다.

      기본적으로 모든 서비스 확장 프로그램 콜아웃은 Envoy 외부 처리 또는 ext_proc 프로토콜을 사용합니다. 승인 콜아웃의 경우 미리보기에서 최적의 외부 승인 또는 ext_authz 프로토콜도 지원됩니다. wireFormat 옵션이 EXT_AUTHZ_GRPC로 설정되면 콜아웃은 ext_authz 프로토콜을 사용합니다. 이 옵션을 지정하지 않으면 콜아웃에서 ext_proc 프로토콜을 사용합니다.

    2. 승인 확장 프로그램을 가져옵니다. 다음 샘플 값과 함께 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 명령어를 사용하세요.

  2. 확장 프로그램으로 승인 정책을 구성합니다.

    1. 확장 프로그램 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
      
    2. 승인 정책을 프로젝트로 가져옵니다. 다음 샘플 값과 함께 gcloud network-security authz-policies import 명령어를 사용합니다.

      gcloud network-security authz-policies import my-authz-policy \
          --source=authz-policy.yaml \
          --location=us-east1
      

승인 확장 프로그램의 제한사항

다음은 승인 확장 프로그램의 몇 가지 제한사항입니다.

  • 승인 정책에는 승인 확장 프로그램이 하나만 있을 수 있습니다.
  • 전달 규칙은 여러 승인 정책과 함께 사용할 수 있으며, 그중 하나만 맞춤 승인 정책일 수 있습니다.

모든 확장 프로그램에 적용되는 제한사항은 확장 프로그램 제한사항을 참고하세요.

다음 단계