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
- Leia 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.
Crie e anexe contas de serviço ou tags a Google Cloud VMs
Para balanceadores de carga de aplicativo internos, é possível aplicar políticas de autorização com base em contas de serviço ou tags anexadas a um recurso de VM Google Cloud . Qualquer solicitação originada de uma VM de cliente vinculada a uma conta de serviço ou tag específica pode ser permitida, negada ou delegada a um serviço externo. Um exemplo dessa política de autorização que usa contas de serviço e tags para aplicar o controle de acesso é fornecido na seção Política de autorização com base em contas de serviço ou tags deste documento.
Não é possível aplicar políticas de autorização com base em contas de serviço ou tags em balanceadores de carga de aplicativo externos.
Anexar 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 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.
Anexar tags ao modelo de grupo de instâncias
Antes de vincular uma tag ao modelo de grupo de instâncias, é necessário criar
uma chave e um valor de tag. Ao criar uma tag, designe-a com uma
finalidade GCE_FIREWALL
. Os recursos de rede do Google Cloud , incluindo o Secure Web Proxy
e as políticas de autorização, exigem a finalidade GCE_FIREWALL
para aplicar a tag.
Criar uma chave e um valor de tag
Para criar tags, 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 Projeto, selecione o projeto 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 da tag.
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 da tag.ORG_ID
: o ID da organização.LB_NETWORK
: o nome da sua rede VPC.
Adicione o valor da tag à 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 ao modelo de grupo de instâncias
Os administradores de tags podem vincular tags 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, você precisa da função 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
: 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
: nome do modelo de grupo de instâncias.LOCATION
: sua região .
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 .TAG_KEY
: nome da chave de tag segura.TAG_VALUE
: 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
.
Esta seção fornece instruções para criar diferentes tipos de políticas de autorização anexadas à regra de encaminhamento de um balanceador de carga.
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 Google Cloud .LB_FORWARDING_RULE
: 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 negar 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
.$ 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" 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 Google Cloud .LOCATION
: sua regiãoLB_FORWARDING_RULE
: 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 Google Cloud .LB_FORWARDING_RULE
: 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 específica do Google Cloud . 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/regions/LOCATION/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. 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 Google Cloud .LOCATION
: sua região .LB_FORWARDING_RULE
: 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 com base em contas de serviço ou tags
É possível aplicar políticas de autorização com base em contas de serviço ou tags apenas em balanceadores de carga de aplicativo internos. Qualquer tráfego originado de uma VM de cliente vinculada a uma conta de serviço ou tag específica pode ser permitido, negado ou delegado a um serviço externo.
Se você quiser criar e anexar contas de serviço ou tags a VMs do Google Cloud , consulte a seção Criar e anexar contas de serviço ou tags a VMs do Google Cloud neste documento.
Conta de serviç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
de um balanceador de carga de aplicativo interno regional. A política está configurada para negar solicitações de qualquer VM de cliente com a conta de serviçomy-sa-123@PROJECT_ID.iam.gserviceaccount.com
para acessar 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:
LB_SCHEME
: seu esquema de balanceamento de carga. Para um balanceador de carga de aplicativo interno regional, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto Google Cloud .LOCATION
: sua região .LB_FORWARDING_RULE
: nome da regra de encaminhamento do balanceador de carga.
Crie a política de autorização e importe o arquivo YAML.
O comando de exemplo a seguir importa o arquivo de política criado anteriormente e cria a política de autorização na região especificada Google Cloud .
gcloud beta network-security authz-policies import my-authz-policy-deny \ --source=authz-policy-deny.yaml \ --location=LOCATION
Substitua:
LOCATION
: sua região .
Tag
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
de um balanceador de carga de aplicativo interno regional. A política só permite que solicitações originadas de uma VM com a tag de recursoTAG_VALUE
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/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: resources: - tagValueIdSet: - ids: "TAG_VALUE" to: operations: - paths: - exact: "/api/payments" action: ALLOW EOF
Substitua:
LB_SCHEME
: seu esquema de balanceamento de carga. Para um balanceador de carga de aplicativo interno regional, defina o esquema comoINTERNAL_MANAGED
.PROJECT_ID
: o ID do seu projeto Google Cloud .LOCATION
: sua regiãoLB_FORWARDING_RULE
: nome da regra de encaminhamento do balanceador de carga.
Crie a política de autorização e importe o arquivo YAML.
O comando de exemplo a seguir importa o arquivo de política criado anteriormente e cria as políticas de autorização na região especificada Google Cloud :
gcloud beta network-security authz-policies import my-authz-policy-allow \ --source=authz-policy-allow.yaml \ --location=LOCATION
Substitua:
LOCATION
: sua região
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 Google Cloud .LB_FORWARDING_RULE
: nome da regra de encaminhamento do balanceador de carga.AUTHZ_EXTENSION
: 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 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 Google Cloud .LOCATION
: sua região .LB_FORWARDING_RULE
: nome da regra de encaminhamento do balanceador de carga.AUTHZ_EXTENSION
: 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 as seções a seguir.
A solicitação não corresponde às políticas ALLOW
ou DENY
Quando uma solicitação não corresponde às políticas ALLOW
ou DENY
, a política DENY
permite a solicitação e a registra como
allowed_as_no_deny_policies_matched_request
. Por outro lado, a política ALLOW
rejeita a solicitação e a registra como
denied_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" 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\"
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" }
A solicitação corresponde à política DENY
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" }
A solicitação não corresponde à política DENY
, mas corresponde à política ALLOW
Quando uma solicitação não corresponde à política DENY
, mas corresponde à política
ALLOW
, a solicitação é permitida. No registro, essa ação é registrada como
allowed_as_no_deny_policies_matched_request
para a política DENY
. 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
. 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/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" }