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 Google Cloud Armor.

Os registros do Google Cloud Armor fazem parte dos registros do Cloud Load Balancing. Isso significa que a geração de registros do Google 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 Google 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 Google Cloud Armor e o resultado ou a ação realizada. 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 esta página. Para o balanceador de carga de rede de proxy externo, é possível usar os comandos do 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 do proxy externo usando o console do Google 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 Google Cloud Armor. As entradas incluem a seguinte estrutura em jsonPayload: Os detalhes da solicitação HTTP aparecem na mensagem httpRequest.

  • statusDetails (string): 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 por um balanceador de carga devido a uma política de segurança do Google 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 Google Cloud Armor.
  • enforcedSecurityPolicy: a regra da política de segurança que foi aplicada.
    • name (string): nome da política de segurança
    • priority (número): a prioridade da regra correspondente na política de segurança
    • adaptiveProtection: informações sobre a regra da Proteção adaptável implantada automaticamente, se aplicável.
      • autoDeployAlertId: o ID do alerta dos eventos que a Proteção adaptável detectou.
    • configuredAction (string): 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 (string): valor da chave de limite de taxa (até 32 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 (string): 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 (string): o resultado da execução da ação configurada, por exemplo, ACCEPT, DENY, REDIRECT e EXEMPT.
    • preconfiguredExprIds (string): 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 do Threat Intelligence, se aplicável.
      • categories: (string) os nomes da lista de endereços IP correspondentes.
  • previewSecurityPolicy: preenchido se uma solicitação corresponder a uma regra configurada para visualização (presente apenas quando uma regra de visualização tiver prioridade sobre a aplicada).
    • name (string): nome da política de segurança
    • priority (número): a prioridade da regra correspondente na política de segurança
    • configuredAction (string): 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 (string): valor da chave de limite de taxa (até 32 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 (string): 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 (string): o resultado da execução da configuração.
    • outcome (string): o resultado da execução da ação configurada, por exemplo, ACCEPT, DENY, REDIRECT e EXEMPT.
    • preconfiguredExprIds (string): 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 do Threat Intelligence, se aplicável.
      • categories: (string) os nomes da lista de endereços IP correspondentes.
  • enforcedEdgeSecurityPolicy (Visualização): a regra da política de segurança de borda que foi aplicada.
    • name (string): nome da política de segurança
    • priority (número): a prioridade da regra correspondente na política de segurança
    • configuredAction (string): o nome da ação configurada na regra correspondente. Por exemplo, ALLOW, DENY.
    • outcome (string): o resultado da execução da ação configurada, por exemplo, ACCEPT, DENY.
  • previewEdgeSecurityPolicy (Visualização): 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 teria prioridade sobre a aplicada).
    • name (string): nome da política de segurança
    • priority (número): a prioridade da regra correspondente na política de segurança
    • configuredAction (string): o nome da ação configurada na regra correspondente. Por exemplo, ALLOW, DENY.
    • outcome (string): o resultado da execução da ação configurada, por exemplo, ACCEPT, DENY.

Como visualizar registros

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

Console

  1. No console do Google Cloud, acesse as políticas do Google Cloud Armor.

    Acessar as políticas do Google Cloud Armor

  2. Clique em Ações.

  3. Selecione Ver registros.

Solicitar geração de registros de dados

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

  • 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 Enterprise.
      • score (float): uma pontuação de legitimidade do usuário incorporada em um token de ação do reCAPTCHA Enterprise. Presente apenas quando um token de ação do reCAPTCHA Enterprise é 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 Enterprise.
    • recaptchaSessionToken: dados relacionados a um token de sessão reCAPTCHA Enterprise.
      • score (float): uma pontuação de legitimidade do usuário incorporada em um token de sessão do reCAPTCHA Enterprise. Presente apenas quando um token de sessão do reCAPTCHA Enterprise é anexado à solicitação e é decodificado com base em uma regra de política de segurança.
    • tlsJa3Fingerprint: uma impressão digital de TTL/SSL do JA3 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, independentemente 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

Saiba mais sobre a solução de problemas do Google Cloud Armor.