Secure Web Proxy 확장 프로그램 구성

Service Extensions를 사용하면 Secure Web Proxy 확장 프로그램이 승인 서비스에 콜아웃을 전송하여 트래픽 처리 경로에 맞춤 처리를 삽입할 수 있습니다. 이 페이지에서는 승인 정책을 사용하여 Secure Web Proxy 확장 프로그램을 구성하는 방법을 설명합니다.

Secure Web Proxy 확장 프로그램은 요청 및 콘텐츠 승인 정책으로 구성되며 승인 확장 프로그램으로 구성됩니다. 요청 승인 정책을 기반으로 하는 확장 프로그램은 콘텐츠 승인 정책을 기반으로 하는 확장 프로그램보다 먼저 실행되도록 구성됩니다.

보안 웹 프록시 확장 프로그램의 작동 방식에 관한 자세한 내용은 보안 웹 프록시 확장 프로그램 개요를 참고하세요.

승인 확장 프로그램과 관련된 한도에 대한 자세한 내용은 할당량 및 한도 페이지를 참고하세요.

시작하기 전에

  1. 확장에 사용할 위치(예: us-west1)에 swp-instance1라는 Secure Web Proxy 인스턴스를 만들고 설정하고 배포합니다.

    프록시는 전송 계층 보안 (TLS) 검사가 사용 설정된 게이트웨이 보안 정책과 함께 배포해야 합니다.

  2. 다음 샘플 서비스를 구성합니다.

    Secure Web Proxy 확장 프로그램은 정규화된 도메인 이름(FQDN)만 타겟팅할 수 있습니다. 확장에 FQDN 타겟을 사용하면 데이터 플레인은 TLS 암호화가 적용된 HTTP2 프로토콜을 사용하여 포트 443의 엔드포인트와 통신합니다. 하지만 데이터 플레인은 서버 인증서를 검증하지 않습니다. 보안상의 이유로 확인된 엔드포인트가 VPC 내에 있는지 확인합니다.

요청 승인 정책의 확장 프로그램 구성

다음 예시에서는 us-west1의 Secure Web Proxy 인스턴스에 요청 승인 정책을 적용하는 승인 확장 프로그램을 구성하는 방법을 보여줍니다. 이 정책에 따라 트래픽이 대상 example.com/mcp에 도달하려면 특정 주체로부터 상호 TLS 인증을 통과해야 합니다.

gcloud

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

    1. 확장 프로그램을 request-authz.com와 연결하는 YAML 파일에 확장 프로그램을 정의합니다. 제공된 샘플 값을 사용합니다.

      cat >swp-request-authz-extension.yaml <<EOF
      name: my-swp-request-authz-ext
      authority: ext11.com
      loadBalancingScheme: INTERNAL_MANAGED
      service: "request-authz.com"
      forwardHeaders:
        - Authorization
      failOpen: false
      timeout: "0.1s"
      wireFormat: EXT_AUTHZ_GRPC
      EOF
      

      Secure Web Proxy 확장 프로그램은 리전별 리소스이며 Secure Web Proxy 인스턴스와 동일한 리전에 있어야 합니다.

      요청 승인 정책의 경우 ext_proc 프로토콜도 지원되지만 콜아웃이 ext_authz 프로토콜을 사용하도록 wireFormat 값을 EXT_AUTHZ_GRPC로 설정할 수 있습니다.

      기본적으로 failOpenfalse로 설정되어 있습니다. 확장 프로그램이 제한 시간을 초과하거나 실패하면 요청 처리가 중지됩니다. 이 기본 옵션은 가용성보다 보안 또는 무결성을 우선시할 때 사용하는 것이 좋습니다.

    2. 승인 확장 프로그램을 가져옵니다. 다음 샘플 값과 함께 gcloud beta service-extensions authz-extensions import 명령어를 사용합니다.

      gcloud beta service-extensions authz-extensions import my-swp-request-authz-ext \
          --source=swp-request-authz-extension.yaml \
          --location=us-west1
      
  2. 동일한 프로젝트에서 확장 프로그램으로 승인 정책을 구성합니다.

    example.com/mcp에 대한 모든 요청에 대해 정책은 특정 주체의 상호 TLS 인증을 요구하고 승인 결정을 승인 확장 프로그램 my-swp-authz-request-ext에 추가로 위임합니다.

    1. my-swp-authz-request-ext 확장 프로그램을 Secure Web Proxy 프록시 swp-instance1와 연결하는 승인 정책을 정의합니다. 제공된 샘플 값을 사용합니다.

      cat >swp-request-authz-policy.yaml <<EOF
      name: my-swp-request-authz-policy
      target:
        resources:
          - "projects/PROJECT_ID/locations/us-west1/gateways/swp-instance1"
      policyProfile: REQUEST_AUTHZ
      httpRules:
      - to:
          operations:
          - hosts:
            - exact: "example.com"
          - paths:
            - prefix: "/mcp"
        from:
          sources:
          - principals:
            - principal_selector: CLIENT_CERT_DNS_NAME_SANS
              principal:
                exact: "spiffe://p.global.123.workload.id.goog/ns/ns1/sa/hellomcp"
      action: CUSTOM
      customProvider:
        authzExtension:
          resources:
            - "projects/PROJECT_ID/locations/us-west1/authzExtensions/my-swp-request-authz-ext"
      EOF
      

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

      요청 승인 정책의 경우 policyProfile 값은 REQUEST_AUTHZ이어야 합니다.

      CUSTOM 작업은 확장 프로그램이 프록시와 연결되어 있음을 나타냅니다.

      승인 정책 리소스에 대한 자세한 내용은 authzPolicy 참조 문서를 참고하세요.

    2. 승인 정책을 프로젝트로 가져옵니다. 다음 샘플 값과 함께 gcloud beta network-security authz-policies import 명령어를 사용합니다.

      gcloud beta network-security authz-policies import my-swp-request-authz-policy \
          --source=swp-request-authz-policy.yaml \
          --location=us-west1
      

