Usar a geração de registros de solicitações

Os registros por solicitação do Google Cloud Armor para o nome da política de segurança, prioridade de regra de correspondência, ação associada e informações relacionadas são registrados como parte da geração de registros para balanceadores de carga de aplicativo externos e balanceadores de carga de rede proxy externos. A geração de registros para novos serviços de back-end é desativada por padrão. Portanto, você precisa ativar a geração de registros para registrar informações completas de geração de registros do Cloud Armor.

Os registros do Cloud Armor fazem parte dos registros do Cloud Load Balancing. Isso significa que a geração de registros do Cloud Armor está sujeita à taxa de amostragem de registros configurada para o balanceador de carga. Se você reduzir a taxa de amostragem do balanceador de carga, a amostragem dos registros de solicitações do Cloud Armor será realizada de acordo com essa taxa reduzida. Além disso, se você usar a referência de serviço entre projetos, os registros serão gerados no projeto host ou de serviço que inclui o front-end e o mapa de URL do balanceador de carga. Portanto, recomendamos que os administradores no projeto de front-end concedam aos administradores no projeto de back-end permissões para ler registros e métricas.

Usando a geração de registros, é possível ver todas as solicitações avaliadas por uma política de segurança do Cloud Armor e o resultado ou a ação realizada com base na regra correspondente de maior prioridade. Por exemplo, para ver solicitações negadas, use filtros como jsonPayload.enforcedSecurityPolicy.outcome="DENY" ou jsonPayload.statusDetails="denied_by_security_policy".

Para ativar a geração de registros de um balanceador de carga de aplicativo externo, consulte Geração de registros na página de geração de registros e monitoramento do balanceador de carga de aplicativo externo regional. Para o balanceador de carga de rede de proxy externo, é possível usar os comandos da Google Cloud CLI conforme listado na página anterior Geração de registros e monitoramento do balanceador de carga de aplicativo externo. Não é possível ativar a geração de registros para o balanceador de carga de rede de proxy externo usando o console Trusted Cloud .

Além disso, é possível definir diferentes níveis de registro para ajudar a avaliar se as políticas de segurança e suas regras estão funcionando conforme o esperado. Para informações completas, consulte Registro detalhado.

Entradas de registro da política de segurança

As entradas de registro a seguir, exibidas no Explorador de registros, são destinadas à geração de registros de regras e à política de segurança do Cloud Armor. As entradas incluem a seguinte estrutura em jsonPayload: Os detalhes da solicitação HTTP aparecem na mensagem httpRequest.

  • statusDetails: uma descrição textual do código de resposta.
    • redirected_by_security_policy: a solicitação foi redirecionada por uma regra de redirecionamento, GOOGLE_RECAPTCHA ou EXTERNAL_302.
    • denied_by_security_policy: uma solicitação foi negada pelo balanceador de carga devido a uma política de segurança do Cloud Armor.
    • body_denied_by_security_policy: um corpo de solicitação foi negado pelo balanceador de carga devido a uma política de segurança do Cloud Armor.
  • enforcedSecurityPolicy: a regra da política de segurança que foi aplicada.
    • name: o nome da política de segurança.
    • priority: uma prioridade numérica da regra correspondente na política de segurança.
    • configuredAction: o nome da ação configurada na regra correspondente, por exemplo:ALLOW, DENY, GOOGLE_RECAPTCHA, EXTERNAL_302 e THROTTLE (para uma regra de limitação), RATE_BASED_BAN (para uma regra de proibição baseada em taxa).
    • rateLimitAction: informações sobre a ação de limite de taxa quando há correspondência com uma regra de proibição baseada em taxa ou com uma regra de limitação.
      • key: valor da chave de limite de taxa (até 36 bytes). Este campo é omitido quando o tipo de chave é ALL, se o tipo de chave é HTTP-HEADER ou HTTP-COOKIE e o cabeçalho ou cookie especificado não está presente na solicitação.
      • outcome: os valores possíveis são os seguintes:
        • "RATE_LIMIT_THRESHOLD_CONFORM" quando está abaixo do limite de taxa configurado
        • "RATE_LIMIT_THRESHOLD_EXCEED" quando ultrapassa o limite de taxa configurado.
        • "BAN_THRESHOLD_EXCEED" quando ultrapassa o limite de banimento configurado.
    • outcome: o resultado da execução da ação configurada, por exemplo, ACCEPT, DENY, REDIRECT e EXEMPT.
    • preconfiguredExprIds: IDs de todas as expressões de regra WAF pré-configuradas que acionaram a regra.
    • threatIntelligence: informações sobre as listas de endereços IP correspondentes da Threat Intelligence, se aplicável.
      • categories: os nomes das listas de endereços IP correspondentes.
  • previewSecurityPolicy: preenchido se a solicitação corresponder a uma regra configurada para visualização (presente apenas quando uma regra de visualização tiver prioridade sobre a aplicada).
    • name: o nome da política de segurança
    • priority: uma prioridade numérica da regra correspondente na política de segurança.
    • configuredAction: o nome da ação configurada na regra correspondente, por exemplo:ALLOW, DENY, GOOGLE_RECAPTCHA, EXTERNAL_302 e THROTTLE (para uma regra de limitação), RATE_BASED_BAN (para uma regra de proibição baseada em taxa).
    • rateLimitAction: informações sobre a ação de limite de taxa quando há correspondência com uma regra de proibição baseada em taxa ou com uma regra de limitação.
      • key: valor da chave de limite de taxa (até 36 bytes). Este campo é omitido quando o tipo de chave é ALL, se o tipo de chave for HTTP-HEADER ou HTTP-COOKIE e o cabeçalho ou cookie especificado não estiver presente na solicitação.
      • outcome: os valores possíveis são os seguintes:
        • "RATE_LIMIT_THRESHOLD_CONFORM" quando está abaixo do limite de taxa configurado
        • "RATE_LIMIT_THRESHOLD_EXCEED" quando ultrapassa o limite de taxa configurado.
        • "BAN_THRESHOLD_EXCEED" quando ultrapassa o limite de banimento configurado.
    • outcome: o resultado da execução da ação configurada, por exemplo, ACCEPT, DENY, REDIRECT e EXEMPT.
    • preconfiguredExprIds: IDs de todas as expressões de regra WAF pré-configuradas que acionaram a regra.
    • threatIntelligence: informações sobre as listas de endereços IP correspondentes da Threat Intelligence, se aplicável.
      • categories: os nomes das listas de endereços IP correspondentes.
  • enforcedEdgeSecurityPolicy: a regra da política de segurança de borda que foi aplicada.
    • name: o nome da política de segurança.
    • priority: uma prioridade numérica da regra correspondente na política de segurança.
    • configuredAction: o nome da ação configurada na regra correspondente. Por exemplo, ALLOW, DENY.
    • outcome: o resultado da execução da ação configurada, por exemplo, ACCEPT, DENY.
  • previewEdgeSecurityPolicy: preenchido se uma solicitação corresponder a uma regra de política de segurança de borda configurada para visualização. Presente apenas quando uma regra de visualização tiver prioridade sobre a regra aplicada.
    • name: o nome da política de segurança.
    • priority: uma prioridade numérica da regra correspondente na política de segurança.
    • configuredAction: o nome da ação configurada na regra correspondente. Por exemplo, ALLOW, DENY.
    • outcome: o resultado da execução da ação configurada, por exemplo, ACCEPT, DENY.

