Service Extensions permite que las extensiones de Secure Web Proxy envíen llamadas a los servicios de autorización para insertar procesamiento personalizado en la ruta de procesamiento del tráfico. En esta página, se describe cómo configurar extensiones de Secure Web Proxy con políticas de autorización.
Las extensiones de Secure Web Proxy se configuran con políticas de autorización de solicitudes y contenido como extensiones de autorización. Las extensiones basadas en políticas de autorización de solicitudes se configuran para ejecutarse antes que las basadas en políticas de autorización de contenido.
Para obtener información sobre cómo funcionan las extensiones de Secure Web Proxy, consulta la descripción general de las extensiones de Secure Web Proxy.
Para obtener información sobre los límites relacionados con las extensiones de autorización, consulta la página Cuotas y límites.
Antes de comenzar
Crea, configura e implementa una instancia de Secure Web Proxy llamada
swp-instance1en una ubicación que desees usar para la extensión, por ejemplo,us-west1.El proxy debe implementarse con una política de seguridad de la puerta de enlace con la inspección de seguridad de la capa de transporte (TLS) habilitada.
Configura los siguientes servicios de ejemplo:
Es un servicio de autorización que se usará para configurar una extensión para una política de autorización de solicitudes. Para este ejemplo, supongamos que el FQDN es
request-authz.com.Es un servicio de saneamiento que se usará para configurar una extensión para una política de autorización de contenido. Para este ejemplo, supongamos que el FQDN es
content-sdp.com.
Las extensiones de Secure Web Proxy solo pueden segmentarse para nombres de dominio completamente calificados (FQDN). Cuando usas destinos de FQDN para las extensiones, el plano de datos usa el protocolo HTTP/2 con encriptación TLS para comunicarse con los extremos en el puerto 443. Sin embargo, el plano de datos no valida el certificado del servidor. Por motivos de seguridad, asegúrate de que los extremos resueltos estén dentro de la VPC.
Configura una extensión para una política de autorización de solicitudes
En el siguiente ejemplo, se muestra cómo configurar una extensión de autorización que aplica una política de autorización de solicitudes a la instancia de Secure Web Proxy en us-west1. La política requiere que el tráfico pase la autenticación TLS mutua de una entidad específica antes de que se le permita llegar al destino, example.com/mcp.
gcloud
Configura la extensión de autorización.
Define la extensión en un archivo YAML que asocie la extensión con
request-authz.com. Usa los valores de muestra proporcionados.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 EOFLas extensiones de Secure Web Proxy son recursos regionales y deben estar en la misma región que tu instancia de Secure Web Proxy.
En el caso de las políticas de autorización de solicitudes, el valor de
wireFormatpuede serEXT_AUTHZ_GRPCpara que la llamada use el protocoloext_authz, aunque también se admite el protocoloext_proc.De forma predeterminada,
failOpense configura comofalse. Si la extensión agota el tiempo de espera o falla, se detiene el procesamiento de la solicitud. Esta opción predeterminada es preferible cuando se prioriza la seguridad o la integridad por sobre la disponibilidad.Importa la extensión de autorización. Usa el comando
gcloud beta service-extensions authz-extensions importcon los siguientes valores de muestra.gcloud beta service-extensions authz-extensions import my-swp-request-authz-ext \ --source=swp-request-authz-extension.yaml \ --location=us-west1
En el mismo proyecto, configura una política de autorización con la extensión.
Para cualquier solicitud a
example.com/mcp, la política requiere autenticación de TLS mutua de una principal específica y delega aún más la decisión de autorización a la extensión de autorización,my-swp-authz-request-ext.Define una política de autorización que asocie la extensión
my-swp-authz-request-extcon el proxy de Secure Web Proxy,swp-instance1. Usa los valores de muestra proporcionados.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" EOFReemplaza
PROJECT_IDpor el ID del proyecto.En el caso de las políticas de autorización de solicitudes, el valor de
policyProfiledebe serREQUEST_AUTHZ.La acción
CUSTOMindica que hay una extensión asociada al proxy.Para obtener más información sobre un recurso de política de autorización, consulta la documentación de referencia de
authzPolicy.Importa la política de autorización al proyecto. Usa el comando
gcloud beta network-security authz-policies importcon los siguientes valores de muestra.gcloud beta network-security authz-policies import my-swp-request-authz-policy \ --source=swp-request-authz-policy.yaml \ --location=us-west1
Configura una extensión para una política de autorización de contenido
En el siguiente ejemplo, se muestra cómo configurar una extensión de autorización que aplica una política de autorización de contenido a la instancia de Secure Web Proxy en us-west1. La política requiere un servicio de saneamiento de contenido para realizar una inspección profunda de las cargas útiles de tu aplicación y permitir o rechazar solicitudes, o bien mutar las solicitudes y respuestas, según sea necesario.
gcloud
Configura la extensión de autorización.
Define la extensión en un archivo YAML que asocie la extensión con
content-sdp.com. Usa los valores de muestra proporcionados.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" EOFEn el caso de las políticas de autorización de contenido, el valor de
policyProfiledebe serCONTENT_AUTHZ.En el caso de las políticas de
CONTENT_AUTHZ, no es necesario establecer el valor dewireFormatde forma explícita comoEXT_PROC_GRPC. De forma predeterminada, la leyenda usa el protocoloext_proc.Importa la extensión de autorización. Usa el comando
gcloud beta service-extensions authz-extensions importcon los siguientes valores de muestra.gcloud beta service-extensions authz-extensions import my-swp-content-authz-ext \ --source=swp-content-authz-extension.yaml \ --location=us-west1
Configura una política de autorización con la extensión.
Define una política de autorización que asocie la extensión
my-swp-content-authz-extcon el proxy de Secure Web Proxy,swp-instance1. Usa los valores de muestra proporcionados.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" EOFEn el caso de las políticas de autorización de contenido, el valor de
policyProfilese establece comoCONTENT_AUTHZ. Este valor indica que el proveedor de políticas personalizadas procesa el tráfico de solicitudes y respuestas, incluido el procesamiento del cuerpo.Importa la política de autorización al proyecto. Usa el comando
gcloud beta network-security authz-policies importcon los siguientes valores de muestra.gcloud beta network-security authz-policies import my-swp-content-authz-policy \ --source=swp-content-authz-policy.yaml \ --location=us-west1
Limitaciones de las extensiones de Secure Web Proxy
Consulta las siguientes secciones para obtener información sobre las limitaciones de las extensiones de Secure Web Proxy:
Para conocer las limitaciones aplicables a todas las extensiones, consulta Limitaciones de las extensiones.
Para conocer las limitaciones aplicables a los textos destacados, consulta Limitaciones de los textos destacados.
¿Qué sigue?
- Consulta ejemplos de servidores
ext_procen Python y Go en el repositorio de GitHub de Service Extensions. - Administrar extensiones