콘텐츠 승인 정책의 확장 프로그램 구성

다음 예시에서는 us-west1의 Secure Web Proxy 인스턴스에 콘텐츠 승인 정책을 적용하는 승인 확장 프로그램을 구성하는 방법을 보여줍니다. 정책에 따라 콘텐츠 정리 서비스가 애플리케이션 페이로드를 자세히 검사하여 요청을 허용하거나 거부하거나 필요에 따라 요청과 응답을 변경해야 합니다.

gcloud

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

    1. 확장 프로그램을 content-sdp.com와 연결하는 YAML 파일에 확장 프로그램을 정의합니다. 제공된 샘플 값을 사용합니다.

      cat >swp-authz-content-extension.yaml <<EOF
      name: my-swp-content-authz-ext
      authority: ext11.com
      loadBalancingScheme: INTERNAL_MANAGED
      service: "content-sdp.com"
      failOpen: false
      timeout: "0.1s"
      EOF
      

      콘텐츠 승인 정책의 경우 policyProfile 값은 CONTENT_AUTHZ이어야 합니다.

      CONTENT_AUTHZ 정책의 경우 wireFormat 값을 EXT_PROC_GRPC로 명시적으로 설정할 필요가 없습니다. 기본적으로 콜아웃은 ext_proc 프로토콜을 사용합니다.

    2. 승인 확장 프로그램을 가져옵니다. 다음 샘플 값과 함께 gcloud beta service-extensions authz-extensions import 명령어를 사용합니다.

      gcloud beta service-extensions authz-extensions import my-swp-content-authz-ext \
          --source=swp-content-authz-extension.yaml \
          --location=us-west1
      
  2. 확장 프로그램으로 승인 정책을 구성합니다.

    1. 확장 프로그램 my-swp-content-authz-ext을 Secure Web Proxy 프록시 swp-instance1와 연결하는 승인 정책을 정의합니다. 제공된 샘플 값을 사용합니다.

      cat >swp-content-authz-policy.yaml <<EOF
      name: my-swp-content-authz-policy
      target:
        resources:
          - "projects/PROJECT_ID/locations/us-west1/gateways/swp-instance1"
      policyProfile: CONTENT_AUTHZ
      httpRules:
      - to:
          operations:
          - hosts:
            - exact: "example.com"
          - paths:
            - prefix: "/sensitive-stuff"
      action: CUSTOM
      customProvider:
        authzExtension:
          resources:
            - "projects/PROJECT_ID/locations/us-west1/authzExtensions/my-swp-content-authz-ext"
      EOF
      

      콘텐츠 승인 정책의 경우 policyProfile 값이 CONTENT_AUTHZ으로 설정됩니다. 이 값은 맞춤 정책 제공자가 본문 처리를 포함한 요청 및 응답 트래픽을 처리함을 나타냅니다.

    2. 승인 정책을 프로젝트로 가져옵니다. 다음 샘플 값과 함께 gcloud beta network-security authz-policies import 명령어를 사용합니다.

      gcloud beta network-security authz-policies import my-swp-content-authz-policy \
          --source=swp-content-authz-policy.yaml \
          --location=us-west1
      

보안 웹 프록시 확장 프로그램의 제한사항

Secure Web Proxy 확장 프로그램의 제한사항에 관한 자세한 내용은 다음 섹션을 참고하세요.

다음 단계