Esta página contém informações sobre como configurar regras de política de segurança do Cloud Armor para a gestão de bots. Antes de começar a configurar a gestão de bots, garanta que você já conhece as informações apresentadas na visão geral da gestão de bots.
Antes de começar
As seções a seguir explicam todos os papéis e as permissões do Identity and Access Management (IAM)
necessários para configurar as políticas de segurança do Cloud Armor. Para
os casos de uso abordados neste documento, você só precisa das
permissões
compute.securityPolicies.create e compute.securityPolicies.update.
Configurar permissões de IAM para políticas de segurança do Cloud Armor
Para executar as operações abaixo, é necessário ter o
papel de administrador de segurança do Compute(roles/compute.securityAdmin) do Identity and Access Management (IAM):
- Como configurar modificar, atualizar e excluir uma política de segurança do Cloud Armor
- Usando os seguintes métodos de API:
SecurityPolicies insertSecurityPolicies deleteSecurityPolicies patchSecurityPolicies addRuleSecurityPolicies patchRuleSecurityPolicies removeRule
Um usuário com o papel de administrador da rede do Compute (roles/compute.networkAdmin)
pode realizar as seguintes operações:
- Definir uma política de segurança do Cloud Armor para um serviço de back-end
- Usando os seguintes métodos de API:
BackendServices setSecurityPolicyBackendServices list(somentegcloud)
Os usuários com os papéis de administrador de segurança (roles/iam.securityAdmin)
e de administrador de rede do Compute podem visualizar as políticas de segurança
do Cloud Armor usando os métodos get, list e getRule da API SecurityPolicies.
Configurar permissões do IAM para papéis personalizados
A tabela a seguir lista as permissões básicas dos papéis do IAM e os métodos de API associados.
| Permissão do IAM | Métodos da API |
|---|---|
compute.securityPolicies.create |
SecurityPolicies insert |
compute.securityPolicies.delete |
SecurityPolicies delete |
compute.securityPolicies.get |
SecurityPolicies getSecurityPolicies getRule |
compute.securityPolicies.list |
SecurityPolicies list |
compute.securityPolicies.use |
BackendServices setSecurityPolicy |
compute.securityPolicies.update |
SecurityPolicies patchSecurityPolicies addRuleSecurityPolicies patchRuleSecurityPolicies removeRule |
compute.backendServices.setSecurityPolicy |
BackendServices setSecurityPolicy |
Usar um desafio manual do reCAPTCHA para distinguir entre clientes humanos e automatizados
Para usar o reCAPTCHA com o Cloud Armor, é necessário associar
sua chave do site do reCAPTCHA para WAF (chave do reCAPTCHA) do tipo CHALLENGEPAGE a uma
política de segurança. Para mais informações sobre as chaves reCAPTCHA, confira
Visão geral das chaves do reCAPTCHA.
Para associar ou desassociar a própria chave do reCAPTCHA a uma política de segurança, use o seguinte comando:
gcloud compute security-policies update SECURITY_POLICY \
--recaptcha-redirect-site-key SITE_KEY
Substitua:
SECURITY_POLICY: o nome da política de segurançaSITE_KEY: sua chave do reCAPTCHA do tipoCHALLENGEPAGE
Associar uma chave do reCAPTCHA
O exemplo a seguir associa uma chave do reCAPTCHA a uma política de segurança. A chave do reCAPTCHA associada se aplica a todas as regras que usam o recurso de desafio manual na política de segurança fornecida.
gcloud compute security-policies update SECURITY_POLICY \
--recaptcha-redirect-site-key "SITE_KEY"
Desassociar uma chave do reCAPTCHA
Para desassociar uma chave do reCAPTCHA de uma política de segurança, use o seguinte comando:
gcloud compute security-policies update SECURITY_POLICY \
--recaptcha-redirect-site-key ""
Redirecionar o tráfego para o teste reCAPTCHA
Após associar a chave do reCAPTCHA à política de segurança, é possível criar uma regra nessa política para redirecionar internamente o tráfego para o teste reCAPTCHA. Use o seguinte formato na gcloud CLI para redirecionar o tráfego:
gcloud compute security-policies rules create PRIORITY \
--security-policy SECURITY_POLICY \
{--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE} \
--action redirect \
--redirect-type google-recaptcha
Substitua:
PRIORITY: a prioridade com a qual você deseja criar a regraSECURITY_POLICY: o nome da política de segurançaEXPRESSION: a expressão da linguagem de regras personalizada que corresponde ao tráfego no qual você deseja aplicar o teste reCAPTCHASRC_IP_RANGE: um intervalo de endereços IP. Use esse comando para aplicar o teste reCAPTCHA em todas as solicitações desse intervalo.
O exemplo a seguir cria uma regra que redireciona o tráfego que tenta acessar
/login.html para um desafio manual do reCAPTCHA:
gcloud compute security-policies rules create 1000 \
--security-policy SECURITY_POLICY \
--expression "request.path.matches(\"/login.html\")" \
--action redirect \
--redirect-type google-recaptcha
Aplicar avaliações mais fáceis do reCAPTCHA
Antes de prosseguir, confira a visão geral da gestão de bots para conhecer os pré-requisitos sobre o uso de tokens de ação ou tokens de sessão do reCAPTCHA.
Para extrair atributos de um token de ação do reCAPTCHA, você pode usar
token.recaptcha_action.ATTRIBUTE. Substitua
ATTRIBUTE por um atributo de token válido na
linguagem de regras do Cloud Armor.
Da forma semelhante, use token.recaptcha_session.ATTRIBUTE
para extrair atributos de um token de sessão do reCAPTCHA. Para mais
informações sobre a sintaxe dos atributos de token do reCAPTCHA
disponíveis, confira a
referência de linguagem para regras.
Um token de ação pode ter origem em um aplicativo da web ou um aplicativo iOS
ou Android, enquanto um token de sessão pode ter origem apenas em um aplicativo
da web. Cada plataforma requer uma chave do reCAPTCHA distinta. As expressões
token.recaptcha_action.ATTRIBUTE e
token.recaptcha_session.ATTRIBUTE se aplicam a tokens de
qualquer uma dessas plataformas. Para distinguir tokens de diferentes plataformas e
evitar o roubo de tokens, recomendamos que você associe as chaves do reCAPTCHA ao
configurar regras que usem essas expressões.
Exemplos
O primeiro exemplo cria uma regra que permite o tráfego direcionado a
/login.html com um token de ação do reCAPTCHA cuja pontuação seja
igual ou superior a 0.8.
gcloud compute security-policies rules create 1000 \
--security-policy SECURITY_POLICY \
--expression "request.path.matches(\"/login.html\") && token.recaptcha_action.score >= 0.8" \
--action allow
O segundo exemplo é idêntico ao primeiro, mas requer que
o token de ação seja emitido com uma chave do reCAPTCHA de example-site-key-1 ou
example-site-key-2:
gcloud compute security-policies rules create 1000 \
--security-policy SECURITY_POLICY \
--expression "request.path.matches(\"/login.html\") && token.recaptcha_action.score >= 0.8" \
--recaptcha-action-site-keys "example-site-key-1,example-site-key-2" \
--action allow
O terceiro exemplo cria uma regra que permite o tráfego direcionado a /login.html,
com um token de sessão do reCAPTCHA emitido com uma chave do reCAPTCHA de
example-site-key-3 e com uma pontuação igual ou superior a 0.8.
gcloud compute security-policies rules create 1000 \
--security-policy SECURITY_POLICY \
--expression "request.path.matches(\"/login.html\") && token.recaptcha_session.score >= 0.8" \
--recaptcha-session-site-keys "example-site-key-3" \
--action allow
Redirecionar (resposta 302)
Para criar uma regra que redireciona o tráfego para um URL configurado pelo usuário, use o seguinte formato na CLI do Google Cloud:
gcloud compute security-policies rules create PRIORITY \
--security-policy SECURITY_POLICY \
{--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE} \
--action redirect \
--redirect-type external-302 \
--redirect-target REDIRECT_URL
Substitua:
PRIORITY: a prioridade com a qual você deseja criar a regraSECURITY_POLICY: o nome da política de segurançaEXPRESSION: a expressão da linguagem de regras personalizada que corresponde ao tráfego no qual você deseja aplicar o teste reCAPTCHASRC_IP_RANGE: um intervalo de endereços IP. Use esse comando para aplicar o teste reCAPTCHA em todas as solicitações desse intervalo.REDIRECT_URL: o URL para o qual você deseja redirecionar o tráfego
O exemplo abaixo cria uma regra que redireciona o tráfego proveniente de 10.10.10.0/24 para https://www.example.com.
gcloud compute security-policies rules create 1000 \ --security-policy SECURITY_POLICY \ --src-ip-ranges "10.10.10.0/24" \ --action redirect \ --redirect-type external-302 \ --redirect-target "https://www.example.com"
Incrementar a solicitação
Para criar uma regra que permite o tráfego, mas adiciona cabeçalhos personalizados e valores estáticos definidos pelo usuário antes de enviá-los para os back-ends protegidos, use o seguinte formato na gcloud CLI:
gcloud compute security-policies rules create PRIORITY \
--security-policy SECURITY_POLICY \
{--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE} \
--action allow \
--request-headers-to-add HEADER_1=VALUE_1,HEADER_2=VALUE_2,...
Substitua:
PRIORITY: a prioridade com a qual você deseja criar a regraSECURITY_POLICY: o nome da política de segurançaEXPRESSION: a expressão da linguagem de regras personalizada que corresponde ao tráfego no qual você deseja aplicar o teste reCAPTCHASRC_IP_RANGE: um intervalo de endereços IP. Use esse comando para aplicar o teste reCAPTCHA em todas as solicitações desse intervalo.HEADER_#: o nome do cabeçalho da solicitação com o qual você deseja incrementar a solicitaçãoVALUE_#: o valor do cabeçalho da solicitação com o qual você deseja incrementar a solicitação
O exemplo abaixo cria uma regra que permite o tráfego direcionado a /login.html,
desde que a solicitação também tenha uma pontuação de token de ação do reCAPTCHA
inferior a 0.2.
gcloud compute security-policies rules create 1000 \
--security-policy SECURITY_POLICY \
--expression "request.path.matches("/login.html") && token.recaptcha_action.score < 0.2" \
--action allow \
--request-headers-to-add "reCAPTCHA-Warning=high"
A seguir
- Confira a visão geral da limitação de taxa.
- Saiba mais sobre a gestão de bots.