Esta página contém informações sobre a configuração das regras da política de segurança do Cloud Armor para a gestão de bots. Antes de configurar a gestão de bots, certifique-se de que conhece as informações na vista geral da gestão de bots.
Antes de começar
As secções seguintes explicam todas as funções e autorizações da gestão de identidade e de acesso (IAM) necessárias para configurar as políticas de segurança do Cloud Armor. Para os exemplos de utilização neste documento, só precisa das autorizações compute.securityPolicies.create
e compute.securityPolicies.update
.
Configure autorizações IAM para políticas de segurança do Cloud Armor
As seguintes operações requerem a função de administrador de segurança do Compute do Identity and Access Management (IAM)
(roles/compute.securityAdmin
):
- Configurar, modificar, atualizar e eliminar uma política de segurança do Cloud Armor
- Usando os seguintes métodos da API:
SecurityPolicies insert
SecurityPolicies delete
SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
Um utilizador com a função de administrador de rede de computação (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 da API:
BackendServices setSecurityPolicy
BackendServices list
(apenasgcloud
)
Os utilizadores com a função de administrador de segurança (roles/iam.securityAdmin
)
e a função de administrador de rede de computação podem ver as políticas de segurança do Cloud Armor
através dos métodos da API SecurityPolicies
get
, list
e
getRule
.
Configure autorizações da IAM para funções personalizadas
A tabela seguinte apresenta as autorizações base das funções da IAM e os respetivos métodos da API associados.
Autorizaçã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 |
Use um desafio manual do reCAPTCHA para distinguir entre clientes humanos ou automatizados
Para usar o reCAPTCHA com o Cloud Armor, tem de associar a chave de site do reCAPTCHA WAF (chave do reCAPTCHA) do tipo CHALLENGEPAGE
a uma política de segurança. Para mais informações sobre as chaves reCAPTCHA, consulte a
vista geral das chaves reCAPTCHA.
Para associar ou desassociar a sua 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 o seguinte:
SECURITY_POLICY
: o nome da política de segurançaSITE_KEY
: a sua chaveCHALLENGEPAGE
do reCAPTCHA
Associe uma chave reCAPTCHA
O exemplo seguinte associa uma chave do reCAPTCHA a uma política de segurança. A chave do reCAPTCHA associada aplica-se a todas as regras que usam a funcionalidade de desafio manual na política de segurança especificada.
gcloud compute security-policies update SECURITY_POLICY \ --recaptcha-redirect-site-key "SITE_KEY"
Desassocie 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 ""
Redirecione o tráfego para a avaliação do reCAPTCHA
Quando tiver associado a chave do reCAPTCHA à sua política de segurança, pode criar uma regra nessa política para redirecionar internamente o tráfego 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 o seguinte:
PRIORITY
: a prioridade com a qual quer criar a regraSECURITY_POLICY
: o nome da política de segurançaEXPRESSION
: a expressão da linguagem de regras personalizadas que corresponde ao tráfego no qual quer aplicar a avaliação do reCAPTCHASRC_IP_RANGE
: um intervalo de endereços IP. Use esta opção para aplicar a avaliação do reCAPTCHA a todos os pedidos deste intervalo.
O exemplo seguinte cria 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 sem atrito do reCAPTCHA
Antes de continuar, consulte a vista geral da gestão de bots para ver os pré-requisitos da utilização de tokens de ação ou tokens de sessão do reCAPTCHA.
Para extrair atributos de um token de ação do reCAPTCHA, pode usar
token.recaptcha_action.ATTRIBUTE
. Substitua ATTRIBUTE
por um atributo de token válido na linguagem de regras do Cloud Armor.
Da mesma forma, 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, consulte a
referência da linguagem de regras.
Um token de ação pode ter origem numa aplicação Web, numa aplicação iOS ou numa aplicação Android, enquanto um token de sessão só pode ter origem numa aplicação Web. Cada plataforma requer uma chave do reCAPTCHA separada. As expressões
token.recaptcha_action.ATTRIBUTE
e
token.recaptcha_session.ATTRIBUTE
aplicam-se a tokens de
qualquer uma destas plataformas. Para distinguir tokens de diferentes plataformas e evitar o roubo de tokens, recomendamos que associe chaves do reCAPTCHA quando configurar regras que usam estas expressões.
Exemplos
O primeiro exemplo cria uma regra que permite a segmentação por tráfego
/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 é igual ao primeiro, mas também requer que o token de ação seja emitido com uma chave 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 do reCAPTCHA emitido com uma chave do 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
Redirecionamento (resposta 302)
Para criar uma regra para redirecionar o tráfego para um URL configurado pelo utilizador, use o seguinte formato na CLI 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 o seguinte:
PRIORITY
: a prioridade com a qual quer criar a regraSECURITY_POLICY
: o nome da política de segurançaEXPRESSION
: a expressão de linguagem das regras personalizadas que corresponde ao tráfego no qual quer aplicar a avaliação do reCAPTCHASRC_IP_RANGE
: um intervalo de endereços IP. Use esta opção para aplicar a avaliação do reCAPTCHA a todos os pedidos deste intervalo.REDIRECT_URL
: o URL para o qual quer redirecionar o tráfego
O exemplo seguinte 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"
Pedido de decoração
Para criar uma regra que permita o tráfego, mas adicione cabeçalhos personalizados e valores estáticos definidos pelo utilizador antes de os enviar para os 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 o seguinte:
PRIORITY
: a prioridade com a qual quer criar a regraSECURITY_POLICY
: o nome da política de segurançaEXPRESSION
: a expressão da linguagem de regras personalizadas que corresponde ao tráfego no qual quer aplicar a avaliação do reCAPTCHASRC_IP_RANGE
: um intervalo de endereços IP. Use esta opção para aplicar a avaliação do reCAPTCHA a todos os pedidos deste intervalo.HEADER_#
: o nome do cabeçalho do pedido com o qual quer decorar o pedidoVALUE_#
: o valor do cabeçalho do pedido com o qual quer decorar o pedido
O exemplo seguinte cria uma regra que permite a segmentação de tráfego /login.html
,
desde que o pedido também tenha uma pontuação do 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"
O que se segue?
- Veja a vista geral da limitação de velocidade.
- Saiba mais sobre a gestão de bots.