Esta página contém informações sobre como configurar as regras da política de segurança do Google Cloud Armor para gerenciamento de bots. Antes de configurar o gerenciamento de bots, familiarize-se com as informações na visão geral do gerenciamento de bots.
Antes de começar
As seções a seguir explicam todos os papéis e permissões do Identity and Access Management (IAM)
necessários para configurar as políticas de segurança do Google Cloud Armor. Para
os casos de uso deste documento, você só precisa das
permissões
compute.securityPolicies.create
e compute.securityPolicies.update
.
Configure permissões de IAM para políticas de segurança do Google Cloud Armor
As operações a seguir exigem o papel de administrador de segurança (roles/compute.securityAdmin
) do
Identity and Access (IAM):
- Como configurar modificar, atualizar e excluir uma política de segurança do Google Cloud Armor
- Usando os seguintes métodos de API:
SecurityPolicies insert
SecurityPolicies delete
SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies 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 Google Cloud Armor para um serviço de back-end
- Usando os seguintes métodos de API:
BackendServices setSecurityPolicy
BackendServices list
(somentegcloud
)
Os usuários com os papéis de administrador de segurança (roles/iam.securityAdmin
) e de rede podem ver
as políticas de segurança do Google Cloud Armor usando os métodos de API SecurityPolicies
, get
, list
e getRule
.
Configure permissões de IAM para papéis personalizados
A tabela a seguir lista as permissões básicas dos papéis de IAM e os métodos de API associados.
Permissão de IAM | Métodos da API |
---|---|
compute.securityPolicies.create |
SecurityPolicies insert |
compute.securityPolicies.delete |
SecurityPolicies delete |
compute.securityPolicies.get |
SecurityPolicies get SecurityPolicies getRule |
compute.securityPolicies.list |
SecurityPolicies list |
compute.securityPolicies.use |
BackendServices setSecurityPolicy |
compute.securityPolicies.update |
SecurityPolicies patch SecurityPolicies addRule SecurityPolicies patchRule SecurityPolicies 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 Google Cloud Armor, é necessário associar
a chave de site do reCAPTCHA WAF (chave reCAPTCHA) do tipo CHALLENGEPAGE
a uma
política de segurança. Para mais informações sobre chaves reCAPTCHA, consulte a
Visão geral das chaves reCAPTCHA.
Para associar ou desassociar sua própria chave 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 chaveCHALLENGEPAGE
de reCAPTCHA
Associar uma chave reCAPTCHA
O exemplo a seguir associa uma chave de site do reCAPTCHA para WAF a uma política de segurança. A chave do reCAPTCHA associada aplica-se a todas as regras que usam o recurso de desafio manual de acordo com a política de segurança especificada.
gcloud compute security-policies update SECURITY_POLICY \ --recaptcha-redirect-site-key "SITE_KEY"
Desassociar uma chave reCAPTCHA
Para desassociar uma chave do reCAPTCHA de uma política de segurança, use este comando:
gcloud compute security-policies update SECURITY_POLICY \ --recaptcha-redirect-site-key ""
Redirecionar o tráfego para teste reCAPTCHA
Depois de associar sua chave reCAPTCHA à política de segurança, é possível criar uma regra nessa política para redirecionar o tráfego internamente para a avaliação do reCAPTCHA. Use o seguinte formato na CLI gcloud 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 que você quer criar a regra.SECURITY_POLICY
: o nome da política de segurançaEXPRESSION
: a expressão de linguagem de regras personalizadas que corresponde ao tráfego em que você quer aplicar a avaliação reCAPTCHA.SRC_IP_RANGE
: um intervalo de endereços IP. Use esse recurso para aplicar a avaliação de reCAPTCHA a todas as solicitações desse intervalo.
No exemplo a seguir, criamos uma regra que redireciona o tráfego que tenta alcançar
/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
Aplique a avaliação mais fácil do reCAPTCHA
Antes de continuar, consulte a visão geral do gerenciamento de bots para conferir os pré-requisitos sobre o uso de tokens de ação ou de sessão do reCAPTCHA.
Para extrair atributos de um token de ação reCAPTCHA, use
token.recaptcha_action.ATTRIBUTE
: Substitua
ATTRIBUTE
por um atributo de token válido na
linguagem de regras do Google Cloud Armor.
Da mesma forma, use token.recaptcha_session.ATTRIBUTE
para extrair atributos de um token de sessão reCAPTCHA. Para mais
informações sobre a sintaxe dos atributos de token do reCAPTCHA
disponíveis, consulte a
referência de linguagem das regras.
Um token de ação pode vir de um aplicativo da Web, do iOS ou Android, enquanto um token de sessão só pode vir de um aplicativo da Web. Cada plataforma requer uma chave do reCAPTCHA separada. As expressões token.recaptcha_action.ATTRIBUTE
e token.recaptcha_session.ATTRIBUTE
aplicam-se aos tokens de qualquer uma dessas plataformas. Para distinguir tokens de plataformas diferentes e evitar o roubo deles, recomendamos associar chaves do reCAPTCHA ao configurar regras que usam essas expressões.
Exemplos
O primeiro exemplo cria uma regra que permite a segmentação de tráfego /login.html
com um token de ação do reCAPTCHA cuja pontuação não é menor que 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 é igual ao primeiro, mas também 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 a segmentação de tráfego /login.html
,
com um token de sessão reCAPTCHA emitido com uma chave reCAPTCHA de
example-site-key-3
e com uma pontuação não inferior 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 de redirecionamento do tráfego a um URL configurado pelo usuário, use o seguinte formato na Google Cloud CLI:
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 que você quer criar a regra.SECURITY_POLICY
: o nome da política de segurançaEXPRESSION
: a expressão de linguagem de regras personalizadas que corresponde ao tráfego em que você quer aplicar a avaliação reCAPTCHA.SRC_IP_RANGE
: um intervalo de endereços IP. Use esse recurso para aplicar a avaliação de reCAPTCHA a todas as solicitações desse intervalo.REDIRECT_URL
: o URL para onde você quer redirecionar o tráfego.
O exemplo a seguir 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"
Decorar solicitação
Para criar uma regra que permita o tráfego, mas adicione cabeçalhos personalizados e valores estáticos definidos pelo usuário antes de enviá-los a back-ends protegidos, use o seguinte formato na CLI gcloud:
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 que você quer criar a regra.SECURITY_POLICY
: o nome da política de segurançaEXPRESSION
: a expressão de linguagem de regras personalizadas que corresponde ao tráfego em que você quer aplicar a avaliação reCAPTCHA.SRC_IP_RANGE
: um intervalo de endereços IP. Use esse recurso para aplicar a avaliação de reCAPTCHA a todas as solicitações desse intervalo.HEADER_#
: o nome do cabeçalho da solicitação que você quer usar para decorar a solicitação.VALUE_#
: o valor do cabeçalho da solicitação que você quer usar para decorar a solicitação.
O exemplo a seguir cria uma regra que permite a segmentação de tráfego /login.html
,
desde que a solicitação também tenha uma pontuação de token de ação reCAPTCHA
menor que 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
- Consulte a visão geral da limitação de taxa.
- Saiba mais sobre o gerenciamento de bots.