Nos balanceadores de carga de aplicativo, as políticas de autorização são chamadas após a avaliação de extensões de rota, políticas de segurança de rede (avaliadas pelo Google Cloud Armor), políticas de compartilhamento de recursos entre origens (CORS) e Identity-Aware Proxy (IAP), mas antes da execução de ações de gerenciamento de tráfego.
Esta página mostra como configurar políticas de autorização para balanceadores de carga de aplicativo.
Antes de começar
- Conheça a visão geral da política de autorização.
-
- API Network Security
- API Network Services
Configurar o balanceador de carga
Se você não criou um balanceador de carga, consulte as páginas a seguir para configurar o balanceador de carga de aplicativo preferido:
Para criar um balanceador de carga de aplicativo externo global, consulte Configurar um balanceador de carga de aplicativo externo global com back-ends de grupos de instâncias de VM.
Para criar um balanceador de carga de aplicativo externo regional, consulte Configurar um balanceador de carga de aplicativo externo regional com back-ends de grupos de instâncias de VM.
Para criar um balanceador de carga de aplicativo interno regional, consulte Configurar um balanceador de carga de aplicativo interno regional com back-ends de grupos de instâncias de VM.
Para criar um balanceador de carga de aplicativo interno entre regiões, consulte Configurar um balanceador de carga de aplicativo interno entre regiões com back-ends de grupo de instâncias de VM.
Criar e configurar tags ou contas de serviço seguras
Com os balanceadores de carga de aplicativo internos, é possível aplicar políticas de autorização com base nas tags seguras e nas contas de serviço anexadas às VMs do cliente. Se você planeja aplicar políticas de autorização baseadas em tags, use o Resource Manager para criar tags.
Se você estiver usando balanceadores de carga de aplicativo externos, não será necessário criar e configurar tags seguras.
Para mais informações, consulte Usar tags para firewalls e Contas de serviço.
Anexar contas de serviço a VMs de cliente
Para informações detalhadas sobre como anexar uma conta de serviço a uma instância de VM, consulte os seguintes documentos:
- Para configurar uma conta de serviço durante a criação da VM, consulte Criar uma VM que usa uma conta de serviço gerenciada pelo usuário.
- Para configurar uma conta de serviço em uma VM atual, consulte Alterar a conta de serviço anexada.
Criar chaves e valores de tags seguras
Antes de associar tags seguras ao modelo de grupo de instâncias, crie as chaves e os valores de tag seguros e designe-os para a finalidade GCE_FIREWALL
.
Isso é necessário para recursos de rede do Google Cloud, incluindo o Secure Web Proxy
e as políticas de autorização.
Para criar tags seguras, você precisa do papel de administrador de tags (roles/resourcemanager.tagAdmin
).
Console
No console do Google Cloud, acesse a página Tags.
Clique em
Criar.No campo Descrição da chave de tag, insira uma descrição.
Marque a caixa de seleção Para uso com firewall de rede.
Na lista Project, selecione o projeto do Google Cloud em que você quer criar a tag.
No campo Rede, selecione
LB_NETWORK
.Clique em
Adicionar valor.No campo Valor da tag, insira
TAG_VALUE
. O valor precisa ser numérico.No campo Descrição do valor da tag, insira uma descrição.
Quando terminar de adicionar valores de tag, clique em Criar tag.
gcloud
Crie a chave de tag segura.
gcloud resource-manager tags keys create TAG_KEY \ --parent=organizations/ORG_ID \ --purpose=GCE_FIREWALL \ --purpose-data=network=LB_NETWORK
Substitua:
TAG_KEY
: o nome da chave de tag segura.ORG_ID
: o ID da organização.LB_NETWORK
: o nome da sua rede VPC.
Adicione o valor da tag segura à chave de tag numérica.
gcloud resource-manager tags values create TAG_VALUE \ --parent=ORG_ID/TAG_KEY
Substitua
TAG_VALUE
por um valor de tag numérica.
Vincular a tag segura ao modelo de grupo de instâncias
Os administradores de tags podem vincular tags seguras a instâncias de VM individuais ou ao modelo de grupo de instâncias e anexar o valor da tag aos back-ends das VMs ou do modelo.
Para vincular tags seguras, você precisa do papel de usuário de tag (roles/resourcemanager.tagUser
).
Defina o prefixo do nome completo do seu projeto e zona:
FULL_NAME_PREFIX=//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/
Substitua:
PROJECT_ID
: ID do projeto.ZONE
: a zona em que o grupo gerenciado de instâncias está localizado.
Acesse o ID do modelo do grupo de instâncias:
TEMPLATE_ID=$(gcloud compute instance-templates describe TEMPLATE_NAME --region=LOCATION --format='value(id)')
Substitua:
TEMPLATE_NAME
: o nome do modelo de grupo de instâncias.LOCATION
: sua região do Google Cloud.
Concatene os valores de
FULL_NAME_PREFIX
eTEMPLATE_ID
:PARENT="$FULL_NAME_PREFIX$TEMPLATE_ID" echo $PARENT
Crie as vinculações.
gcloud resource-manager tags bindings create \ --location LOCATION \ --tag-value ORG_ID/TAG_KEY/TAG_VALUE \ --parent PARENT
Substitua:
ORG_ID
: o ID da organização.LOCATION
: sua região do Google Cloud.TAG_KEY
: o nome da chave de tag segura.TAG_VALUE
: o valor numérico da tag.
Criar a política de autorização
Para criar uma política de autorização, crie um arquivo YAML que defina o destino e as regras e importe o arquivo usando o comando gcloud beta network-security
authz-policies
.
Política de autorização para negar solicitações
Global e entre regiões
Se você estiver usando um balanceador de carga de aplicativo externo global ou um balanceador de carga de aplicativo interno entre regiões, siga estas etapas para criar e importar a política de autorização:
Crie o arquivo de política de autorização para negar determinadas solicitações.
O exemplo a seguir cria um arquivo
authz-policy-deny.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
no localglobal
. A política impede que os clientes*.hello.com
acessem o caminho do URL/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/global/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: - principals: - suffix: ".hello.com" to: operations: - paths: - prefix: "/api/payments" action: DENY EOF
Substitua:
LB_SCHEME
: seu esquema de balanceamento de carga. Para o balanceador de carga de aplicativo externo global, defina o esquema comoEXTERNAL_MANAGED
. Para o balanceador de carga de aplicativo interno entre regiões, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto do Google Cloud.LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.
Crie a política de autorização e importe o arquivo YAML.
O exemplo de comando a seguir importa o arquivo de política criado anteriormente e cria as políticas de autorização:
gcloud beta network-security authz-policies import my-authz-policy-deny \ --source=authz-policy-deny.yaml \ --location=global
Regional
Se você estiver usando um balanceador de carga de aplicativo externo regional ou um balanceador de carga de aplicativo interno regional, siga estas etapas para criar e importar a política de autorização:
Crie o arquivo de política de autorização para permitir determinadas solicitações.
O exemplo a seguir cria um arquivo
authz-policy-deny.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
em uma região do Google Cloud. A política nega o acesso ao caminho do URL/api/payments
para clientes com identidades correspondentes a*.hello.com
. A política também nega o acesso a qualquer VM de cliente com a conta de serviçomy-sa-123@PROJECT_ID.iam.gserviceaccount.com
ao URL/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: - principals: - suffix: ".hello.com" to: operations: - paths: - prefix: "/api/payments" - from: sources: - resources: - iamServiceAccount: exact: "my-sa-123@PROJECT_ID.iam.gserviceaccount.com" to: operations: - paths: - prefix: "/api/payments" action: DENY EOF
Substitua:
LB_SCHEME
: seu esquema de balanceamento de carga. Para o balanceador de carga de aplicativo externo regional, defina o esquema comoEXTERNAL_MANAGED
. Para o balanceador de carga de aplicativo interno regional, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto do Google Cloud.LOCATION
: sua região do Google Cloud.LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.
Crie a política de autorização e importe o arquivo YAML.
O exemplo de comando a seguir importa o arquivo de política criado anteriormente e cria as políticas de autorização na região
LOCATION
:gcloud beta network-security authz-policies import my-authz-policy-deny \ --source=authz-policy-deny.yaml \ --location=LOCATION
Política de autorização para permitir solicitações
Global e entre regiões
Se você estiver usando um balanceador de carga de aplicativo externo global ou um balanceador de carga de aplicativo interno entre regiões, siga estas etapas para criar e importar a política de autorização:
Crie o arquivo de política de autorização para permitir determinadas solicitações.
O exemplo a seguir cria um arquivo
authz-policy-allow.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
no localglobal
. A política permite que apenas clientes de*.example.com
acessem o caminho do 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: - principals: - suffix: ".example.com" to: operations: - paths: - exact: "/api/payments" action: ALLOW EOF
Substitua:
LB_SCHEME
: seu esquema de balanceamento de carga. Para o balanceador de carga de aplicativo externo global, defina o esquema comoEXTERNAL_MANAGED
. Para o balanceador de carga de aplicativo interno entre regiões, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto do Google Cloud.LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.
Crie a política de autorização e importe o arquivo YAML.
O exemplo de comando a seguir importa o arquivo de política criado anteriormente e cria as políticas de autorização:
gcloud beta network-security authz-policies import my-authz-policy-allow \ --source=authz-policy-allow.yaml \ --location=global
Regional
Se você estiver usando um balanceador de carga de aplicativo externo regional ou um balanceador de carga de aplicativo interno regional, siga estas etapas para criar e importar a política de autorização:
Crie o arquivo de política de autorização para permitir determinadas solicitações.
O exemplo a seguir cria um arquivo
authz-policy-allow.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
em uma região do Google Cloud de um balanceador de carga de aplicativo interno regional. A política permite que apenas clientes de*.example.com
acessem o caminho do URL/api/payments
quando a solicitação é originada de uma VM com a tag de recursoTAG_VALUE
.$ 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: - principals: - suffix: ".example.com" resources: - tagValueIdSet: - ids: "TAG_VALUE" to: operations: - paths: - exact: "/api/payments" action: ALLOW EOF
Substitua:
LB_SCHEME
: seu esquema de balanceamento de carga. Se você estiver usando o balanceador de carga de aplicativo externo regional, defina o esquema comoEXTERNAL_MANAGED
. Se você estiver usando o balanceador de carga de aplicativo interno regional, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto do Google Cloud.LOCATION
: sua região do Google Cloud.LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.
Crie a política de autorização e importe o arquivo YAML.
O exemplo de comando a seguir importa o arquivo de política criado anteriormente e cria as políticas de autorização na região
LOCATION
:gcloud beta network-security authz-policies import my-authz-policy-allow \ --source=authz-policy-allow.yaml \ --location=LOCATION
Política de autorização para delegar a uma extensão de serviço
Antes de começar, configure um mecanismo de autorização externo. Para mais informações sobre extensões de serviço, consulte Visão geral dos destaques do Cloud Load Balancing.
Global e entre regiões
Se você estiver usando um balanceador de carga de aplicativo externo global ou um balanceador de carga de aplicativo interno entre regiões, siga estas etapas para criar e importar a política de autorização:
Crie o arquivo de política de autorização para delegar determinadas solicitações a um serviço externo.
O exemplo a seguir cria um arquivo
authz-policy-custom.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
no localglobal
. A política chama a extensãoAUTHZ_EXTENSION
para todo o tráfego no caminho do URL/api/payments
quando a solicitação contém um cabeçalhoAuthorization
não vazio.$ 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
Substitua:
LB_SCHEME
: seu esquema de balanceamento de carga. Para o balanceador de carga de aplicativo externo global, defina o esquema comoEXTERNAL_MANAGED
. Para o balanceador de carga de aplicativo interno entre regiões, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto do Google Cloud.LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.AUTHZ_EXTENSION
: o nome da extensão de autorização.
Crie a política de autorização e importe o arquivo YAML.
O exemplo de comando a seguir importa o arquivo de política criado anteriormente e cria as políticas de autorização:
gcloud beta network-security authz-policies import my-authz-policy-custom \ --source=authz-policy-custom.yaml \ --location=global
Regional
Se você estiver usando um balanceador de carga de aplicativo externo regional ou um balanceador de carga de aplicativo interno regional, siga estas etapas para criar e importar a política de autorização:
Crie o arquivo de política de autorização para delegar determinadas solicitações a um serviço externo.
O exemplo a seguir cria um arquivo
authz-policy-custom.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
em uma região do Google Cloud de um balanceador de carga de aplicativo interno regional. A política chama a extensãoAUTHZ_EXTENSION
para todo o tráfego no caminho de URL/api/payments
quando a solicitação contém um cabeçalhoAuthorization
não vazio.$ 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
Substitua:
LB_SCHEME
: seu esquema de balanceamento de carga. Para o balanceador de carga de aplicativo externo regional, defina o esquema comoEXTERNAL_MANAGED
. Para o balanceador de carga de aplicativo interno regional, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto do Google Cloud.LOCATION
: sua região do Google Cloud.LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.AUTHZ_EXTENSION
: o nome da extensão de autorização.
Crie a política de autorização e importe o arquivo YAML.
O exemplo de comando a seguir importa o arquivo de política criado anteriormente e cria as políticas de autorização na região
LOCATION
:gcloud beta network-security authz-policies import my-authz-policy-custom \ --source=authz-policy-custom.yaml \ --location=LOCATION
Testar as políticas de autorização
Para testar as políticas de autorização, envie tráfego para o balanceador de carga. Para mais informações, consulte as seguintes páginas:
Se você estiver usando um balanceador de carga de aplicativo externo global, consulte Testar o tráfego enviado para suas instâncias.
Se você estiver usando um balanceador de carga de aplicativo externo regional, consulte Testar o balanceador de carga.
Se você estiver usando um balanceador de carga de aplicativo interno regional, consulte Testar o balanceador de carga.
Se você estiver usando um balanceador de carga de aplicativo interno entre regiões, consulte Testar o balanceador de carga.
Entender os registros de políticas de autorização no Cloud Logging
Para entender como as políticas de autorização são registradas quando uma solicitação é permitida ou negada, consulte:
Quando uma solicitação não corresponde às políticas
ALLOW
ouDENY
, a políticaDENY
permite e registra a solicitação comoallowed_as_no_allow_policies_matched_request
. No entanto, a políticaALLOW
nega e registra isso comodenied_as_no_allow_policies_matched_request
. Como uma das políticas nega a solicitação, ela é negada.Se você estiver usando um balanceador de carga de aplicativo externo global,
statusDetails
será definido comodenied_by_authz_policy
no registro. Veja o exemplo a seguir:{ 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" }
Se você estiver usando um balanceador de carga de aplicativo interno regional, um balanceador de carga de aplicativo externo regional ou um balanceador de carga de aplicativo interno entre regiões,
proxyStatus
será definido comoerror=\"http_request_error\"; details=\"denied_by_authz_policy\"
no registro. Veja o exemplo a seguir:{ 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" }
Quando uma solicitação corresponde à política
DENY
, ela é negada, e a política que negou a solicitação é registrada.Se você estiver usando um balanceador de carga de aplicativo externo global,
statusDetails
será definido comodenied_by_authz_policy
no registro, e o nome da política que negou a solicitação será registrado empolicies
. Veja o exemplo a seguir:{ 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" }
Se você estiver usando um balanceador de carga de aplicativo interno regional, um balanceador de carga de aplicativo externo regional ou um balanceador de carga de aplicativo interno entre regiões,
proxyStatus
será definido comoerror=\"http_request_error\"; details=\"denied_by_authz_policy\"
e o nome da política será registrado empolicies
. Veja o exemplo a seguir:{ 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" }
Quando uma solicitação não corresponde à política
DENY
, mas corresponde à políticaALLOW
, a solicitação é permitida. No registro, essa ação é registrada comoallowed_as_no_deny_policies_matched_request
para a políticaDENY
. A política que permitiu a solicitação também é registrada.Se você estiver usando um balanceador de carga de aplicativo externo global, não haverá
statusDetails
no registro. A política que permitiu a solicitação também é registrada empolicies
. Veja o exemplo a seguir:{ 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" }
Se você estiver usando um balanceador de carga de aplicativo interno regional, um balanceador de carga de aplicativo externo regional ou um balanceador de carga de aplicativo interno entre regiões, não haverá um campo
proxyStatus
no registro. A política que permitiu a solicitação também é registrada empolicies
. Confira o exemplo a seguir:{ 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" }