En esta página se muestra cómo configurar políticas de autorización para balanceadores de carga de aplicaciones.
Antes de empezar
- Familiarízate con la introducción general sobre la política de autorización.
-
- API Network Security
- API Network Services
Configurar el balanceador de carga
Si no has creado un balanceador de carga, consulta las siguientes páginas para configurar el balanceador de carga de aplicaciones que prefieras:
- Para crear un balanceador de carga de aplicación externo global, consulta Configurar un balanceador de carga de aplicación externo global con back-ends de grupo de instancias de máquina virtual.
Para crear un balanceador de carga de aplicación externo regional, consulta Configurar un balanceador de carga de aplicación externo regional con back-ends de grupo de instancias de máquina virtual.
Para crear un balanceador de carga de aplicación interno regional, consulta Configurar un balanceador de carga de aplicación interno regional con backends de grupos de instancias de máquina virtual.
- Para crear un balanceador de carga de aplicación interno entre regiones, consulta Configurar un balanceador de carga de aplicación interno entre regiones con backends de grupos de instancias de máquina virtual.
Crear y asociar cuentas de servicio o etiquetas a Google Cloud máquinas virtuales
En el caso de los balanceadores de carga de aplicaciones internos, puedes aplicar políticas de autorización basadas en cuentas de servicio o etiquetas asociadas a diferentes Google Cloud recursos.
En este documento se explica cómo crear una política de autorización basada en cuentas de servicio o etiquetas asociadas a instancias de Google Cloud máquina virtual (VM). Cualquier solicitud que proceda de una máquina virtual cliente vinculada a una cuenta de servicio o etiqueta específica se puede permitir, denegar o delegar en un servicio externo. En la sección Política de autorización basada en cuentas de servicio o etiquetas de este documento se proporciona un ejemplo de una política de autorización que usa cuentas de servicio y etiquetas para aplicar el control de acceso.
No se pueden aplicar políticas de autorización basadas en cuentas de servicio o etiquetas a balanceadores de carga de aplicaciones externos.
Asociar cuentas de servicio a máquinas virtuales de cliente
Para obtener instrucciones sobre cómo asociar una cuenta de servicio a una instancia de VM, consulta los siguientes documentos:
- Para configurar una cuenta de servicio durante la creación de una VM, consulta el artículo Crear una VM que use una cuenta de servicio gestionada por el usuario.
- Para configurar una cuenta de servicio en una máquina virtual, consulta Cambiar la cuenta de servicio vinculada.
Asigna etiquetas a la plantilla del grupo de instancias
Antes de vincular una etiqueta con la plantilla del grupo de instancias, debes crear una clave y un valor de etiqueta. Cuando crees una etiqueta, asígnale un GCE_FIREWALL
propósito Google Cloud .Las funciones de redes, como el proxy web seguro y las políticas de autorización, requieren que se aplique el GCE_FIREWALL
propósito Google Cloud a la etiqueta.
Crear una clave y un valor de etiqueta
Para crear etiquetas, necesitas el rol Administrador de etiquetas (roles/resourcemanager.tagAdmin
).
Consola
En la Google Cloud consola, ve a la página Etiquetas.
Haz clic en
Crear.En el campo Descripción de la clave de etiqueta, introduce una descripción.
Seleccione la casilla Para usar con el cortafuegos de red.
En la lista Proyecto, selecciona el Google Cloud proyecto en el que quieras crear la etiqueta.
En el campo Red, selecciona
LB_NETWORK
.Haz clic en
Añadir valor.En el campo Valor de la etiqueta, introduce
TAG_VALUE
. El valor debe ser numérico.En el campo Descripción del valor de la etiqueta, introduce una descripción.
Cuando haya terminado de añadir valores de etiqueta, haga clic en Crear clave de etiqueta.
gcloud
Crea la clave de la etiqueta.
gcloud resource-manager tags keys create TAG_KEY \ --parent=organizations/ORG_ID \ --purpose=GCE_FIREWALL \ --purpose-data=network=LB_NETWORK
Haz los cambios siguientes:
TAG_KEY
: el nombre de la clave de la etiqueta.ORG_ID
: el ID de tu organización.LB_NETWORK
: el nombre de tu red de VPC.
Añade el valor de la etiqueta a la clave de etiqueta numérica.
gcloud resource-manager tags values create TAG_VALUE \ --parent=ORG_ID/TAG_KEY
Sustituye
TAG_VALUE
por un valor de etiqueta numérica.
Vincular la etiqueta a la plantilla del grupo de instancias
Los administradores de etiquetas pueden vincular etiquetas a instancias de VM concretas o a la plantilla del grupo de instancias, así como adjuntar el valor de la etiqueta a los backends de las VMs o de la plantilla.
Para vincular etiquetas, necesitas el rol de usuario de etiquetas (roles/resourcemanager.tagUser
).
Define el prefijo del nombre completo de tu proyecto y tu zona:
FULL_NAME_PREFIX=//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/
Haz los cambios siguientes:
PROJECT_ID
: el ID de tu proyecto.ZONE
: la zona en la que se encuentra el grupo de instancias gestionado.
Obtén el ID de la plantilla del grupo de instancias:
TEMPLATE_ID=$(gcloud compute instance-templates describe TEMPLATE_NAME --region=LOCATION --format='value(id)')
Haz los cambios siguientes:
TEMPLATE_NAME
: el nombre de la plantilla del grupo de instancias.LOCATION
: tu Google Cloud región.
Concatenar los valores de
FULL_NAME_PREFIX
yTEMPLATE_ID
:PARENT="$FULL_NAME_PREFIX$TEMPLATE_ID" echo $PARENT
Crea los enlaces.
gcloud resource-manager tags bindings create \ --location LOCATION \ --tag-value ORG_ID/TAG_KEY/TAG_VALUE \ --parent PARENT
Haz los cambios siguientes:
ORG_ID
: el ID de tu organización.LOCATION
: tu Google Cloud región.TAG_KEY
: el nombre de tu clave de etiqueta segura.TAG_VALUE
: valor numérico de la etiqueta.
Crear una política de autorización
Para crear una política de autorización, crea un archivo YAML
en el que se definen el destino y las reglas, y, a continuación, importa el archivo con el comando
gcloud beta network-security authz-policies
.
En esta sección se proporcionan instrucciones para crear diferentes tipos de políticas de autorización asociadas a la regla de reenvío de un balanceador de carga.
Política de autorización para denegar solicitudes
En esta sección se proporciona un ejemplo de política de autorización que deniega solicitudes basadas en principales de certificados de cliente.
Global y entre regiones
Si usas un balanceador de carga de aplicación externo global o un balanceador de carga de aplicación interno entre regiones, sigue estos pasos para crear e importar una política de autorización:
Crea un archivo YAML de política de autorización para denegar determinadas solicitudes.
En el siguiente ejemplo se crea un archivo
authz-policy-deny.yaml
para la regla de reenvíoLB_FORWARDING_RULE
en la ubicaciónglobal
. Esta política deniega el acceso a la ruta de URL/api/payments
a los clientes que tenganwww.example.com
en los SANs del nombre de DNS de su certificado de cliente.$ cat >authz-policy-deny.yaml <<EOF name: my-authz-policy-deny target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: - principals: - principalSelector: CLIENT_CERT_DNS_NAME_SAN exact: "www.example.com" to: operations: - paths: - prefix: "/api/payments" action: DENY EOF
Haz los cambios siguientes:
LB_SCHEME
: tu esquema de balanceo de carga. En el caso del balanceador de carga de aplicación externo global, define el esquema comoEXTERNAL_MANAGED
. En el caso de los balanceadores de carga de aplicación internos entre regiones, define el esquema comoINTERNAL_MANAGED
.PROJECT_ID
: el ID de tu proyecto de Google Cloud .LB_FORWARDING_RULE
: el nombre de la regla de reenvío del balanceador de carga.
Crea una política de autorización e importa el archivo YAML.
El siguiente comando de ejemplo importa el archivo de política creado anteriormente y crea una política de autorización:
gcloud beta network-security authz-policies import my-authz-policy-deny \ --source=authz-policy-deny.yaml \ --location=global
Regional
Si usas un balanceador de carga de aplicaciones externo regional o un balanceador de carga de aplicaciones interno regional, sigue estos pasos para crear e importar una política de autorización:
Crea un archivo YAML de política de autorización para denegar determinadas solicitudes.
En el siguiente ejemplo se crea un archivo
authz-policy-deny.yaml
para la regla de reenvíoLB_FORWARDING_RULE
en una regiónGoogle Cloud . Esta política deniega el acceso a la ruta de URL/api/payments
a los clientes que tenganwww.example.com
en los SANs del nombre de DNS de su certificado de cliente.$ cat >authz-policy-deny.yaml <<EOF name: my-authz-policy-deny target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: - principals: - principalSelector: CLIENT_CERT_DNS_NAME_SAN exact: "www.example.com" to: operations: - paths: - prefix: "/api/payments" action: DENY EOF
Haz los cambios siguientes:
LB_SCHEME
: tu esquema de balanceo de carga. En el caso de los balanceadores de carga de aplicación externos regionales, define el esquema comoEXTERNAL_MANAGED
. En el caso de los balanceadores de carga de aplicaciones internos regionales, define el esquema comoINTERNAL_MANAGED
.PROJECT_ID
: el ID de tu proyecto de Google Cloud .LOCATION
: tu Google Cloud región.LB_FORWARDING_RULE
: el nombre de la regla de reenvío del balanceador de carga.
Crea una política de autorización e importa el archivo YAML.
El siguiente comando de ejemplo importa el archivo de política creado anteriormente y crea una política de autorización en la región
LOCATION
:gcloud beta network-security authz-policies import my-authz-policy-deny \ --source=authz-policy-deny.yaml \ --location=LOCATION
Política de autorización para permitir solicitudes
En esta sección se proporciona un ejemplo de política de autorización que permite solicitudes procedentes de intervalos de direcciones IP específicos.
Global y entre regiones
Si usas un balanceador de carga de aplicación externo global o un balanceador de carga de aplicación interno entre regiones, sigue estos pasos para crear e importar una política de autorización:
Crea un archivo YAML de política de autorización para permitir determinadas solicitudes.
En el siguiente ejemplo se crea un archivo
authz-policy-allow.yaml
para la regla de reenvíoLB_FORWARDING_RULE
en la ubicaciónglobal
. La política permite que los clientes con direcciones IP del intervalo10.0.0.1/24
accedan a la ruta de URL/api/payments
.$ cat >authz-policy-allow.yaml <<EOF name: my-authz-policy-allow target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: - ipBlocks: - prefix: "10.0.0.1" length: "24" to: operations: - paths: - exact: "/api/payments" action: ALLOW EOF
Haz los cambios siguientes:
LB_SCHEME
: tu esquema de balanceo de carga. En el caso del balanceador de carga de aplicación externo global, define el esquema comoEXTERNAL_MANAGED
. En el caso de los balanceadores de carga de aplicación internos entre regiones, define el esquema comoINTERNAL_MANAGED
.PROJECT_ID
: el ID de tu proyecto de Google Cloud .LB_FORWARDING_RULE
: el nombre de la regla de reenvío del balanceador de carga.
Crea una política de autorización e importa el archivo YAML.
El siguiente comando de ejemplo importa el archivo de política creado anteriormente y crea una política de autorización:
gcloud beta network-security authz-policies import my-authz-policy-allow \ --source=authz-policy-allow.yaml \ --location=global
Regional
Si usas un balanceador de carga de aplicaciones externo regional o un balanceador de carga de aplicaciones interno regional, sigue estos pasos para crear e importar una política de autorización:
Crea un archivo YAML de política de autorización para permitir determinadas solicitudes.
En el siguiente ejemplo se crea un archivo
authz-policy-allow.yaml
para la regla de reenvíoLB_FORWARDING_RULE
en una región Google Cloud específica. La política permite que los clientes con direcciones IP del intervalo10.0.0.1/24
accedan a la ruta de URL/api/payments
.$ cat >authz-policy-allow.yaml <<EOF name: my-authz-policy-allow target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: - ipBlocks: - prefix: "10.0.0.1" length: "24" to: operations: - paths: - exact: "/api/payments" action: ALLOW EOF
Haz los cambios siguientes:
LB_SCHEME
: tu esquema de balanceo de carga. Si usas un balanceador de carga de aplicación externo regional, define el esquema comoEXTERNAL_MANAGED
. Si usas un balanceador de carga de aplicación interno regional, define el esquema comoINTERNAL_MANAGED
.PROJECT_ID
: el ID de tu proyecto de Google Cloud .LOCATION
: tu Google Cloud región.LB_FORWARDING_RULE
: el nombre de la regla de reenvío del balanceador de carga.
Crea una política de autorización e importa el archivo YAML.
El siguiente comando de ejemplo importa el archivo de política creado anteriormente y crea una política de autorización en la región
LOCATION
:gcloud beta network-security authz-policies import my-authz-policy-allow \ --source=authz-policy-allow.yaml \ --location=LOCATION
Política de autorización basada en cuentas de servicio o etiquetas
Solo puedes aplicar políticas de autorización basadas en cuentas de servicio o etiquetas en balanceadores de carga de aplicaciones internos. El tráfico procedente de una VM de cliente vinculada a una cuenta de servicio o etiqueta específica se puede permitir, denegar o delegar en un servicio externo.
Si quieres crear y adjuntar cuentas de servicio o etiquetas a máquinas virtuales, consulta la sección Crear y adjuntar cuentas de servicio o etiquetas a máquinas virtuales de este documento. Google Cloud Google Cloud
Cuenta de servicio
Crea un archivo YAML de política de autorización para denegar determinadas solicitudes.
En el siguiente ejemplo se crea un archivo
authz-policy-deny.yaml
para la regla de reenvíoLB_FORWARDING_RULE
de un balanceador de carga de aplicaciones interno regional. La política se ha configurado para denegar las solicitudes de cualquier máquina virtual cliente con la cuenta de serviciomy-sa-123@PROJECT_ID.iam.gserviceaccount.com
para acceder a la ruta/api/payments
.$ cat >authz-policy-deny.yaml <<EOF name: my-authz-policy-deny target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: - resources: - iamServiceAccount: exact: "my-sa-123@PROJECT_ID.iam.gserviceaccount.com" to: operations: - paths: - prefix: "/api/payments" action: DENY EOF
Haz los cambios siguientes:
LB_SCHEME
: tu esquema de balanceo de carga. En el caso de un balanceador de carga de aplicaciones interno regional, define el esquema comoINTERNAL_MANAGED
.PROJECT_ID
: el ID de tu proyecto de Google Cloud .LOCATION
: tu Google Cloud región.LB_FORWARDING_RULE
: el nombre de la regla de reenvío del balanceador de carga.
Crea una política de autorización e importa el archivo YAML.
El siguiente comando de ejemplo importa el archivo de política creado anteriormente y crea una política de autorización en la región Google Cloud especificada.
gcloud beta network-security authz-policies import my-authz-policy-deny \ --source=authz-policy-deny.yaml \ --location=LOCATION
Haz los cambios siguientes:
LOCATION
: tu Google Cloud región.
Etiqueta
Crea un archivo YAML de política de autorización para permitir determinadas solicitudes.
En el siguiente ejemplo se crea un archivo
authz-policy-allow.yaml
para la regla de reenvíoLB_FORWARDING_RULE
de un balanceador de carga de aplicación interno regional. La política solo permite que las solicitudes que procedan de una máquina virtual con la etiqueta de recursoTAG_VALUE
accedan a la ruta de URL/api/payments
.$ cat >authz-policy-allow.yaml <<EOF name: my-authz-policy-allow target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: resources: - tagValueIdSet: - ids: "TAG_VALUE" to: operations: - paths: - exact: "/api/payments" action: ALLOW EOF
Haz los cambios siguientes:
LB_SCHEME
: tu esquema de balanceo de carga. En el caso de un balanceador de carga de aplicaciones interno regional, define el esquema comoINTERNAL_MANAGED
.PROJECT_ID
: el ID de tu proyecto de Google Cloud .LOCATION
: tu Google Cloud región.LB_FORWARDING_RULE
: el nombre de la regla de reenvío del balanceador de carga.
Crea una política de autorización e importa el archivo YAML.
El siguiente comando de ejemplo importa el archivo de política creado anteriormente y crea una política de autorización en la regiónGoogle Cloud especificada:
gcloud beta network-security authz-policies import my-authz-policy-allow \ --source=authz-policy-allow.yaml \ --location=LOCATION
Haz los cambios siguientes:
LOCATION
: tu Google Cloud región.
Política de autorización para delegar en una extensión de servicio
Antes de empezar, configura un motor de autorización externo. Para obtener más información sobre las extensiones de servicio, consulta la descripción general de las llamadas de atención de Cloud Load Balancing.
Global y entre regiones
Si usas un balanceador de carga de aplicación externo global o un balanceador de carga de aplicación interno entre regiones, sigue estos pasos para crear e importar una política de autorización:
Crea un archivo de política de autorización para delegar determinadas solicitudes en un servicio externo.
En el siguiente ejemplo se crea un archivo
authz-policy-custom.yaml
para la regla de reenvíoLB_FORWARDING_RULE
en la ubicaciónglobal
. La política llama a la extensiónAUTHZ_EXTENSION
para todo el tráfico a la ruta de URL/api/payments
cuando la solicitud contiene un encabezadoAuthorization
no vacío.$ cat >authz-policy-custom.yaml <<EOF name: my-authz-policy-custom target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules/LB_FORWARDING_RULE" httpRules: - to: operations: - paths: - exact: "/api/payments" when: 'request.headers["Authorization"] != ""' action: CUSTOM customProvider: authzExtension: resources: - "https://networkservices.googleapis.com/v1/projects/PROJECT_ID/locations/global/authzExtensions/AUTHZ_EXTENSION" EOF
Haz los cambios siguientes:
LB_SCHEME
: tu esquema de balanceo de carga. En el caso del balanceador de carga de aplicación externo global, define el esquema comoEXTERNAL_MANAGED
. En el caso de los balanceadores de carga de aplicación internos entre regiones, define el esquema comoINTERNAL_MANAGED
.PROJECT_ID
: el ID de tu proyecto de Google Cloud .LB_FORWARDING_RULE
: el nombre de la regla de reenvío del balanceador de carga.AUTHZ_EXTENSION
: el nombre de la extensión de autorización.
Crea una política de autorización e importa el archivo YAML.
El siguiente comando de ejemplo importa el archivo de política creado anteriormente y crea una política de autorización:
gcloud beta network-security authz-policies import my-authz-policy-custom \ --source=authz-policy-custom.yaml \ --location=global
Regional
Si usas un balanceador de carga de aplicaciones externo regional o un balanceador de carga de aplicaciones interno regional, sigue estos pasos para crear e importar una política de autorización:
Crea un archivo YAML de política de autorización para delegar determinadas solicitudes en un servicio externo.
En el siguiente ejemplo se crea un archivo
authz-policy-custom.yaml
para la regla de reenvíoLB_FORWARDING_RULE
en una región Google Cloud de un balanceador de carga de aplicación interno regional. La política llama a la extensiónAUTHZ_EXTENSION
para todo el tráfico a la ruta de URL/api/payments
cuando la solicitud contiene un encabezadoAuthorization
no vacío.$ cat >authz-policy-custom.yaml <<EOF name: my-authz-policy-custom target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE" httpRules: - to: operations: - paths: - exact: "/api/payments" when: 'request.headers["Authorization"] != ""' action: CUSTOM customProvider: authzExtension: resources: - "https://networkservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authzExtensions/AUTHZ_EXTENSION" EOF
Haz los cambios siguientes:
LB_SCHEME
: tu esquema de balanceo de carga. En el caso de los balanceadores de carga de aplicación externos regionales, define el esquema comoEXTERNAL_MANAGED
. En el caso de los balanceadores de carga de aplicaciones internos regionales, define el esquema comoINTERNAL_MANAGED
.PROJECT_ID
: el ID de tu proyecto de Google Cloud .LOCATION
: tu Google Cloud región.LB_FORWARDING_RULE
: el nombre de la regla de reenvío del balanceador de carga.AUTHZ_EXTENSION
: el nombre de la extensión de autorización.
Crea una política de autorización e importa el archivo YAML.
El siguiente comando de ejemplo importa el archivo de política creado anteriormente y crea una política de autorización en la región
LOCATION
:gcloud beta network-security authz-policies import my-authz-policy-custom \ --source=authz-policy-custom.yaml \ --location=LOCATION
Probar una política de autorización
Para probar una política de autorización, envía tráfico al balanceador de carga. Para obtener más información, consulta las siguientes páginas:
- Si usas un balanceador de carga de aplicación externo global, consulta Probar el tráfico enviado a tus instancias.
Si usas un balanceador de carga de aplicación externo regional, consulta Probar el balanceador de carga.
Si usas un balanceador de carga de aplicación interno regional, consulta Probar el balanceador de carga.
- Si usas un balanceador de carga de aplicación interno entre regiones, consulta Probar el balanceador de carga.
Información sobre los registros de políticas de autorización en Cloud Logging
Para saber cómo se registran las políticas de autorización cuando se permite o se deniega una solicitud, consulta las secciones siguientes.
La solicitud no se ajusta a las políticas de ALLOW
ni a las de DENY
Cuando una solicitud no coincide con las políticas ALLOW
ni DENY
, la política DENY
permite la solicitud y la registra como allowed_as_no_deny_policies_matched_request
. Por el contrario, la política ALLOW
rechaza la solicitud y la registra como denied_as_no_allow_policies_matched_request
. Como una de las políticas deniega la solicitud, esta se deniega.
Si usas un balanceador de carga de aplicación externo global,
statusDetails
se define comodenied_by_authz_policy
en el registro. Consulta el siguiente ejemplo:{ httpRequest: {8} insertId: "example-id" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" authzPolicyInfo: { policies: [ 0: { details: "allowed_as_no_deny_policies_matched_request" result: "ALLOWED" } 1: { details: "denied_as_no_allow_policies_matched_request" result: "DENIED" } ] result: "DENIED" } backendTargetProjectNumber: "projects/12345567" remoteIp: "00.100.11.104" statusDetails: "denied_by_authz_policy" } logName: "projects/example-project/logs/requests" receiveTimestamp: "2024-08-28T15:33:56.046651035Z" resource: {2} severity: "WARNING" spanId: "3e1a09a8e5e3e14d" timestamp: "2024-08-28T15:33:55.355042Z" trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509" }
Si usas un balanceador de carga de aplicación interno regional, un balanceador de carga de aplicación externo regional o un balanceador de carga de aplicación interno entre regiones,
proxyStatus
se define comoerror=\"http_request_error\"; details=\"denied_by_authz_policy\"
en el registro. Consulta el siguiente ejemplo:{ httpRequest: {8} insertId: "example-id" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" authzPolicyInfo: { policies: [ 0: { details: "allowed_as_no_deny_policies_matched_request" result: "ALLOWED" } 1: { details: "denied_as_no_allow_policies_matched_request" result: "DENIED" } ] result: "DENIED" } backendTargetProjectNumber: "projects/12345567" remoteIp: "00.100.11.104" proxyStatus: "error=\"http_request_error\"; details=\"denied_by_authz_policy\"" } logName: "projects/example-project/logs/requests" receiveTimestamp: "2024-08-28T15:33:56.046651035Z" resource: {2} severity: "WARNING" spanId: "3e1a09a8e5e3e14d" timestamp: "2024-08-28T15:33:55.355042Z" trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509" }
La solicitud cumple la política de DENY
Cuando una solicitud coincide con la política DENY
, se deniega y se registra la política que ha denegado la solicitud.
Si usas un balanceador de carga de aplicación externo global,
statusDetails
se define comodenied_by_authz_policy
en el registro y el nombre de la política que ha denegado la solicitud se registra enpolicies
. Consulta el siguiente ejemplo:{ httpRequest: {8} insertId: "example-id" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" authzPolicyInfo: { policies: [ 0: { details: "name: "projects/12345567/locations/global/authzPolicies/deny-authz-policy-test"" result: "DENIED" } ] result: "DENIED" } backendTargetProjectNumber: "projects/12345567" cacheDecision: [2] remoteIp: "00.100.11.104" statusDetails: "denied_by_authz_policy" } logName: "projects/example-project/logs/requests" receiveTimestamp: "2024-08-28T15:33:56.046651035Z" resource: {2} severity: "WARNING" spanId: "3e1a09a8e5e3e14d" timestamp: "2024-08-28T15:33:55.355042Z" trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509" }
Si usas un balanceador de carga de aplicación interno regional, un balanceador de carga de aplicación externo regional o un balanceador de carga de aplicación interno entre regiones,
proxyStatus
se define comoerror=\"http_request_error\"; details=\"denied_by_authz_policy\"
y el nombre de la política se registra enpolicies
. Consulta el siguiente ejemplo:{ httpRequest: {8} insertId: "example-id" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" authzPolicyInfo: { policies: [ 0: { details: "name: "projects/12345567/locations/$REGION/authzPolicies/deny-authz-policy-test"" result: "DENIED" } ] result: "DENIED" } backendTargetProjectNumber: "projects/12345567" remoteIp: "00.100.11.104" proxyStatus: "error=\"http_request_error\"; details=\"denied_by_authz_policy\"" } logName: "projects/example-project/logs/requests" receiveTimestamp: "2024-08-28T15:33:56.046651035Z" resource: {2} severity: "WARNING" spanId: "3e1a09a8e5e3e14d" timestamp: "2024-08-28T15:33:55.355042Z" trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509" }
La solicitud no cumple la política de DENY
, pero sí la de ALLOW
Si una solicitud no cumple la política de DENY
, pero sí la de ALLOW
, se permite. En el registro, esta acción se registra como
allowed_as_no_deny_policies_matched_request
para la política DENY
. También se registra la política que ha permitido la solicitud.
Si usas un balanceador de carga de aplicación externo global, no hay
statusDetails
en el registro. La política que ha permitido la solicitud también se registra enpolicies
. Consulta el siguiente ejemplo:{ httpRequest: {8} insertId: "example-id" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" authzPolicyInfo: { policies: [ 0: { details: "allowed_as_no_deny_policies_matched_request" result: "ALLOWED" } 1: { details: "name: "projects/12345567/locations/global/authzPolicies/allow-authz-policy-test"" result: "ALLOWED" } ] result: "ALLOWED" } backendTargetProjectNumber: "projects/12345567" cacheDecision: [2] remoteIp: "00.100.11.104" } logName: "projects/example-project/logs/requests" receiveTimestamp: "2024-08-28T15:33:56.046651035Z" resource: {2} severity: "WARNING" spanId: "3e1a09a8e5e3e14d" timestamp: "2024-08-28T15:33:55.355042Z" trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509" }
Si usas un balanceador de carga de aplicación interno regional, un balanceador de carga de aplicación externo regional o un balanceador de carga de aplicación interno entre regiones, no hay ningún campo
proxyStatus
en el registro. La política que ha permitido la solicitud también se registra enpolicies
. Consulta el siguiente ejemplo:{ httpRequest: {8} insertId: "example-id" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" authzPolicyInfo: { policies: [ 0: { details: "allowed_as_no_deny_policies_matched_request" result: "ALLOWED" } 1: { details: "name: "projects/12345567/locations/$REGION/authzPolicies/allow-authz-policy-test"" result: "ALLOWED" } ] result: "ALLOWED" } backendTargetProjectNumber: "projects/12345567" cacheDecision: [2] remoteIp: "00.100.11.104" } logName: "projects/example-project/logs/requests" receiveTimestamp: "2024-08-28T15:33:56.046651035Z" resource: {2} severity: "WARNING" spanId: "3e1a09a8e5e3e14d" timestamp: "2024-08-28T15:33:55.355042Z" trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509" }