Como ver registros

É possível ver os registros de uma política de segurança do Cloud Armor somente no console doTrusted Cloud .

Console

  1. No console Trusted Cloud , acesse Políticas do Cloud Armor.

    Acessar as políticas do Cloud Armor

  2. Clique em Ações.

  3. Selecione Ver registros.

Solicitar geração de registros de dados

Quando usado com o Cloud Armor, jsonPayload tem o seguinte campo adicional:

  • securityPolicyRequestData: dados relativos à solicitação enquanto estão sendo processados por uma política de segurança, independentemente de qual regra será correspondida.
    • recaptchaActionToken: dados relacionados a um token de ação do reCAPTCHA.
      • score: uma pontuação de legitimidade do usuário incorporada em um token de ação do reCAPTCHA. Presente apenas quando um token de ação do reCAPTCHA é anexado à solicitação e decodificado com base em uma regra de política de segurança. Para mais informações, consulte Aplicar a avaliação do reCAPTCHA.
    • recaptchaSessionToken: dados relacionados a um token de sessão do reCAPTCHA.
      • score: uma pontuação de legitimidade do usuário incorporada em um token de sessão do reCAPTCHA. Presente apenas quando um token de sessão do reCAPTCHA é anexado à solicitação e decodificado com base em uma regra de política de segurança.
    • tlsJa4Fingerprint: uma impressão digital TTL/SSL JA4 se o cliente se conectar usando HTTPS, HTTP/2 ou HTTP/3. Presente apenas se a impressão digital estiver disponível e houver uma política de segurança que avalie a solicitação (independente de uma expressão na política corresponder à solicitação).
    • tlsJa3Fingerprint: uma impressão digital JA3 TTL/SSL se o cliente se conectar usando HTTPS, HTTP/2 ou HTTP/3. Presente apenas se a impressão digital estiver disponível e houver uma política de segurança que avalie a solicitação (independente de uma expressão na política corresponder à solicitação).

Exemplos de registro

Veja a seguir um exemplo de detalhes de registro para uma regra de limitação que bloqueia uma solicitação:

jsonPayload: {
 enforcedSecurityPolicy: {
  priority: 100
  name: "sample-prod-policy"
  configuredAction: "THROTTLE"
  outcome: "DENY"
  rateLimitAction: {
    key:"sample-key"
    outcome:"RATE_LIMIT_THRESHOLD_EXCEED"
  }
 }
 @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
 statusDetails: "denied_by_security_policy"
}
httpRequest: {8}
resource: {2}
timestamp: "2021-03-17T19:16:48.185763Z"

Veja a seguir um exemplo de detalhes de registro para uma regra de proibição baseada em taxa que bloqueia uma solicitação:

jsonPayload: {
 @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
 enforcedSecurityPolicy: {
  priority: 150
  name: "sample-prod-policy"
  outcome: "DENY"
  configuredAction: "RATE_BASED_BAN"
  rateLimitAction: {
    key:"sample-key"
    outcome:"BAN_THRESHOLD_EXCEED"
  }
 }
 statusDetails: "denied_by_security_policy"
}
httpRequest: {8}
resource: {2}
timestamp: "2021-03-17T19:27:17.393244Z"

A seguir