Nesta página, descrevemos exemplos de configurações de política de segurança para diferentes tipos de balanceadores de carga e políticas de segurança.
Configurar políticas de segurança para balanceadores de carga de aplicativo externos
Veja a seguir as etapas gerais para configurar políticas de segurança do Google Cloud Armor e ativar regras que permitem ou negam tráfego para o balanceador de carga de aplicativo externo ou clássico:
- Crie uma política de segurança do Google Cloud Armor.
- Adicione regras à política de segurança com base em listas de endereços IP, expressões personalizadas ou conjuntos pré-configurados de expressões.
- Anexe a política de segurança a um serviço de back-end do balanceador de carga de aplicativo externo global ou do balanceador de carga clássico do aplicativo em que você quer controlar o acesso.
- Atualize a política de segurança conforme necessário.
No exemplo a seguir, crie duas políticas de segurança do Google Cloud Armor e aplique-as a diferentes serviços de back-end.
No exemplo, estas são as políticas de segurança do Google Cloud Armor:
mobile-clients-policy
se aplica a usuários externos dos serviçosgames
.internal-users-policy
se aplica à equipetest-network
da sua organização.
Aplique mobile-clients-policy
ao serviço games
, cujo serviço de back-end
é chamado games
, e aplique internal-users-policy
ao serviço test
interno da equipe de teste, cujo serviço de back-end correspondente é chamado
test-network
.
Se as instâncias de back-end de um serviço de back-end estiverem em várias regiões,
a política de segurança do Google Cloud Armor associada ao serviço será
aplicável às instâncias em todas as regiões. No exemplo anterior, a
política de segurança mobile-clients-policy
é aplicável
às instâncias 1, 2, 3 e 4 em us-central
e às instâncias 5 e 6 em
us-east
.
Criar o exemplo
Use estas instruções para criar o exemplo de configuração discutido na seção anterior.
Console
Configure a política de segurança para usuários externos:
No console do Google Cloud, acesse a página Políticas do Google Cloud Armor.
Clique em Criar políticas.
No campo Nome, use
mobile-clients-policy
.No campo Descrição, use
Policy for external users
.Em Ação de regra padrão, selecione Negar.
Em Status negado, selecione 404 (não encontrado).
Clique em Próxima etapa.
Adicione mais regras:
- Clique em Adicionar regra.
- No campo Descrição, use
allow traffic from 192.0.2.0/24
. - Em Modo, selecione Modo básico (somente intervalos/endereços IP).
- No campo Correspondência, insira
192.0.2.0/24
. - Em Ação, selecione Permitir.
- No campo Prioridade, digite
1000
. - Clique em Concluído.
- Clique em Próxima etapa.
Aplicar a política nos destinos:
- Clique em Adicionar destino.
- Na lista Destino, selecione uma opção.
- Clique em Concluído.
- Clique em Criar política.
Como opção, ativar a Proteção adaptável do Google Cloud Armor
- Para ativar a Proteção adaptativa, marque a caixa de seleção Ativar.
Configure a política de segurança para usuários internos:
- Clique em Criar políticas.
- No campo Nome, use
internal-users-policy
. - No campo Descrição, use
Policy for internal test users
. - Em Ação de regra padrão, selecione Negar.
- Em Status negado, selecione 502 (gateway incorreto).
- Clique em Próxima etapa.
Adicione mais regras:
- Clique em Adicionar regra.
- No campo Descrição, use
allow traffic from 198.51.100.0/24
. - Em Modo, selecione Modo básico (somente intervalos/endereços IP).
- No campo Correspondência, insira
198.51.100.0/24
. - Em Ação, selecione Permitir.
- Em Apenas visualização, marque a caixa de seleção Ativar.
- No campo Prioridade, digite
1000
. - Clique em Concluído.
- Clique em Próxima etapa.
Aplicar a política nos destinos:
- Clique em Adicionar destino.
- Na lista Destino, selecione uma opção.
- Clique em Concluído.
- Clique em Criar política.
gcloud
Crie as políticas de segurança do Google Cloud Armor:
gcloud compute security-policies create mobile-clients-policy \ --description "policy for external users"
gcloud compute security-policies create internal-users-policy \ --description "policy for internal test users"
Atualize as regras padrão das políticas de segurança para negar tráfego:
gcloud compute security-policies rules update 2147483647 \ --security-policy mobile-clients-policy \ --action "deny-404"
gcloud compute security-policies rules update 2147483647 \ --security-policy internal-users-policy \ --action "deny-502"
Adicione regras às políticas de segurança:
gcloud compute security-policies rules create 1000 \ --security-policy mobile-clients-policy \ --description "allow traffic from 192.0.2.0/24" \ --src-ip-ranges "192.0.2.0/24" \ --action "allow"
gcloud compute security-policies rules create 1000 \ --security-policy internal-users-policy \ --description "allow traffic from 198.51.100.0/24" \ --src-ip-ranges "198.51.100.0/24" \ --action "allow"
Anexe as políticas de segurança aos serviços de back-end:
gcloud compute backend-services update games \ --security-policy mobile-clients-policy
gcloud compute backend-services update test-network \ --security-policy internal-users-policy
Como opção, ative a Proteção adaptativa:
gcloud compute security-policies update mobile-clients-policy \ --enable-layer7-ddos-defense
gcloud compute security-policies update internal-users-policy \ --enable-layer7-ddos-defense
Criar políticas de segurança
Use o console do Google Cloud ou a CLI gcloud para criar políticas de segurança. Nas instruções desta seção, pressupomos que você esteja configurando políticas de segurança para serem aplicadas a um balanceador de carga de aplicativo externo global ou a um balanceador de carga de aplicativo clássico e a um serviço de back-end. Para ver um exemplo de como preencher os campos, consulte Como criar o exemplo.
Console
Crie políticas e regras de segurança do Google Cloud Armor e anexe uma política de segurança a um serviço de back-end:
No console do Google Cloud, acesse a página Políticas do Google Cloud Armor.
Clique em Criar políticas.
No campo Nome, digite o nome da política.
Opcional: insira uma descrição da política.
Em Tipo de política, escolha Política de segurança de back-end ou Política de segurança de borda.
Por Ação de regra padrão , selecione Permitir para uma regra padrão que permite acesso ou selecione Negar para uma regra padrão que proíbe o acesso a um endereço IP ou intervalo de endereços IP.
A regra padrão é a de menor prioridade que entra em vigor somente se nenhuma outra regra se aplicar.
Se você estiver configurando uma regra de negação, selecione uma mensagem Status negado. Esta é a mensagem de erro que o Google Cloud Armor exibe se um usuário sem acesso tentar consegui-lo.
Independentemente do tipo de regra que você está configurando, clique em Próxima etapa.
Adicione mais regras:
- Clique em Adicionar regra.
- Opcional: insira uma descrição para a regra.
Selecione o modo:
- Modo básico: permita ou negue o tráfego com base em endereços IP ou intervalos de IP.
- Modo avançado: permite ou nega tráfego com base em expressões de regra.
No campo Correspondência, especifique as condições sob as quais a regra se aplica:
- Modo básico: digite os endereços IP ou os intervalos de IP que serão correspondentes na regra.
- Modo avançado: insira uma expressão ou subexpressões a serem avaliadas em relação às solicitações recebidas. Para informações sobre como escrever as expressões, consulte Configurar atributos de linguagem de regras personalizadas.
Em Ação, selecione Permitir ou Negar para permitir ou negar o tráfego, se a regra corresponder.
Para ativar o modo de visualização, marque a caixa de seleção Ativar. No modo de visualização, é possível ver como a regra se comporta, mas ela não está ativada.
Digite a Prioridade da regra. Pode ser qualquer número inteiro positivo entre 0 e 2.147.483.646, inclusive. Para mais informações sobre a ordem de avaliação, consulte Ordem de avaliação da regra.
Clique em Concluído.
Para adicionar mais regras, clique em Adicionar regra e repita as etapas anteriores. Caso contrário, clique em Próxima etapa.
Aplicar a política nos destinos:
- Clique em Adicionar destino.
- Na lista Destino, selecione uma opção.
- Para adicionar mais destinos, clique em Adicionar destino.
- Clique em Concluído.
- Clique em Criar política.
gcloud
Para criar uma nova política de segurança do Google Cloud Armor, use o comando
gcloud compute security-policies create
.No campo
type
, useCLOUD_ARMOR
para criar uma política de segurança de back-end ouCLOUD_ARMOR_EDGE
para criar uma política de segurança de borda. A sinalizaçãotype
é opcional. Se nenhum tipo for especificado, uma política de segurança de back-end será criada por padrão:gcloud compute security-policies create NAME \ [--type=CLOUD_ARMOR|CLOUD_ARMOR_EDGE] \ [--file-format=FILE_FORMAT | --description=DESCRIPTION] \ [--file-name=FILE_NAME]
Substitua:
NAME
: o nome da política de segurançaDESCRIPTION
: a descrição da política de segurança
O comando a seguir atualiza uma política que você criou anteriormente, ativa a análise JSON e altera o nível do registro para
VERBOSE
:gcloud compute security-policies update my-policy \ --json-parsing=STANDARD \ --log-level=VERBOSE
Para adicionar regras a uma política de segurança, use o comando
gcloud compute security-policies rules create PRIORITY
.gcloud compute security-policies rules create PRIORITY \ [--security-policy POLICY_NAME] \ [--description DESCRIPTION] \ --src-ip-ranges IP_RANGE,... | --expression EXPRESSION \ --action=[ allow | deny-403 | deny-404 | deny-502 ] \ [--preview]
Substitua
PRIORITY
pela prioridade atribuída à regra na política. Para mais informações sobre como a prioridade da regra funciona, consulte Ordem de avaliação da regra.Por exemplo, o comando a seguir adiciona uma regra para bloquear o tráfego dos intervalos de endereços IP
192.0.2.0/24
e198.51.100.0/24
. A regra tem prioridade 1.000 e faz parte de uma política chamadamy-policy
.gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \ --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \ --action "deny-403"
Com o sinalizador
--preview
adicionado, a regra é adicionada à política, mas não é aplicada e qualquer tráfego que acione a regra será apenas registrado.gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \ --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \ --action "deny-403" \ --preview
Use a sinalização
--expression
para especificar uma condição personalizada. Para mais informações, consulte Configurar atributos de idioma de regras personalizadas. O comando a seguir adiciona uma regra para permitir o tráfego do endereço IP1.2.3.4
e contém a stringexample
no cabeçalho do user agent:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')" \ --action allow \ --description "Block User-Agent 'example'"
O comando a seguir adiciona uma regra para bloquear solicitações se o cookie da solicitação contiver um valor específico:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')" \ --action "deny-403" \ --description "Cookie Block"
O comando a seguir adiciona uma regra para bloquear solicitações da região
AU
:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "origin.region_code == 'AU'" \ --action "deny-403" \ --description "AU block"
O comando a seguir adiciona uma regra para bloquear solicitações da região
AU
que não estão no intervalo de IP especificado:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "origin.region_code == 'AU' && !inIpRange(origin.ip, '1.2.3.0/24')" \ --action "deny-403" \ --description "country and IP block"
O comando a seguir adiciona uma regra para bloquear solicitações com um URI que corresponda a uma expressão regular:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "request.path.matches('/example_path/')" \ --action "deny-403" \ --description "regex block"
O comando a seguir adiciona uma regra para bloquear solicitações se o valor decodificado em Base64 do cabeçalho
user-id
contiver um valor específico:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')" \ --action "deny-403" \ --description "country and IP block"
O comando a seguir adiciona uma regra que usa um conjunto de expressões pré-configuradas para mitigar ataques SQLi:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "evaluatePreconfiguredExpr('sqli-stable')" \ --action "deny-403"
O comando a seguir adiciona uma regra que usa uma expressão pré-configurada para permitir o acesso de todos os endereços IP em uma lista de endereços IP nomeada:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "evaluatePreconfiguredExpr('sourceiplist-fastly')" \ --action "allow"
Configurar políticas de segurança para balanceadores de carga de aplicativos externos regionais
Esta seção contém informações sobre como configurar políticas de segurança do Google Cloud Armor com escopo regional para balanceadores de carga de aplicativo externos regionais.
Proteger cargas de trabalho com balanceamento de carga regional
Use as etapas a seguir para configurar uma política de segurança a fim de proteger o serviço de back-end com escopo regional:
Crie uma política de segurança com escopo regional.
gcloud compute security-policies create POLICY_NAME \ --type=CLOUD_ARMOR \ --region=REGION
Anexe a política de segurança com escopo regional a um serviço de back-end com escopo regional. Substitua
BACKEND_NAME
pelo nome do serviço de back-end com escopo regional.gcloud compute backend-services update BACKEND_NAME \ --security-policy=POLICY_NAME \ --region=REGION
Aplicar uma política de segurança do Google Cloud Armor com escopo regional
Considere um exemplo em que você é um administrador de segurança e quer atender a um requisito de residência de que todas as cargas de trabalho de back-end e regras do WAF sejam implantadas em uma região específica. Suponha que você já tenha feito o seguinte:
- Você criou serviços de back-end com balanceamento de carga com escopo regional na região.
- Você desativou todas as políticas de segurança com escopo global na sua implantação.
- Você criou e anexou uma política de segurança com escopo regional na mesma região (como na seção anterior).
É possível adicionar regras WAF e outras regras avançadas à política enquanto atende ao requisito usando os seguintes comandos de exemplo:
Adicione uma regra WAF à política:
gcloud compute security-policies rules create 1000 --action=deny-404 \ --expression="evaluatePreconfiguredExpr('xss-v33-stable', ['owasp-crs-v030301-id941100-xss', 'owasp-crs-v030301-id941160-xss'])" \ --security-policy=POLICY_NAME \ --region=REGION
Adicione uma regra avançada à política:
gcloud compute security-policies rules create 1000 --action=allow \ --expression="has(request.headers['cookie']) && request.headers['cookie'].contains('80=EXAMPLE')" \ --security-policy=POLICY_NAME \ --region=REGION
Adicione uma regra de limitação de taxa à política:
gcloud compute security-policies rules create 1000 --action=throttle \ --src-ip-ranges="1.1.1.1/32" \ --rate-limit-threshold-count=1000 \ --rate-limit-threshold-interval-sec=120 \ --conform-action="allow" \ --exceed-action="deny-429" \ --enforce-on-key=IP \ --ban-duration-sec=999 \ --ban-threshold-count=5000 \ --ban-threshold-interval-sec=60 \ --security-policy=POLICY_NAME \ --region=REGION
A seguir
- Configurar políticas de segurança do Google Cloud Armor
- Saiba mais sobre a limitação de taxa.