Esta página mostra como configurar políticas de autorização para equilibradores de carga de aplicações.
Antes de começar
- Familiarize-se com a vista geral da política de autorização.
-
- API Network Security
- API Network Services
Configure o balanceador de carga
Se não tiver criado um balanceador de carga, consulte as páginas seguintes para configurar o balanceador de carga de aplicações preferencial:
- Para criar um Application Load Balancer externo global, consulte o artigo Configure um Application Load Balancer externo global com back-ends de grupo de instâncias de VM.
Para criar um Application Load Balancer externo regional, consulte o artigo Configure um Application Load Balancer externo regional com back-ends de grupo de instâncias de VMs.
Para criar um Application Load Balancer interno regional, consulte o artigo Configure um Application Load Balancer interno regional com back-ends de grupos de instâncias de VMs.
- Para criar um Application Load Balancer interno entre regiões, consulte o artigo Configure um Application Load Balancer interno entre regiões com back-ends de grupos de instâncias de VMs.
Crie e anexe contas de serviço ou etiquetas a Google Cloud VMs
Para equilibradores de carga de aplicações internos, pode aplicar políticas de autorização com base em contas de serviço ou etiquetas anexadas a diferentes Google Cloud recursos.
O exemplo neste documento fornece instruções para criar uma política de autorização com base em contas de serviço ou etiquetas anexadas a instâncias de máquinas virtuais (VM). Google Cloud Qualquer pedido originado numa VM cliente associada a uma conta de serviço ou uma etiqueta específica pode ser permitido, recusado ou delegado a um serviço externo. Um exemplo de uma política de autorização deste tipo que usa contas de serviço e etiquetas para aplicar o controlo de acesso é fornecido na secção Política de autorização baseada em contas de serviço ou etiquetas deste documento.
A aplicação de políticas de autorização com base em contas de serviço ou etiquetas não é suportada para equilibradores de carga de aplicações externos.
Anexe contas de serviço a VMs de cliente
Para instruções 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 de VMs, consulte o artigo Crie uma VM que use uma conta de serviço gerida pelo utilizador.
- Para configurar uma conta de serviço numa VM existente, consulte o artigo Altere a conta de serviço associada.
Anexe etiquetas ao modelo do grupo de instâncias
Antes de associar uma etiqueta ao modelo de grupo de instâncias, tem de criar uma chave e um valor de etiqueta. Quando cria uma etiqueta, atribui-lhe uma finalidade.As funcionalidades de rede, incluindo o proxy Web seguro e as políticas de autorização, requerem a finalidade para aplicar a etiqueta.GCE_FIREWALL
GCE_FIREWALL
Google Cloud
Crie uma chave e um valor de etiqueta
Para criar etiquetas, precisa da função de administrador da etiqueta (roles/resourcemanager.tagAdmin
).
Consola
Na Google Cloud consola, aceda à página Etiquetas.
Clique em
Criar.No campo Descrição da chave da etiqueta, introduza uma descrição.
Selecione a caixa de verificação Para utilização com firewall de rede.
Na lista Projeto, selecione o Google Cloud projeto onde quer criar a etiqueta.
No campo Rede, selecione
LB_NETWORK
.Clique em
Adicionar valor.No campo Valor da etiqueta, introduza
TAG_VALUE
. O valor tem de ser numérico.No campo Descrição do valor da etiqueta, introduza uma descrição.
Quando terminar de adicionar valores de etiquetas, clique em Criar chave de etiqueta.
gcloud
Crie a chave da etiqueta.
gcloud resource-manager tags keys create TAG_KEY \ --parent=organizations/ORG_ID \ --purpose=GCE_FIREWALL \ --purpose-data=network=LB_NETWORK
Substitua o seguinte:
TAG_KEY
: o nome da chave da etiqueta.ORG_ID
: o ID da sua organização.LB_NETWORK
: o nome da sua rede VPC.
Adicione o valor da etiqueta à chave da etiqueta numérica.
gcloud resource-manager tags values create TAG_VALUE \ --parent=ORG_ID/TAG_KEY
Substitua
TAG_VALUE
por um valor de etiqueta numérico.
Associe a etiqueta ao modelo de grupo de instâncias
Os administradores de etiquetas podem associar etiquetas a instâncias de VMs individuais ou ao modelo do grupo de instâncias e anexar o valor da etiqueta aos back-ends das VMs ou do modelo.
Para associar etiquetas, precisa da função de utilizador de etiquetas
(roles/resourcemanager.tagUser
).
Defina o prefixo do nome completo para o seu projeto e zona:
FULL_NAME_PREFIX=//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.ZONE
: a zona em que o grupo de instâncias geridas está localizado.
Obtenha o ID do modelo de grupo de instâncias:
TEMPLATE_ID=$(gcloud compute instance-templates describe TEMPLATE_NAME --region=LOCATION --format='value(id)')
Substitua o seguinte:
TEMPLATE_NAME
: o nome do modelo de grupo de instâncias.LOCATION
: a sua Google Cloud região.
Concatenar os valores de
FULL_NAME_PREFIX
eTEMPLATE_ID
:PARENT="$FULL_NAME_PREFIX$TEMPLATE_ID" echo $PARENT
Crie as associações.
gcloud resource-manager tags bindings create \ --location LOCATION \ --tag-value ORG_ID/TAG_KEY/TAG_VALUE \ --parent PARENT
Substitua o seguinte:
ORG_ID
: o ID da sua organização.LOCATION
: a sua Google Cloud região.TAG_KEY
: o nome da chave da etiqueta segura.TAG_VALUE
: o valor numérico da etiqueta.
Crie uma política de autorização
Para criar uma política de autorização, cria um ficheiro YAML que define o destino e as regras e, em seguida, importa o ficheiro através do comando gcloud beta network-security authz-policies
.
Esta secção fornece instruções para criar diferentes tipos de políticas de autorização anexadas à regra de encaminhamento de um equilibrador de carga.
Política de autorização para recusar pedidos
Esta secção fornece um exemplo de política de autorização que nega pedidos com base nos principais do certificado de cliente.
Global e entre regiões
Se estiver a usar um Application Load Balancer externo global ou um Application Load Balancer interno entre regiões, siga estes passos para criar e importar uma política de autorização:
Crie um ficheiro YAML de política de autorização para negar determinados pedidos.
O exemplo seguinte cria um ficheiro
authz-policy-deny.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
naglobal
localização. A política nega o acesso ao caminho do URL/api/payments
a clientes que tenhamwww.example.com
nos SANs do nome DNS do 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
Substitua o seguinte:
LB_SCHEME
: o seu esquema de balanceamento de carga. Para o balanceador de carga de aplicações externo global, defina o esquema comoEXTERNAL_MANAGED
. Para o balanceador de carga de aplicações interno entre regiões, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto Google Cloud .LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.
Crie uma política de autorização e importe o ficheiro YAML.
O comando de exemplo seguinte importa o ficheiro de política criado anteriormente e cria uma política de autorização:
gcloud beta network-security authz-policies import my-authz-policy-deny \ --source=authz-policy-deny.yaml \ --location=global
Regional
Se estiver a usar um Application Load Balancer externo regional ou um Application Load Balancer interno regional, siga estes passos para criar e importar uma política de autorização:
Crie um ficheiro YAML de política de autorização para negar determinados pedidos.
O exemplo seguinte cria um ficheiro
authz-policy-deny.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
numaGoogle Cloud região. A política nega o acesso ao caminho do URL/api/payments
a clientes que tenhamwww.example.com
nos SANs do nome DNS do 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
Substitua o seguinte:
LB_SCHEME
: o seu esquema de balanceamento de carga. Para o balanceador de carga de aplicações externo regional, defina o esquema comoEXTERNAL_MANAGED
. Para o balanceador de carga de aplicações interno regional, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto Google Cloud .LOCATION
: a sua Google Cloud região.LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.
Crie uma política de autorização e importe o ficheiro YAML.
O seguinte comando de exemplo importa o ficheiro de política criado anteriormente e cria uma política 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 pedidos
Esta secção fornece um exemplo de política de autorização que permite pedidos originários de intervalos de endereços IP específicos.
Global e entre regiões
Se estiver a usar um Application Load Balancer externo global ou um Application Load Balancer interno entre regiões, siga estes passos para criar e importar uma política de autorização:
Crie um ficheiro YAML de política de autorização para permitir determinados pedidos.
O exemplo seguinte cria um ficheiro
authz-policy-allow.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
na localizaçãoglobal
. A política permite que os clientes com endereços IP no intervalo10.0.0.1/24
acedam ao 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: - ipBlocks: - prefix: "10.0.0.1" length: "24" to: operations: - paths: - exact: "/api/payments" action: ALLOW EOF
Substitua o seguinte:
LB_SCHEME
: o seu esquema de balanceamento de carga. Para o balanceador de carga de aplicações externo global, defina o esquema comoEXTERNAL_MANAGED
. Para o balanceador de carga de aplicações interno entre regiões, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto Google Cloud .LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.
Crie uma política de autorização e importe o ficheiro YAML.
O comando de exemplo seguinte importa o ficheiro de política criado anteriormente e cria uma política de autorização:
gcloud beta network-security authz-policies import my-authz-policy-allow \ --source=authz-policy-allow.yaml \ --location=global
Regional
Se estiver a usar um Application Load Balancer externo regional ou um Application Load Balancer interno regional, siga estes passos para criar e importar uma política de autorização:
Crie um ficheiro YAML de política de autorização para permitir determinados pedidos.
O exemplo seguinte cria um ficheiro
authz-policy-allow.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
numa região específica Google Cloud . A política permite que os clientes com endereços IP no intervalo10.0.0.1/24
acedam ao 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/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
Substitua o seguinte:
LB_SCHEME
: o seu esquema de balanceamento de carga. Se estiver a usar um Application Load Balancer externo regional, defina o esquema comoEXTERNAL_MANAGED
. Se estiver a usar o Application Load Balancer interno regional, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto Google Cloud .LOCATION
: a sua Google Cloud região.LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.
Crie uma política de autorização e importe o ficheiro YAML.
O comando de exemplo seguinte importa o ficheiro de política criado anteriormente e cria uma política 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 baseada em contas de serviço ou etiquetas
Pode aplicar políticas de autorização com base em contas de serviço ou etiquetas apenas em equilibradores de carga de aplicações internos. Qualquer tráfego proveniente de uma VM de cliente associada a uma conta de serviço ou uma etiqueta específica pode ser permitido, recusado ou delegado a um serviço externo.
Se quiser criar e anexar contas de serviço ou etiquetas a Google Cloud VMs, consulte a secção Crie e anexe contas de serviço ou etiquetas a Google Cloud VMs neste documento.
Conta de serviço
Crie um ficheiro YAML de política de autorização para negar determinados pedidos.
O exemplo seguinte cria um ficheiro
authz-policy-deny.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
de um balanceador de carga de aplicações interno regional. A política está configurada para recusar pedidos de todas as VMs de cliente com a conta de serviçomy-sa-123@PROJECT_ID.iam.gserviceaccount.com
para alcançar o caminho/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
Substitua o seguinte:
LB_SCHEME
: o seu esquema de balanceamento de carga. Para um balanceador de carga de aplicações interno regional, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto Google Cloud .LOCATION
: a sua Google Cloud região.LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.
Crie uma política de autorização e importe o ficheiro YAML.
O comando de exemplo seguinte importa o ficheiro de política criado anteriormente e cria uma política de autorização na Google Cloud região especificada.
gcloud beta network-security authz-policies import my-authz-policy-deny \ --source=authz-policy-deny.yaml \ --location=LOCATION
Substitua o seguinte:
LOCATION
: a sua Google Cloud região.
Etiqueta
Crie um ficheiro YAML de política de autorização para permitir determinados pedidos.
O exemplo seguinte cria um ficheiro
authz-policy-allow.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
de um balanceador de carga de aplicações interno regional. A política só permite que os pedidos originados de uma VM com a etiqueta de recursoTAG_VALUE
acedam ao 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/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: resources: - tagValueIdSet: - ids: "TAG_VALUE" to: operations: - paths: - exact: "/api/payments" action: ALLOW EOF
Substitua o seguinte:
LB_SCHEME
: o seu esquema de balanceamento de carga. Para um balanceador de carga de aplicações interno regional, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto Google Cloud .LOCATION
: a sua Google Cloud região.LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.
Crie uma política de autorização e importe o ficheiro YAML.
O comando de exemplo seguinte importa o ficheiro de política criado anteriormente e cria uma política de autorização naGoogle Cloud região especificada:
gcloud beta network-security authz-policies import my-authz-policy-allow \ --source=authz-policy-allow.yaml \ --location=LOCATION
Substitua o seguinte:
LOCATION
: a sua Google Cloud região.
Política de autorização para delegar numa extensão de serviço
Antes de começar, configure um motor de autorização externo. Para mais informações sobre extensões de serviços, consulte o artigo Vista geral dos destaques de chamadas do Cloud Load Balancing.
Global e entre regiões
Se estiver a usar um Application Load Balancer externo global ou um Application Load Balancer interno entre regiões, siga estes passos para criar e importar uma política de autorização:
Crie um ficheiro de política de autorização para delegar determinados pedidos num serviço externo.
O exemplo seguinte cria um ficheiro
authz-policy-custom.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
na localizaçãoglobal
. A política chama a extensãoAUTHZ_EXTENSION
para todo o tráfego para o caminho do URL/api/payments
quando o pedido 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 o seguinte:
LB_SCHEME
: o seu esquema de balanceamento de carga. Para o balanceador de carga de aplicações externo global, defina o esquema comoEXTERNAL_MANAGED
. Para o balanceador de carga de aplicações interno entre regiões, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto 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 uma política de autorização e importe o ficheiro YAML.
O comando de exemplo seguinte importa o ficheiro de política criado anteriormente e cria uma política de autorização:
gcloud beta network-security authz-policies import my-authz-policy-custom \ --source=authz-policy-custom.yaml \ --location=global
Regional
Se estiver a usar um Application Load Balancer externo regional ou um Application Load Balancer interno regional, siga estes passos para criar e importar uma política de autorização:
Crie um ficheiro YAML de política de autorização para delegar determinados pedidos a um serviço externo.
O exemplo seguinte cria um ficheiro
authz-policy-custom.yaml
para a regra de encaminhamentoLB_FORWARDING_RULE
numa região de um balanceador de carga de aplicações interno regional. Google Cloud A política chama a extensãoAUTHZ_EXTENSION
para todo o tráfego para o caminho do URL/api/payments
quando o pedido 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 o seguinte:
LB_SCHEME
: o seu esquema de balanceamento de carga. Para o balanceador de carga de aplicações externo regional, defina o esquema comoEXTERNAL_MANAGED
. Para o balanceador de carga de aplicações interno regional, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto Google Cloud .LOCATION
: a sua Google Cloud região.LB_FORWARDING_RULE
: o nome da regra de encaminhamento do balanceador de carga.AUTHZ_EXTENSION
: o nome da extensão de autorização.
Crie uma política de autorização e importe o ficheiro YAML.
O comando de exemplo seguinte importa o ficheiro de política criado anteriormente e cria uma política 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
Teste uma política de autorização
Para testar uma política de autorização, envie algum tráfego para o equilibrador de carga. Para mais informações, consulte as seguintes páginas:
- Se estiver a usar um Application Load Balancer externo global, consulte o artigo Teste o tráfego enviado para as suas instâncias.
Se estiver a usar um Application Load Balancer externo regional, consulte o artigo Teste o balanceador de carga.
Se estiver a usar um Application Load Balancer interno regional, consulte o artigo Teste o balanceador de carga.
- Se estiver a usar um Application Load Balancer interno entre regiões, consulte o artigo Teste o balanceador de carga.
Compreenda os registos da política de autorização nos Registos na nuvem
Para compreender como as políticas de autorização são registadas quando um pedido é permitido ou recusado, reveja as secções seguintes.
O pedido não corresponde às políticas de ALLOW
nem de DENY
Quando um pedido não corresponde à política ALLOW
nem à política DENY
, a política DENY
permite o pedido e regista-o como
allowed_as_no_deny_policies_matched_request
. Por outro lado, a política ALLOW
rejeita o pedido e regista-o como denied_as_no_allow_policies_matched_request
. Uma vez que uma das políticas recusa o pedido, o pedido é recusado.
Se estiver a usar um Application Load Balancer externo global,
statusDetails
está definido comodenied_by_authz_policy
no registo. Veja o exemplo seguinte:{ 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" }
Se estiver a usar um Application Load Balancer interno regional, um Application Load Balancer externo regional ou um Application Load Balancer interno entre regiões,
proxyStatus
é definido comoerror=\"http_request_error\"; details=\"denied_by_authz_policy\"
no registo. Veja o exemplo seguinte:{ 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" }
O pedido corresponde à política de DENY
Quando um pedido corresponde à política DENY
, é recusado e a política que recusou o pedido é registada.
Se estiver a usar um Application Load Balancer externo global,
statusDetails
é definido comodenied_by_authz_policy
no registo, e o nome da política que recusou o pedido é registado empolicies
. Veja o exemplo seguinte:{ 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 estiver a usar um Application Load Balancer interno regional, um Application Load Balancer externo regional ou um Application Load Balancer interno entre regiões,
proxyStatus
é definido comoerror=\"http_request_error\"; details=\"denied_by_authz_policy\"
e o nome da política é registado empolicies
. Veja o exemplo seguinte:{ 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" }
A solicitação não corresponde à Política DENY
, mas corresponde à Política ALLOW
Quando um pedido não corresponde à política do DENY
, mas corresponde à política do ALLOW
, o pedido é permitido. No registo, esta ação é registada como
allowed_as_no_deny_policies_matched_request
para a política DENY
. A política que permitiu o pedido também é registada.
Se estiver a usar um Application Load Balancer externo global, não existe
statusDetails
no registo. A política que permitiu o pedido também é registada nopolicies
. Veja o exemplo seguinte:{ 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 estiver a usar um Application Load Balancer interno regional, um Application Load Balancer externo regional ou um Application Load Balancer interno entre regiões, não existe o campo
proxyStatus
no registo. A política que permitiu o pedido também é registada empolicies
. Veja o exemplo seguinte:{ 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" }