- Recurso: AuthzPolicy
- Target
- LoadBalancingScheme
- AuthzRule
- From
- RequestSource
- StringMatch
- RequestResource
- TagValueIdSet
- To
- RequestOperation
- HeaderSet
- HeaderMatch
- AuthzAction
- CustomProvider
- CloudIap
- AuthzExtension
- Métodos
Recurso: AuthzPolicy
AuthzPolicy
es un recurso que permite reenviar el tráfico a un backend de llamada diseñado para analizar el tráfico con fines de seguridad.
Representación JSON |
---|
{ "name": string, "createTime": string, "updateTime": string, "description": string, "labels": { string: string, ... }, "target": { object ( |
Campos | |
---|---|
name |
Obligatorio. Identificador. Es el nombre del recurso |
createTime |
Solo salida. Marca de tiempo cuando se creó el recurso. Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
updateTime |
Solo salida. La marca de tiempo cuando se creó el recurso. Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
description |
Opcional. Es una descripción legible por humanos del recurso. |
labels |
Opcional. Es un conjunto de etiquetas asociadas con el recurso El formato debe cumplir con los siguientes requisitos. Un objeto que contiene una lista de pares |
target |
Obligatorio. Especifica el conjunto de recursos a los que se debe aplicar esta política. |
httpRules[] |
Opcional. Es una lista de reglas HTTP de autorización que se deben hacer coincidir con la solicitud entrante. Una coincidencia de política se produce cuando al menos una regla HTTP coincide con la solicitud o cuando no se especifican reglas HTTP en la política. Se requiere al menos una regla HTTP para la acción Permitir o Denegar. Se limita a 5 reglas. |
action |
Obligatorio. puede ser una de las siguientes opciones: Cuando la acción sea Cuando la acción sea Cuando la acción sea Cuando llega una solicitud, las políticas se evalúan en el siguiente orden:
|
customProvider |
Opcional. Obligatorio si la acción es |
Objetivo
Especifica el conjunto de destinos a los que se debe aplicar esta política.
Representación JSON |
---|
{
"loadBalancingScheme": enum ( |
Campos | |
---|---|
loadBalancingScheme |
Obligatorio. Todas las puertas de enlace y reglas de reenvío a las que hacen referencia esta política y las extensiones deben compartir el mismo esquema de balanceo de cargas. Valores admitidos: |
resources[] |
Obligatorio. Una lista de referencias a las reglas de reenvío en las que se aplicará esta política. |
LoadBalancingScheme
Esquemas de balanceo de cargas compatibles con el recurso AuthzPolicy
. Los valores válidos son INTERNAL_MANAGED
y EXTERNAL_MANAGED
. Para obtener más información, consulta Descripción general de los servicios de backend.
Enums | |
---|---|
LOAD_BALANCING_SCHEME_UNSPECIFIED |
Valor predeterminado No se debe usar. |
INTERNAL_MANAGED |
Significa que se usa para el balanceador de cargas de aplicaciones interno regional o entre regiones. |
EXTERNAL_MANAGED |
Significa que se usa para el balanceo de cargas de aplicaciones externo global o regional. |
INTERNAL_SELF_MANAGED |
Indica que se usa para Cloud Service Mesh. Solo está diseñado para que lo use el controlador de GKE de CSM. |
AuthzRule
Condiciones que deben coincidir con la solicitud entrante.
Representación JSON |
---|
{ "from": { object ( |
Campos | |
---|---|
from |
Opcional. Describe las propiedades de una o más fuentes de una solicitud. |
to |
Opcional. Describe las propiedades de uno o más destinos de una solicitud. |
when |
Opcional. Es una expresión CEL que describe las condiciones que se deben cumplir para que se realice la acción. El resultado de la expresión CEL se evalúa según la semántica AND con el valor de from y to. Consulta la referencia del lenguaje CEL para obtener una lista de los atributos disponibles. |
From
Describe las propiedades de una o más fuentes de una solicitud.
Representación JSON |
---|
{ "sources": [ { object ( |
Campos | |
---|---|
sources[] |
Opcional. Describe las propiedades de las fuentes de una solicitud. Se debe especificar al menos uno de sources o notSources. Se limita a 5 fuentes. Se produce una coincidencia cuando ANY (cualquier) fuente (en sources o notSources) coincide con la solicitud. Dentro de una sola fuente, la coincidencia sigue la semántica AND en todos los campos y la semántica OR en un solo campo, es decir, se produce una coincidencia cuando ANY principal coincide AND ANY ipBlocks coinciden. |
notSources[] |
Opcional. Describe las propiedades negadas de las fuentes de solicitudes. Coincide con las solicitudes de fuentes que no coinciden con los criterios especificados en este campo. Se debe especificar al menos uno de sources o notSources. |
RequestSource
Describe las propiedades de una sola fuente.
Representación JSON |
---|
{ "principals": [ { object ( |
Campos | |
---|---|
principals[] |
Opcional. Es una lista de identidades derivadas del certificado del cliente. Este campo no coincidirá con una solicitud, a menos que la TLS mutua esté habilitada para la regla de reenvío o la puerta de enlace. Cada identidad es una cadena cuyo valor coincide con el SAN del URI, el SAN del DNS o el campo de asunto del certificado del cliente. La concordancia puede ser exacta, de prefijo, de sufijo o de subcadena. Se debe especificar uno de los siguientes valores: exact, prefix, suffix o contains. Limitado a 5 principales. |
resources[] |
Opcional. Es una lista de recursos que se deben comparar con el recurso de la VM de origen de una solicitud. Tiene un límite de 5 recursos. |
StringMatch
Determina cómo se debe hacer coincidir un valor de cadena.
Representación JSON |
---|
{ "ignoreCase": boolean, // Union field |
Campos | |
---|---|
ignoreCase |
Si es verdadero, indica que la coincidencia exact/prefix/suffix/contains no debe distinguir mayúsculas de minúsculas. Por ejemplo, el comparador |
Campo de unión
|
|
exact |
La cadena de entrada debe coincidir exactamente con la cadena especificada aquí. Ejemplos:
|
prefix |
La cadena de entrada debe tener el prefijo especificado aquí. Nota: No se permite un prefijo vacío. En su lugar, usa una regex. Ejemplos:
|
suffix |
La cadena de entrada debe tener el sufijo especificado aquí. Nota: No se permite un prefijo vacío. En su lugar, usa una regex. Ejemplos:
|
contains |
La cadena de entrada debe tener la subcadena especificada aquí. Nota: No se permite la coincidencia contains vacía. En su lugar, usa una regex. Ejemplos:
|
RequestResource
Describe las propiedades de un recurso de VM cliente que accede a los balanceadores de cargas de aplicaciones internos.
Representación JSON |
---|
{ "tagValueIdSet": { object ( |
Campos | |
---|---|
tagValueIdSet |
Opcional. Es una lista de IDs permanentes de valor de etiqueta de recurso que deben coincidir con el valor de las etiquetas de Resource Manager asociadas con la VM de origen de una solicitud. |
iamServiceAccount |
Opcional. Una cuenta de servicio de IAM que coincida con la cuenta de servicio de origen de la VM que envía la solicitud. |
TagValueIdSet
Describe un conjunto de IDs permanentes de valor de etiqueta de recursos que deben coincidir con el valor de etiquetas del administrador de recursos asociado con la VM de origen de una solicitud.
Representación JSON |
---|
{ "ids": [ string ] } |
Campos | |
---|---|
ids[] |
Obligatorio. Es una lista de IDs permanentes de valor de etiqueta de recurso que deben coincidir con el valor de las etiquetas de Resource Manager asociadas con la VM de origen de una solicitud. La coincidencia sigue la semántica AND, lo que significa que todos los IDs deben coincidir. Se limita a 5 coincidencias. |
To
Describe las propiedades de uno o más destinos de una solicitud.
Representación JSON |
---|
{ "operations": [ { object ( |
Campos | |
---|---|
operations[] |
Opcional. Describe las propiedades de uno o más destinos de una solicitud. Se debe especificar al menos un valor entre operations o notOperations. Se limita a 5 operaciones. Se produce una coincidencia si coincide ANY operación (en operations o notOperations). Dentro de una operación, la coincidencia sigue la semántica AND en todos los campos y la semántica OR dentro de un campo, es decir, se produce una coincidencia cuando ANY ruta coincide AND ANY encabezado coincide AND ANY método coincide. |
notOperations[] |
Opcional. Describe las propiedades negadas de los destinos de una solicitud. Coincide con las solicitudes de operaciones que no coinciden con los criterios especificados en este campo. Se debe especificar al menos un valor entre operations o notOperations. |
RequestOperation
Describe las propiedades de uno o más destinos de una solicitud.
Representación JSON |
---|
{ "headerSet": { object ( |
Campos | |
---|---|
headerSet |
Opcional. Es una lista de encabezados que deben coincidir en el encabezado HTTP. |
hosts[] |
Opcional. Es una lista de hosts HTTP con los que se debe hacer coincidir. La concordancia puede ser de tipo exact, prefix, suffix o contains (concordancia de subcadena). Las coincidencias siempre distinguen mayúsculas de minúsculas, a menos que se establezca ignoreCase. Se limita a 5 coincidencias. |
paths[] |
Opcional. Es una lista de rutas de acceso con las que se debe hacer coincidir. La concordancia puede ser de tipo exact, prefix, suffix o contains (concordancia de subcadena). Las coincidencias siempre distinguen mayúsculas de minúsculas, a menos que se establezca ignoreCase. Se limita a 5 coincidencias. Ten en cuenta que esta coincidencia de ruta de acceso incluye los parámetros de consulta. Para los servicios de gRPC, este debe ser un nombre completamente calificado del tipo /package.service/method. |
methods[] |
Opcional. Es una lista de métodos HTTP con los que se establece la coincidencia. Cada entrada debe ser un nombre de método HTTP válido (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). Solo permite la concordancia exact y siempre distingue mayúsculas de minúsculas. |
HeaderSet
Describe un conjunto de encabezados HTTP con los que se deben hacer coincidir.
Representación JSON |
---|
{
"headers": [
{
object ( |
Campos | |
---|---|
headers[] |
Obligatorio. Es una lista de encabezados que deben coincidir en el encabezado HTTP. La concordancia puede ser de tipo exact, prefix, suffix o contains (concordancia de subcadena). La coincidencia sigue la semántica AND, lo que significa que todos los encabezados deben coincidir. Las coincidencias siempre distinguen mayúsculas de minúsculas, a menos que se establezca ignoreCase. Se limita a 5 coincidencias. |
HeaderMatch
Determina cómo se debe hacer coincidir un encabezado HTTP.
Representación JSON |
---|
{
"name": string,
"value": {
object ( |
Campos | |
---|---|
name |
Opcional. Especifica el nombre del encabezado en la solicitud. |
value |
Opcional. Especifica cómo se realizará la coincidencia de encabezados. |
AuthzAction
Es la acción que se aplicará a esta política. Los valores posibles son ALLOW
, DENY
y CUSTOM
.
Enums | |
---|---|
AUTHZ_ACTION_UNSPECIFIED |
Acción no especificada. |
ALLOW |
Permite que la solicitud pase al backend. |
DENY |
Rechaza la solicitud y muestra un HTTP 404 al cliente. |
CUSTOM |
Delega la decisión de autorización a un motor de autorización externo. |
CustomProvider
Permite delegar las decisiones de autorización a Cloud IAP o a las Extensiones del servicio.
Representación JSON |
---|
{ "cloudIap": { object ( |
Campos | |
---|---|
cloudIap |
Opcional. Delega las decisiones de autorización a Cloud IAP. Solo se aplica a los balanceadores de cargas administrados. Habilitar Cloud IAP a nivel de AuthzPolicy no es compatible con la configuración de Cloud IAP en BackendService. Si habilitas la IAP en ambos lugares, la solicitud fallará. Asegúrate de que el IAP esté habilitado en AuthzPolicy o BackendService, pero no en ambos lugares. |
authzExtension |
Opcional. Delega la decisión de autorización a la extensión de servicio creada por el usuario. Solo se puede especificar uno de cloudIap o authzExtension. |
CloudIap
Este tipo no tiene campos.
Opcional. Delega las decisiones de autorización a Cloud IAP. Solo se aplica a los balanceadores de cargas administrados. Habilitar Cloud IAP a nivel de AuthzPolicy no es compatible con la configuración de Cloud IAP en BackendService. Si habilitas la IAP en ambos lugares, la solicitud fallará. Asegúrate de que el IAP esté habilitado en AuthzPolicy o BackendService, pero no en ambos lugares.
AuthzExtension
Opcional. Delega la decisión de autorización a la extensión creada por el usuario. Solo se puede especificar uno de cloudIap o authzExtension.
Representación JSON |
---|
{ "resources": [ string ] } |
Campos | |
---|---|
resources[] |
Obligatorio. Una lista de referencias a extensiones de autorización que se invocarán para las solicitudes que coincidan con esta política. Se limita a 1 proveedor personalizado. |
Métodos |
|
---|---|
|
Crea una nueva AuthzPolicy en un proyecto y una ubicación determinados. |
|
Borra una sola AuthzPolicy. |
|
Obtiene los detalles de una sola AuthzPolicy. |
|
Enumera AuthzPolicies en una ubicación y un proyecto determinados. |
|
Actualiza los parámetros de un solo AuthzPolicy. |