Esta página descreve exemplos de configurações de políticas de segurança para diferentes tipos de balanceadores de carga e políticas de segurança.
Configure políticas de segurança para equilibradores de carga de aplicações externos
Seguem-se os passos gerais para configurar as políticas de segurança do Google Cloud Armor para ativar regras que permitem ou negam tráfego ao balanceador de carga de aplicações externo global ou ao balanceador de carga de aplicações clássico:
- Crie uma política de segurança do Cloud Armor.
- Adicione regras à política de segurança com base em listas de endereços IP, expressões personalizadas ou conjuntos de expressões pré-configurados.
- Anexe a política de segurança a um serviço de back-end do balanceador de carga de aplicações externo global ou do balanceador de carga de aplicações clássico para o qual quer controlar o acesso.
- Atualize a política de segurança conforme necessário.
No exemplo seguinte, cria duas políticas de segurança do Cloud Armor e aplica-as a diferentes serviços de back-end.
No exemplo, estas são as políticas de segurança do Cloud Armor:
mobile-clients-policy
aplica-se a utilizadores externos dos seus serviçosgames
.internal-users-policy
aplica-se à equipatest-network
da sua organização.
Aplica mobile-clients-policy
ao serviço games
, cujo serviço de back-end se chama games
, e aplica internal-users-policy
ao serviço interno test
para a equipa de testes, cujo serviço de back-end correspondente se chama 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 Cloud Armor associada ao serviço é aplicável a 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
.
Crie o exemplo
Use estas instruções para criar a configuração de exemplo abordada na secção anterior.
Consola
Configure a política de segurança para utilizadores externos:
Na Google Cloud consola, aceda à página Políticas do Google Cloud Armor.
Clique em Criar políticas.
No campo Nome, introduza
mobile-clients-policy
.No campo Descrição, introduza
Policy for external users
.Para Ação da regra predefinida, selecione Recusar.
Para Estado de recusa, selecione 404 (Não encontrado).
Clique em Passo seguinte.
Adicione mais regras:
- Clique em Adicionar regra.
- No campo Descrição, introduza
allow traffic from 192.0.2.0/24
. - Para Modo, selecione Modo básico (apenas endereços/intervalos de IP).
- No campo Correspondência, introduza
192.0.2.0/24
. - Em Ação, selecione Permitir.
- No campo Prioridade, introduza
1000
. - Clique em Concluído.
- Clique em Passo seguinte.
Aplicar política a destinos:
- Clique em Adicionar alvo.
- Na lista Segmentar, selecione uma segmentação.
- Clique em Concluído.
- Clique em Criar política.
Opcionalmente, ative a proteção adaptável do Google Cloud Armor:
- Para ativar a proteção adaptável, selecione a caixa de verificação Ativar.
Configure a política de segurança para utilizadores internos:
- Clique em Criar políticas.
- No campo Nome, introduza
internal-users-policy
. - No campo Descrição, introduza
Policy for internal test users
. - Para Ação da regra predefinida, selecione Recusar.
- Para o Estado de recusa, selecione 502 (Gateway incorreto).
- Clique em Passo seguinte.
Adicione mais regras:
- Clique em Adicionar regra.
- No campo Descrição, introduza
allow traffic from 198.51.100.0/24
. - Para Modo, selecione Modo básico (apenas endereços/intervalos de IP).
- No campo Correspondência, introduza
198.51.100.0/24
. - Em Ação, selecione Permitir.
- Para Pré-visualizar apenas, selecione a caixa de verificação Ativar.
- No campo Prioridade, introduza
1000
. - Clique em Concluído.
- Clique em Passo seguinte.
Aplicar política a destinos:
- Clique em Adicionar alvo.
- Na lista Segmentar, selecione uma segmentação.
- Clique em Concluído.
- Clique em Criar política.
gcloud
Crie as políticas de segurança do 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 predefinidas das políticas de segurança para recusar 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
Opcionalmente, ative a proteção adaptável:
gcloud compute security-policies update mobile-clients-policy \ --enable-layer7-ddos-defense
gcloud compute security-policies update internal-users-policy \ --enable-layer7-ddos-defense
Crie políticas de segurança
Pode usar a Google Cloud consola ou a CLI gcloud para criar políticas de segurança. As instruções nesta secção partem do princípio de que está a configurar políticas de segurança para aplicar a um balanceador de carga de aplicações externo global existente ou a um balanceador de carga de aplicações clássico e a um serviço de back-end. Para ver um exemplo de como preencher os campos, consulte a secção Criar o exemplo.
Consola
Crie políticas e regras de segurança do Cloud Armor e anexe uma política de segurança a um serviço de back-end:
Na Google Cloud consola, aceda à página Políticas do Google Cloud Armor.
Clique em Criar políticas.
No campo Nome, introduza o nome da sua política.
Opcional: introduza uma descrição da política.
Para Tipo de política, escolha Política de segurança de back-end ou Política de segurança de edge.
Para a Ação da regra predefinida, selecione Permitir para uma regra predefinida que permita o acesso ou selecione Recusar para uma regra predefinida que proíba o acesso a um endereço IP ou a um intervalo de endereços IP.
A regra predefinida é a regra de prioridade mais baixa que entra em vigor apenas se não se aplicar nenhuma outra regra.
Se estiver a configurar uma regra Recusar, selecione uma mensagem de Estado de recusa. Esta é a mensagem de erro que o Cloud Armor apresenta se um utilizador sem acesso tentar obter acesso.
Independentemente do tipo de regra que estiver a configurar, clique em Passo seguinte.
Adicione mais regras:
- Clique em Adicionar regra.
- Opcional: introduza uma descrição para a regra.
Selecione o modo:
- Modo básico: permitir ou negar tráfego com base em endereços IP ou intervalos de IP.
- Modo avançado: permitir ou recusar tráfego com base em expressões de regras.
No campo Correspondência, especifique as condições em que a regra se aplica:
- Modo básico: introduza endereços IP ou intervalos de IP para corresponder na regra.
- Modo avançado: introduza uma expressão ou subexpressões para avaliar em função dos pedidos recebidos. Para ver informações sobre como escrever as expressões, consulte o artigo Configure atributos de linguagem de regras personalizadas.
Em Ação, selecione Permitir ou Recusar para permitir ou recusar tráfego se a regra corresponder.
Para ativar o modo de pré-visualização, selecione a caixa de verificação Ativar. No modo de pré-visualização, pode ver o comportamento da regra, mas a regra não está ativada.
Introduza a prioridade da regra. Pode ser qualquer número inteiro positivo de 0 a 2 147 483 646, inclusive. Para mais informações sobre a ordem de avaliação, consulte o artigo Ordem de avaliação das regras.
Clique em Concluído.
Para adicionar mais regras, clique em Adicionar regra e repita os passos anteriores. Caso contrário, clique em Passo seguinte.
Aplicar política a destinos:
- Clique em Adicionar alvo.
- Na lista Segmentar, selecione uma segmentação.
- Para adicionar mais alvos, clique em Adicionar alvo.
- Clique em Concluído.
- Clique em Criar política.
gcloud
Para criar uma nova política de segurança do 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 limite. A flagtype
é opcional. Se não for especificado nenhum tipo, é criada uma política de segurança de back-end por predefinição:gcloud compute security-policies create NAME \ [--type=CLOUD_ARMOR|CLOUD_ARMOR_EDGE] \ [--file-format=FILE_FORMAT | --description=DESCRIPTION] \ [--file-name=FILE_NAME]
Substitua o seguinte:
NAME
: o nome da política de segurançaDESCRIPTION
: a descrição da política de segurança
O comando seguinte atualiza uma política que criou anteriormente, ativa a análise JSON e altera o nível do registo 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 ver informações sobre como funciona a prioridade das regras, consulte o artigo Ordem de avaliação das regras.Por exemplo, o seguinte comando 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 a prioridade 1000 e é uma regra numa política denominadamy-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 todo o tráfego que aciona a regra é apenas registado.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 flag
--expression
para especificar uma condição personalizada. Para mais informações, consulte Configure atributos de idioma das regras personalizadas. O seguinte comando adiciona uma regra para permitir tráfego do endereço IP1.2.3.4
e contém a stringexample
no cabeçalho do agente do utilizador: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 seguinte adiciona uma regra para bloquear pedidos se o cookie do pedido 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 seguinte comando adiciona uma regra para bloquear pedidos 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 seguinte comando adiciona uma regra para bloquear pedidos da região
AU
que não estejam 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 seguinte adiciona uma regra para bloquear pedidos com um URI que corresponde 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 seguinte adiciona uma regra para bloquear pedidos se o valor descodificado 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 seguinte comando adiciona uma regra que usa uma expressão pré-configurada definida para mitigar ataques SQLi:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "evaluatePreconfiguredWaf('sqli-stable')" \ --action "deny-403"
O comando seguinte adiciona uma regra que usa uma expressão pré-configurada para permitir o acesso a partir de todos os endereços IP numa lista de endereços IP com nome:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "evaluatePreconfiguredWaf('sourceiplist-fastly')" \ --action "allow"
Configure políticas de segurança para equilibradores de carga de aplicações externos regionais
Esta secção contém informações sobre a configuração de políticas de segurança do Cloud Armor com âmbito regional para balanceadores de carga de aplicações externos regionais.
Proteja cargas de trabalho com balanceamento de carga regional
Siga os passos abaixo para configurar uma política de segurança que proteja o seu serviço de back-end com âmbito regional:
Crie uma política de segurança com âmbito regional.
gcloud compute security-policies create POLICY_NAME \ --type=CLOUD_ARMOR \ --region=REGION
Anexe a política de segurança com âmbito regional a um serviço de back-end com âmbito regional. Substitua
BACKEND_NAME
pelo nome do seu serviço de back-end com âmbito regional existente.gcloud compute backend-services update BACKEND_NAME \ --security-policy=POLICY_NAME \ --region=REGION
Aplique uma política de segurança do Cloud Armor com âmbito regional
Considere um exemplo em que é um administrador de segurança que quer satisfazer um requisito de residência de que todas as suas cargas de trabalho de back-end e regras de WAF são implementadas numa região específica. Suponha que fez o seguinte previamente:
- Criou serviços de back-end com balanceamento de carga de âmbito regional na região.
- Desativou todas as políticas de segurança com âmbito global existentes na sua implementação.
- Criou e anexou uma política de segurança com âmbito regional na mesma região (como na secção anterior).
Pode adicionar regras de WAF e outras regras avançadas à sua política enquanto cumpre o requisito através dos seguintes comandos de exemplo:
Adicione uma regra de WAF à política:
gcloud compute security-policies rules create 1000 --action=deny-404 \ --expression="evaluatePreconfiguredWaf('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
O que se segue?
- Configure as políticas de segurança do Cloud Armor
- Saiba mais acerca da limitação de taxa.