Service Extensions를 사용하면 Secure Web Proxy 확장 프로그램이 승인 서비스에 콜아웃을 전송하여 트래픽 처리 경로에 맞춤 처리를 삽입할 수 있습니다. 이 페이지에서는 승인 정책을 사용하여 Secure Web Proxy 확장 프로그램을 구성하는 방법을 설명합니다.
Secure Web Proxy 확장 프로그램은 요청 및 콘텐츠 승인 정책으로 구성되며 승인 확장 프로그램으로 구성됩니다. 요청 승인 정책을 기반으로 하는 확장 프로그램은 콘텐츠 승인 정책을 기반으로 하는 확장 프로그램보다 먼저 실행되도록 구성됩니다.
보안 웹 프록시 확장 프로그램의 작동 방식에 관한 자세한 내용은 보안 웹 프록시 확장 프로그램 개요를 참고하세요.
승인 확장 프로그램과 관련된 한도에 대한 자세한 내용은 할당량 및 한도 페이지를 참고하세요.
시작하기 전에
확장에 사용할 위치(예:
us-west1)에swp-instance1라는 Secure Web Proxy 인스턴스를 만들고 설정하고 배포합니다.프록시는 전송 계층 보안 (TLS) 검사가 사용 설정된 게이트웨이 보안 정책과 함께 배포해야 합니다.
다음 샘플 서비스를 구성합니다.
요청 승인 정책의 확장 프로그램을 구성하는 데 사용되는 승인 서비스입니다. 이 예시에서는 FQDN이
request-authz.com이라고 가정합니다.콘텐츠 승인 정책의 확장 프로그램을 구성하는 데 사용되는 정리 서비스입니다. 이 예시에서는 FQDN이
content-sdp.com이라고 가정합니다.
Secure Web Proxy 확장 프로그램은 정규화된 도메인 이름(FQDN)만 타겟팅할 수 있습니다. 확장에 FQDN 타겟을 사용하면 데이터 플레인은 TLS 암호화가 적용된 HTTP2 프로토콜을 사용하여 포트 443의 엔드포인트와 통신합니다. 하지만 데이터 플레인은 서버 인증서를 검증하지 않습니다. 보안상의 이유로 확인된 엔드포인트가 VPC 내에 있는지 확인합니다.
요청 승인 정책의 확장 프로그램 구성
다음 예시에서는 us-west1의 Secure Web Proxy 인스턴스에 요청 승인 정책을 적용하는 승인 확장 프로그램을 구성하는 방법을 보여줍니다. 이 정책에 따라 트래픽이 대상 example.com/mcp에 도달하려면 특정 주체로부터 상호 TLS 인증을 통과해야 합니다.
gcloud
승인 확장 프로그램을 구성합니다.
확장 프로그램을
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 EOFSecure Web Proxy 확장 프로그램은 리전별 리소스이며 Secure Web Proxy 인스턴스와 동일한 리전에 있어야 합니다.
요청 승인 정책의 경우
ext_proc프로토콜도 지원되지만 콜아웃이ext_authz프로토콜을 사용하도록wireFormat값을EXT_AUTHZ_GRPC로 설정할 수 있습니다.기본적으로
failOpen은false로 설정되어 있습니다. 확장 프로그램이 제한 시간을 초과하거나 실패하면 요청 처리가 중지됩니다. 이 기본 옵션은 가용성보다 보안 또는 무결성을 우선시할 때 사용하는 것이 좋습니다.승인 확장 프로그램을 가져옵니다. 다음 샘플 값과 함께
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
동일한 프로젝트에서 확장 프로그램으로 승인 정책을 구성합니다.
example.com/mcp에 대한 모든 요청에 대해 정책은 특정 주체의 상호 TLS 인증을 요구하고 승인 결정을 승인 확장 프로그램my-swp-authz-request-ext에 추가로 위임합니다.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" EOFPROJECT_ID를 프로젝트 ID로 바꿉니다.요청 승인 정책의 경우
policyProfile값은REQUEST_AUTHZ이어야 합니다.CUSTOM작업은 확장 프로그램이 프록시와 연결되어 있음을 나타냅니다.승인 정책 리소스에 대한 자세한 내용은
authzPolicy참조 문서를 참고하세요.승인 정책을 프로젝트로 가져옵니다. 다음 샘플 값과 함께
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
승인 확장 프로그램을 구성합니다.
확장 프로그램을
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프로토콜을 사용합니다.승인 확장 프로그램을 가져옵니다. 다음 샘플 값과 함께
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
확장 프로그램으로 승인 정책을 구성합니다.
확장 프로그램
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으로 설정됩니다. 이 값은 맞춤 정책 제공자가 본문 처리를 포함한 요청 및 응답 트래픽을 처리함을 나타냅니다.승인 정책을 프로젝트로 가져옵니다. 다음 샘플 값과 함께
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 확장 프로그램의 제한사항에 관한 자세한 내용은 다음 섹션을 참고하세요.
모든 확장 프로그램에 적용되는 제한사항은 확장 프로그램의 제한사항을 참고하세요.
콜아웃에 적용되는 제한사항은 콜아웃 제한사항을 참고하세요.
다음 단계
- Service Extensions GitHub 저장소에서
ext_proc서버의 Python 및 Go 샘플을 확인하세요. - 확장 프로그램 관리하기