Use estas instruções para criar políticas de segurança do Cloud Armor para filtrar o tráfego de destino destinado a balanceadores de carga HTTP(S) externos globais ou balanceadores de carga HTTP(S) externos globais (clássicos). Para informações conceituais sobre políticas de segurança, consulte a visão geral da política de segurança do Google Cloud Armor.
Para informações sobre como configurar o Google Cloud Armor no Google Kubernetes Engine (GKE), consulte a política de segurança do Google Cloud Armor na seção Como configurar recursos do Entrada por meio de parâmetros BackendConfig.
Antes de começar
Antes de configurar políticas de segurança, faça o seguinte:
Conheça os conceitos de balanceamento de carga HTTP(S).
Verifique seus serviços de back-end atuais para determinar quais ainda não têm uma política de segurança anexada. Esses serviços e os back-ends associados não são protegidos pelo Google Cloud Armor. Para adicionar a proteção fornecida pelo Google Cloud Armor, use as instruções neste documento para anexar uma política de segurança recém-criada ou existente ao serviço de back-end.
Configure permissões de IAM para políticas de segurança do Google Cloud Armor
As seguintes operações exigem o papel de gerenciamento de identidade e acesso (IAM) do administrador de segurança do Compute (roles/compute.securityAdmin):
- Como configurar modificar, atualizar e excluir uma política de segurança do Google Cloud Armor
- Métodos de API permitidos
SecurityPolicies insert
SecurityPolicies delete
SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
Um usuário com o papel de administrador de rede do Compute (roles/compute.networkAdmin) pode executar as seguintes operações:
- Definir uma política de segurança do Google Cloud Armor para um serviço de back-end
- Métodos de API permitidos
BackendServices setSecurityPolicy
BackendServices list
(somentegcloud
)
Usuários com os papéis de Administrador de segurança e Administrador de rede podem visualizar
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 |
Configurar políticas de segurança para o balanceamento de carga HTTP(S)
Veja a seguir as etapas de alto nível para configurar políticas de segurança do Google Cloud Armor para ativar regras que permitam ou negam tráfego para balanceadores de carga HTTP(S) externos globais ou balanceadores de carga HTTP(S) externos globais (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 HTTP(S) externo global ou balanceador de carga HTTP(S) externo global (clássico) para o qual 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 Segurança de rede.
Na página Políticas, clique em Criar política.
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, ative a Proteção adaptativa:
- Para ativar a Proteção adaptativa, marque a caixa de seleção Ativar.
Configure a política de segurança para usuários internos:
- Na página Políticas, clique em Criar política.
- 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
Configurar políticas, regras e expressões de segurança
É possível configurar expressões, regras e políticas de segurança do Google Cloud Armor
usando o Console do Google Cloud, a Google Cloud CLI ou a API REST. Ao usar
a CLI gcloud para criar políticas de segurança, use a sinalização --type
para especificar se a política de segurança é de back-end ou
de borda.
Testar políticas de segurança
Recomendamos que você implante todas as novas regras no modo de visualização e examine os registros de solicitação para verificar se as políticas e as regras estão se comportando conforme o esperado.
Exemplos de expressões
Veja a seguir expressões de exemplo. Para mais informações sobre expressões, consulte a referência de linguagem de regras personalizadas do Google Cloud Armor.
Se você estiver configurando uma regra ou expressão que usa códigos de país ou região ISO 3166-1 Alfa 2, o Google Cloud Armor tratará cada código de maneira independente. As regras e expressões do Google Cloud Armor usam explicitamente esses códigos de região para permitir ou negar solicitações.
A expressão a seguir corresponde a solicitações do endereço IP
1.2.3.4
e contém a stringGodzilla
no cabeçalho do user agent:inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('Godzilla')
A expressão a seguir corresponde a solicitações que têm um cookie com um valor específico:
has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')
A expressão a seguir corresponde a solicitações da região
AU
:origin.region_code == 'AU'
A expressão a seguir corresponde a solicitações da região
AU
que não estão no intervalo de IP especificado:origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')
A expressão a seguir corresponde a solicitações com um caminho de variável numerada para um arquivo específico caso o URI corresponda a uma expressão regular:
request.path.matches('/path/[0-9]+/target_file.html')
A expressão a seguir faz a correspondência com solicitações se o valor decodificado em Base64 do cabeçalho
user-id
contiver um valor específico:has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')
A expressão a seguir usa uma correspondência pré-configurada do conjunto de expressões contra ataques SQLi:
evaluatePreconfiguredExpr('sqli-stable')
Usar a análise JSON
É possível ativar ou desativar a análise do conteúdo do corpo JSON das solicitações POST para
cada política de segurança. Quando o cabeçalho Content-Type
estiver definido como
application/json
, use a sinalização --json-parsing
na Google Cloud CLI.
Por padrão, esta opção está desativada. A sintaxe da sinalização é a seguinte:
--json-parsing=[STANDARD | DISABLED]
A sinalização está disponível apenas com gcloud compute security-policies update
. Não
é possível criar uma nova política de segurança com essa opção, a menos que você crie uma
política de segurança em um arquivo e importe esse arquivo. Para mais informações, consulte
Como importar políticas de segurança.
Para mais informações sobre a análise JSON, consulte Análise JSON e registro detalhado.
Usar o registro detalhado
É possível configurar o nível de geração de registros do Google Cloud Armor para ativar uma geração de registros
mais detalhada para cada política de segurança usando a sinalização --log-level
na
CLI gcloud.
Por padrão, esta opção está desativada. A sintaxe da sinalização é a seguinte:
--log-level=[NORMAL | VERBOSE]
A sinalização está disponível apenas com gcloud compute security-policies update
. Não
é possível criar uma nova política de segurança com essa opção, a menos que você crie uma
política de segurança em um arquivo e importe esse arquivo. Para mais informações, consulte
Como importar políticas de segurança.
Para mais informações sobre o registro detalhado, consulte Análise JSON e registro detalhado.
Configurar regras para a limitação de taxa
Esta seção contém informações sobre como configurar as regras do Google Cloud Armor para impor limites de taxa por cliente, configurando uma ação de proibição ou baseada em taxa.
Regras para limitação baseada em taxa
As regras de limitação baseada em taxa têm 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 "throttle" --rate-limit-threshold-count=RATE_LIMIT_THRESHOLD_COUNT --rate-limit-threshold-interval-sec=RATE_LIMIT_THRESHOLD_INTERVAL_SEC --conform-action=[allow] --exceed-action=[deny-403|deny-404|deny-429|deny-502|redirect] --exceed-redirect-type=[google-recaptcha|external-302] --exceed-redirect-target=REDIRECT_URL --enforce-on-key=[IP | ALL | HTTP-HEADER | XFF-IP | HTTP-COOKIE | HTTP-PATH | SNI | REGION-CODE] --enforce-on-key-name=[HTTP_HEADER_NAME|HTTP_COOKIE_NAME]
Por exemplo, o comando gcloud
a seguir cria uma regra throttle
na prioridade 105
com um limite de taxa de 100 solicitações a cada 60 segundos para cada endereço IP em 1.2.3.0/24
. As solicitações que excedem o limite de limitação retornam um código de erro 429
.
gcloud compute security-policies rules create 105 \ --security-policy sec-policy \ --src-ip-ranges="1.2.3.0/24" \ --action=throttle \ --rate-limit-threshold-count=100 \ --rate-limit-threshold-interval-sec=60 \ --conform-action=allow \ --exceed-action=deny-429 \ --enforce-on-key=IP
Por exemplo, o seguinte comando gcloud
cria uma regra throttle
com prioridade 110
e um limite de taxa de 10 solicitações a cada 60 segundos para cada valor exclusivo do cabeçalho HTTP User-Agent
em todas as solicitações provenientes de endereços IP em 1.2.3.0/24
. As solicitações que excedem o limite de limitação retornam um código de erro 429
.
gcloud compute security-policies rules create 110 \ --security-policy sec-policy \ --src-ip-ranges="1.2.3.0/24" \ --action=throttle \ --rate-limit-threshold-count=10 \ --rate-limit-threshold-interval-sec=60 \ --conform-action=allow \ --exceed-action=deny-429 \ --enforce-on-key=HTTP-HEADER \ --enforce-on-key-name='User-Agent'
Você também pode emitir banimentos baseados em taxa para usuários que tenham um cookie de isenção reCAPTCHA
válido. Por exemplo, o comando gcloud
a seguir cria uma
regra throttle
na prioridade 115
com um limite de taxa de 20 solicitações a cada 5 minutos
para cada cookie de isenção reCAPTCHA exclusivo em todas as solicitações que têm um cookie de isenção válido do reCAPTCHA. As solicitações que excedem o limite de limitação são redirecionadas para avaliação do reCAPTCHA Enterprise. Para mais informações sobre
cookies de isenção e avaliação do reCAPTCHA Enterprise, consulte a
visão geral do gerenciamento de bots.
gcloud compute security-policies rules create 115 \ --security-policy sec-policy \ --expression="token.recaptcha_exemption.valid" \ --action=throttle \ --rate-limit-threshold-count=20 \ --rate-limit-threshold-interval-sec=300 \ --conform-action=allow \ --exceed-action=redirect \ --exceed-redirect-type=google-recaptcha \ --enforce-on-key=HTTP-COOKIE \ --enforce-on-key-name="recaptcha-ca-e"
Regras para proibições baseadas em taxa
As regras para proibições baseadas em taxa têm 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 "rate-based-ban" \ --rate-limit-threshold-count=RATE_LIMIT_THRESHOLD_COUNT \ --rate-limit-threshold-interval-sec=RATE_LIMIT_THRESHOLD_INTERVAL_SEC \ --ban-duration-sec=BAN_DURATION_SEC \ --ban-threshold-count=BAN_THRESHOLD_COUNT \ --ban-threshold-interval-sec=BAN_THRESHOLD_INTERVAL_SEC \ --conform-action=[allow] \ --exceed-action=[deny-403|deny-404|deny-429|deny-502|redirect] --exceed-redirect-type=[google-recaptcha|external-302] --exceed-redirect-target=REDIRECT_URL --enforce-on-key=[IP | ALL | HTTP-HEADER | XFF-IP | HTTP-COOKIE | HTTP-PATH | SNI | REGION-CODE] --enforce-on-key-name=[HTTP_HEADER_NAME|HTTP_COOKIE_NAME]
Por exemplo, o comando gcloud
a seguir cria uma regra de proibição baseada em taxa na prioridade 100 para cada endereço IP cujas solicitações correspondem a um cabeçalho fish
com valor tuna
e banir essa regra para 300 segundos quando a taxa excede um limite de 50 solicitações
a cada 120 segundos. As solicitações proibidas retornam um código de erro de 404
.
gcloud compute security-policies rules create 100 \ --security-policy=sec-policy \ --expression="request.headers['fish'] == 'tuna'" \ --action=rate-based-ban \ --rate-limit-threshold-count=50 \ --rate-limit-threshold-interval-sec=120 \ --ban-duration-sec=300 \ --conform-action=allow \ --exceed-action=deny-404 \ --enforce-on-key=IP
Por exemplo, o comando gcloud
a seguir cria uma regra de proibição baseada em taxa na prioridade 101 para limitar todas as solicitações com código de região que corresponda a US
a 10 solicitações a cada 60 segundos. A regra também proíbe solicitações da região US
por 300 segundos
quando a taxa exceder um limite de 1.000 solicitações a cada 600 segundos. As solicitações
banidas retornam um código de erro de 403
.
gcloud compute security-policies rules create 101 \ --security-policy sec-policy \ --expression "origin.region_code == 'US'" \ --action rate-based-ban \ --rate-limit-threshold-count 10 \ --rate-limit-threshold-interval-sec 60 \ --ban-duration-sec 300 \ --ban-threshold-count 1000 \ --ban-threshold-interval-sec 600 \ --conform-action allow \ --exceed-action deny-403 \ --enforce-on-key ALL
Por exemplo, o comando gcloud
a seguir cria uma regra de proibição baseada em taxa na prioridade 102 para limitar todas as solicitações de qualquer intervalo de endereços IP de origem a 20 solicitações a cada 60 segundos. A regra também proíbe solicitações de qualquer intervalo de endereços IP de origem por 600 segundos quando a taxa excede um limite de 500 solicitações a cada 400 segundos. As solicitações
banidas retornam um código de erro de 429
.
gcloud compute security-policies rules create 102 \ --security-policy sec-policy \ --src-ip-ranges="*" \ --action rate-based-ban \ --rate-limit-threshold-count 20 \ --rate-limit-threshold-interval-sec 60 \ --ban-duration-sec 600 \ --ban-threshold-count 500 \ --ban-threshold-interval-sec 400 \ --conform-action allow \ --exceed-action deny-429 \ --enforce-on-key ALL
Use o Console do Google Cloud e 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 se aplicar a um balanceador de carga HTTP(S) externo global ou ao balanceador de carga HTTP(S) externo global (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 Segurança de rede.
Na página Políticas, clique em Criar política.
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 estiver configurando uma regra Negar, 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 mais informações sobre como escrever expressões, consulte a referência da 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
. SubstituaNAME
eDESCRIPTION
pelo nome e pela descrição da política de segurança. No campotype
, 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
não é obrigatória. 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]
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
. SubstituaPRIORITY
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.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]
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 e 198.51.100.0/24. A regra tem prioridade 1.000 e faz parte de uma política chamada
my-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 na referência da linguagem 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 stringGodzilla
no cabeçalho do user agent:gcloud beta 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('Godzilla')" \ --action allow \ --description "Block User-Agent 'Godzilla'"
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('/bad_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 regras para o gerenciamento de bots
Esta seção contém informações sobre como configurar as regras da política de segurança do Google Cloud Armor para gerenciamento de bots. Para mais informações, consulte a visão geral do gerenciamento de bots.
Usar um desafio manual do reCAPTCHA Enterprise para distinguir entre clientes humanos e automatizados
Para associar ou dissociar sua própria chave de site do WAF do reCAPTCHA com uma política de segurança, use o seguinte comando, substituindo o nome da política de segurança (SECURITY_POLICY) e a chave de site do desafio do reCAPTCHA WAF (SITE_KEY), conforme apropriado.
gcloud compute security-policies update SECURITY_POLICY \ --recaptcha-redirect-site-key SITE_KEY
O exemplo a seguir associa uma chave do site do WAF do reCAPTCHA a uma política de segurança. A chave do site associada se aplica 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 my-policy \ --recaptcha-redirect-site-key "SITE_KEY"
Também é possível desassociar uma chave de site do WAF do reCAPTCHA com uma política de segurança da seguinte maneira:
gcloud compute security-policies update my-policy \ --recaptcha-redirect-site-key ""
Para criar uma regra de redirecionamento interno do tráfego para a avaliação do reCAPTCHA Enterprise, use o seguinte formato em gcloud
:
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
No exemplo a seguir, criamos uma regra que redireciona o tráfego que tenta alcançar
/login.html
para o desafio manual do reCAPTCHA Enterprise.
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "request.path.matches(\"/login.html\")" \ --action redirect \ --redirect-type google-recaptcha
Aplique avaliações mais fáceis do reCAPTCHA Enterprise
Antes de continuar, consulte a visão geral do gerenciamento de bots para ver os pré-requisitos sobre o uso de tokens de ação do reCAPTCHA Enterprise ou tokens de sessão.
Você pode usar token.recaptcha_action.ATTRIBUTE
(substituindo ATTRIBUTE por um atributo de token
válido na linguagem de regras
do Google Cloud Armor) para extrair
atributos de um Token de ação do reCAPTCHA Enterprise. Da mesma forma, é possível usar
token.recaptcha_session.ATTRIBUTE
para um
token de sessão reCAPTCHA Enterprise. Para mais informações sobre a sintaxe dos
atributos de token do reCAPTCHA Enterprise disponíveis, consulte a
referência de linguagem das regras.
No exemplo a seguir, criamos uma regra que permite a segmentação de tráfego para
/login.html
e com um token de ação do reCAPTCHA Enterprise cuja pontuação não é
menor que 0.8
.
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "request.path.matches(\"/login.html\") && token.recaptcha_action.score >= 0.8" \ --action allow
Redirecionar (resposta 302)
Para criar uma regra de redirecionamento do tráfego para um URL configurado pelo usuário, use o formato a seguir em gcloud
.
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
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 my-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 proxy para back-ends protegidos, use o formato a seguir
em 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,...
O exemplo a seguir cria uma regra que permite, mas adiciona um cabeçalho personalizado para
a segmentação de tráfego para /login.html
e com uma pontuação do
reCAPTCHA Enterprise menor que 0.2
.
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "request.path.matches("/login.html") && token.recaptcha_action.score < 0.2" \ --action allow \ --request-headers-to-add "reCAPTCHA-Warning=high"
Usar a Proteção adaptável
A proteção adaptativa é aplicada de acordo com a política de segurança.
Console
Para ativar a proteção adaptativa para uma política de segurança:
No Console do Google Cloud, acesse a página Segurança de rede.
Na página Políticas, clique no nome de uma política de segurança.
Clique em Editar.
Em Proteção adaptativa, selecione Ativar.
Clique em Atualizar.
Para desativar a Proteção adaptativa de uma política de segurança:
No Console do Google Cloud, acesse a página Segurança de rede.
Na página Políticas, clique no nome de uma política de segurança.
Clique em Editar.
Em Proteção adaptativa, desmarque Ativar.
Clique em Atualizar.
gcloud
Para ativar a proteção adaptativa para uma política de segurança:
gcloud compute security-policies update MY-SECURITY-POLICY \ --enable-layer7-ddos-defense
Para desativar a Proteção adaptativa de uma política de segurança:
gcloud compute security-policies update MY-SECURITY-POLICY \ --no-enable-layer7-ddos-defense
Listar as regras pré-configuradas disponíveis
Liste regras pré-configuradas para ver as assinaturas e as regras de proteção de aplicativos predefinidas, como o Conjunto de regras principais do ModSecurity fornecido pelo Google Cloud Armor. Essas regras pré-configuradas contêm várias assinaturas internas que o Google Cloud Armor usa para avaliar as solicitações recebidas. Adicione essas regras pré-configuradas a regras novas ou atuais usando a referência da linguagem de regras personalizadas.
Saiba mais em Regras pré-configuradas.
gcloud
Execute o comando
gcloud compute security-policies list-preconfigured-expression-sets
.gcloud compute security-policies list-preconfigured-expression-sets
O exemplo a seguir mostra o formato de saída do comando:
EXPRESSION_SET expression-set-1 RULE_ID expression-set-1-id-1 expression-set-1-id-2 expression-set-2 alias-1 RULE_ID expression-set-2-id-1 expression-set-2-id-2
O exemplo a seguir inclui uma amostra da saída real do comando. A saída real incluiria todas as regras listadas em Como ajustar as regras do WAF do Google Cloud Armor.
gcloud compute security-policies list-preconfigured-expression-sets
EXPRESSION_SET sqli-canary RULE_ID owasp-crs-v030001-id942110-sqli owasp-crs-v030001-id942120-sqli … xss-canary RULE_ID owasp-crs-v030001-id941110-xss owasp-crs-v030001-id941120-xss … sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva
Listar políticas de segurança
Use estas instruções para listar todas as políticas de segurança do Google Cloud Armor no projeto atual ou em um projeto especificado.
Console
No Console do Google Cloud, acesse a página Segurança de rede.
Para visualizar uma política específica, acesse a lista de políticas e clique no nome dela na lista de Políticas de segurança.
gcloud
gcloud compute security-policies list
Exemplo:
gcloud compute security-policies list
NAME my-policy
Para ver mais informações, consulte gcloud compute security-policies list
.
Atualizar políticas de segurança
Use estas instruções para atualizar uma política de segurança do Google Cloud Armor. Por exemplo, é possível alterar a descrição da política, modificar o comportamento da regra padrão, mudar o serviço de back-end de destino ou adicionar novas regras.
Console
No Console do Google Cloud, acesse a página Segurança de rede.
Para atualizar uma política específica, na página Políticas de segurança, na lista de políticas, clique em
Menu da política que você quer atualizar.- Para atualizar a descrição da política da ação da regra padrão, selecione Editar, faça as alterações desejadas e clique em Atualizar.
- Para adicionar uma regra, selecione Adicionar regra e siga as instruções em Como adicionar regras a uma política de segurança.
- Para alterar o serviço de back-end de destino da política, selecione Aplicar política ao destino, clique em Adicionar destino, selecione um destino e clique em Adicionar.
gcloud
Para atualizar uma política de segurança, use as seguintes instruções da Google Cloud CLI:
- Para atualizar uma regra em uma política de segurança, consulte Como atualizar uma única regra em uma política de segurança.
- Para adicionar uma regra a uma política de segurança, consulte Como adicionar regras a uma política de segurança.
- Para excluir uma regra de uma política de segurança, consulte Como excluir regras de uma política de segurança.
- Para atualizar várias regras em uma única atualização (atualização atômica), consulte Como atualizar atomicamente várias regras em uma política de segurança.
- Para atualizar campos que não são de regra em uma política de segurança (como o campo de descrição), consulte Como exportar políticas de segurança e Como importar políticas de segurança.
Exportar políticas de segurança
É possível exportar uma política de segurança do Google Cloud Armor como um arquivo YAML ou JSON usando a Google Cloud CLI. A exportação de uma política permite recuperar uma cópia dela, que você pode modificar ou salvar no controle de origem.
gcloud
No comando a seguir,
NAME
é o nome da política de segurança. Os formatos de arquivo válidos são YAML e JSON. Se você não informar o formato do arquivo, o Google Cloud Armor usará o YAML como padrão.gcloud compute security-policies export NAME \ --file-name FILE_NAME \ --file-format FILE_FORMAT
No exemplo a seguir, a política de segurança
my-policy
é exportada para o arquivomy-file
no formato YAML:gcloud compute security-policies export my-policy \ --file-name my-file \ --file-format yaml
O exemplo a seguir mostra uma política de segurança exportada:
description: my description fingerprint: PWfLGDWQDLY= id: '123' name: my-policy rules: - action: allow description: default rule match: config: srcIpRanges: - '*' versionedExpr: SRC_IPS_V1 preview: false priority: 2147483647 selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
É possível modificar o arquivo exportado com qualquer editor de texto e importá-lo de volta para o Google Cloud usando o comando
import
.
Importar políticas de segurança
É possível importar políticas de segurança do Google Cloud Armor de um arquivo YAML ou JSON
usando a Google Cloud CLI. Não é possível usar o comando import
para atualizar as
regras de uma política existente. Em vez disso, você precisa atualizar as regras individualmente usando o procedimento
Como atualizar uma única regra em uma política de segurança. Se preferir, atualize todas
de uma vez com o procedimento
Como atualizar atomicamente várias regras em uma política de segurança.
gcloud
Para importar políticas de segurança, use o
comando gcloud compute security-policies import NAME
.
Substitua NAME
pelo nome da política de segurança que você
está importando. Se você não fornecer o formato do arquivo, o formato correto
será presumido com base na estrutura do arquivo. Se a estrutura for inválida, você
verá um erro.
gcloud compute security-policies import NAME \ --file-name FILE_NAME \ [--file-format FILE_FORMAT]
Por exemplo, o comando a seguir atualiza a política my-policy
importando o arquivo my-file
.
gcloud compute security-policies import my-policy \ --file-name my-file \ --file-format json
Se a
impressão digital da política estiver
desatualizada ao importá-la, o Google Cloud Armor mostrará um erro. Isso significa que
a política foi alterada desde a última vez em que você a exportou. Para corrigir isso, use o comando describe
na política para conseguir a impressão digital mais recente.
Mescle as diferenças entre a política descrita e sua política. Depois, substitua a impressão digital
desatualizada pela mais recente.
Excluir políticas de segurança
Use estas instruções para excluir uma política de segurança do Google Cloud Armor. Remova todos os serviços de back-end da política antes de excluí-la.
Console
No Console do Google Cloud, acesse a página Segurança de rede.
Na página Políticas de segurança, ao lado do nome da política que você quer excluir, marque a caixa de seleção.
No canto superior direito da página, clique em
Excluir.
gcloud
Use gcloud compute security-policies delete NAME
.
Substitua NAME
pelo nome da política de segurança:
gcloud compute security-policies delete NAME
Anexar uma política de segurança a um serviço de back-end
Use estas instruções para anexar uma política de segurança do Google Cloud Armor a um serviço de back-end. Uma política de segurança pode ser anexada a mais de um serviço de back-end, mas um serviço de back-end pode ter apenas um de cada tipo de política de segurança anexado a ele.
Console
No Console do Google Cloud, acesse a página Segurança de rede.
Na página Políticas de segurança, clique no nome da política de segurança. A página Detalhes da política é exibida.
No meio da página, clique na guia Destinos.
Clique em Aplicar política ao novo destino.
Clique em Adicionar destino.
Na lista Destino, selecione uma opção e clique em Adicionar.
gcloud
Ao anexar uma política de segurança de back-end a um serviço de back-end, use o
comando gcloud compute backend-services
e a sinalização --security-policy
:
gcloud compute backend-services update my-backend \ --security-policy my-policy
Ao anexar uma política de segurança de borda a um serviço de back-end, use o
comando gcloud compute backend-services
e a
sinalização --edge-security-policy
:
gcloud compute backend-services update my-backend \ --edge-security-policy my-policy
Remover uma política de segurança de um serviço de back-end
Use estas instruções para remover uma política de segurança do back-end do Google Cloud Armor ou uma política de segurança da extremidade de um serviço de back-end.
Console
No Console do Google Cloud, acesse a página Segurança de rede.
Na página Políticas de segurança, clique no nome da política de segurança. A página Detalhes da política é exibida.
No meio da página, clique na guia Destinos.
Selecione o serviço de back-end de destino do qual você quer remover a política.
Clique em Remover.
Na mensagem Remover destino, clique em Remover.
gcloud
Ao remover uma política de segurança de back-end, use o comando gcloud compute
backend-services
e a sinalização --security-policy
:
gcloud compute backend-services update my-backend \ --security-policy ""
Ao remover uma política de segurança de borda, use o comando gcloud compute
backend-services
e a sinalização --edge-security-policy
:
gcloud compute backend-services update my-backend \ --edge-security-policy ""
Anexar uma política de segurança a um bucket de back-end
Use estas instruções para anexar uma política de segurança de borda do Google Cloud Armor a um bucket de back-end. É possível anexar uma política de segurança de borda a mais de um bucket de back-end.
Console
No Console do Google Cloud, acesse a página Segurança de rede.
Na página Políticas de segurança, clique no nome da política de segurança. A página Detalhes da política é exibida.
No meio da página, clique na guia Destinos.
Clique em Aplicar política ao novo destino.
Clique em Adicionar destino.
Na lista Destino, selecione uma opção e clique em Adicionar.
gcloud
Ao anexar uma política de segurança de borda a um bucket de back-end, use o
comando cloud compute backend-buckets
e a
sinalização --edge-security-policy
:
gcloud compute backend-services update my-bucket \ --edge-security-policy my-edge-policy
Remover uma política de segurança de um bucket de back-end
Use estas instruções para remover uma política de segurança de borda do Google Cloud Armor de um bucket de back-end.
Console
No Console do Google Cloud, acesse a página Segurança de rede.
Na página Políticas de segurança, clique no nome da política de segurança. A página Detalhes da política é exibida.
No meio da página, clique na guia Destinos.
Selecione o serviço de back-end de destino do qual você quer remover a política.
Clique em Remover.
Na mensagem Remover destino, clique em Remover.
gcloud
Ao remover uma política de segurança de borda de um bucket de back-end, use o
comando cloud compute backend-buckets
e a
sinalização --edge-security-policy
:
gcloud compute backend-services update my-bucket \ --edge-security-policy ""
Adicionar regras a uma política de segurança
Use estas instruções para adicionar regras a uma política de segurança do Google Cloud Armor.
Console
No Console do Google Cloud, acesse a página Segurança de rede.
Na página Políticas de segurança, clique no nome da política de segurança. A página Detalhes da política é exibida.
No meio da página, clique na guia 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: insira de um (1) a cinco (5) intervalos de endereços IP para que correspondam à regra.
Modo avançado: insira uma expressão ou subexpressões a serem avaliadas em relação às solicitações recebidas. Para saber mais sobre como gravar as expressões e ler os exemplos a seguir, consulte a referência da linguagem de regras personalizadas.
A expressão a seguir corresponde a solicitações do endereço IP
1.2.3.4
e contém a stringGodzilla
no cabeçalho do user agent:inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('Godzilla')
A expressão a seguir corresponde a solicitações que têm um cookie com um valor específico:
has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')
A expressão a seguir corresponde a solicitações da região
AU
:origin.region_code == 'AU'
A expressão a seguir corresponde a solicitações da região
AU
que não estão no intervalo de IP especificado:origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')
A expressão a seguir corresponde a solicitações se o URI corresponder a uma expressão regular:
request.path.matches('/bad_path/')
A expressão a seguir faz a correspondência com solicitações se o valor decodificado em Base64 do cabeçalho
user-id
contiver um valor específico:has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')
A expressão a seguir usa um conjunto de expressões pré-configuradas para corresponder aos ataques SQLi:
evaluatePreconfiguredExpr('sqli-stable')
Em Ação, selecione Permitir ou Negar.
Se você estiver configurando uma regra de negação, selecione uma mensagem Status negado.
Se você quiser ativar o modo de visualização da regra, marque a caixa de seleção Ativar.
No campo Prioridade, digite um número inteiro positivo.
Clique em Add.
gcloud
Use o comando
gcloud compute security-policies rules create PRIORITY
.
Substitua PRIORITY
pela prioridade da regra na
política:
gcloud compute security-policies rules create PRIORITY \ --security-policy POLICY_NAME \ --description DESCRIPTION \ --src-ip-ranges IP_RANGES | --expression EXPRESSION \ --action=[ allow | deny-403 | deny-404 | deny-502 ] \ --preview
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 e 198.51.100.0/24. A regra tem prioridade
1.000 e faz parte de uma política chamada my-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"
Use a sinalização --expression
para especificar uma condição na
referência da linguagem de regras personalizadas.
O comando a seguir adiciona uma regra para permitir o tráfego do endereço IP
1.2.3.4
e contém a string Godzilla
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('Godzilla')" \ --action allow \ --description "Block User-Agent 'Godzilla'"
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('80=BLAH')" \ --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('/bad_path/')" \ --action deny-502 \ --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
Listar as regras em uma política de segurança
Use estas instruções para listar as regras em uma política de segurança do Google Cloud Armor.
Console
No Console do Google Cloud, acesse a página Segurança de rede.
Na página Políticas de segurança, clique no nome da política de segurança. A página Detalhes da política é exibida, e as regras da política são listadas na guia Regras no meio da página.
gcloud
Use o seguinte comando gcloud
para listar todas as regras em somente uma política de
segurança, junto com uma descrição da política:
gcloud compute security-policies describe NAME \
Use o seguinte comando gcloud
para descrever uma regra com a prioridade
especificada na política de segurança especificada:
gcloud compute security-policies rules describe PRIORITY \ --security-policy POLICY_NAME
Por exemplo, o comando a seguir descreve a regra com prioridade 1.000 na
política de segurança my-policy
:
gcloud compute security-policies rules describe 1000 \ --security-policy my-policy
Saída:
action: deny(403) description: block traffic from 192.0.2.0/24 and 198.51.100.0/24 kind: compute#securityPolicyRule match: srcIpRanges: - '192.0.2.0/24' - '198.51.100.0/24' preview: false priority: 1000
Atualizar uma única regra em uma política de segurança
Use estas instruções para atualizar apenas uma regra em uma política de segurança do Google Cloud Armor. Para atualizar atomicamente várias regras, consulte Como atualizar atomicamente várias regras em uma política de segurança.
Console
No Console do Google Cloud, acesse a página Segurança de rede.
Na página Políticas de segurança, clique no nome da política de segurança. A página Detalhes da política é exibida.
No meio da página, clique na guia Regras.
Ao lado da regra que você quer atualizar, clique em
Editar. A página Editar regra é exibida.Faça as alterações desejadas e clique em Atualizar.
gcloud
Use este comando para atualizar uma regra com a prioridade especificada em uma política de segurança designada. Só é possível atualizar uma política de segurança por vez usando este comando:
gcloud compute security-policies rules update PRIORITY [ \ --security-policy POLICY_NAME \ --description DESCRIPTION \ --src-ip-ranges IP_RANGES | --expression EXPRESSION \ --action=[ allow | deny-403 | deny-404 | deny-502 ] \ --preview ]
Por exemplo, o comando a seguir atualiza uma regra com prioridade 1.111 para permitir o tráfego do intervalo de endereços IP 192.0.2.0/24:
gcloud compute security-policies rules update 1111 \ --security-policy my-policy \ --description "allow traffic from 192.0.2.0/24" \ --src-ip-ranges "192.0.2.0/24" \ --action "allow"
Para mais informações sobre esse comando, consulte gcloud compute security-policies rules update
.
Para atualizar a prioridade de uma regra, use a API REST. Para ver mais informações, consulte securityPolicies.patchRule
.
Atualizar atomicamente várias regras em uma política de segurança
Uma atualização atômica aplica alterações em várias regras em apenas uma atualização. Se você atualizar as regras uma por uma, talvez veja um comportamento não intencional porque as regras novas e antigas podem estar funcionando juntas por um curto período.
Para atualizar atomicamente várias regras, exporte a política de segurança atual para um arquivo JSON ou YAML e modifique-a. Use o arquivo modificado para criar uma nova política de segurança e troque a política de segurança dos serviços de back-end relevantes.
gcloud
Exporte a política para atualização, conforme o exemplo a seguir:
gcloud compute security-policies export my-policy \ --file-name my-file \ --file-format yaml
A política exportada ficará parecida com o exemplo:
description: my description fingerprint: PWfLGDWQDLY= id: '123' name: my-policy rules: - action: deny(404) description: my-rule-1 match: expr: expression: evaluatePreconfiguredExpr('xss-stable') versionedExpr: SRC_IPS_V1 preview: false priority: 1 - action: allow description: my-rule-2 match: config: srcIpRanges: - '1.2.3.4' versionedExpr: SRC_IPS_V1 preview: false priority: 2 - action: deny description: default rule kind: compute#securityPolicyRule match: config: srcIpRanges: - '*' versionedExpr: SRC_IPS_V1 preview: false priority: 2147483647 selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
Use qualquer editor de texto para modificar a política. Por exemplo, você pode alterar as prioridades das regras existentes e adicionar uma nova regra:
description: my description fingerprint: PWfLGDWQDLY= id: '123' name: my-policy rules: - action: deny(404) description: my-rule-1 match: expr: expression: evaluatePreconfiguredExpr('xss-stable') versionedExpr: SRC_IPS_V1 preview: false priority: 1 - action: allow description: my-new-rule match: config: srcIpRanges: - '1.2.3.1' versionedExpr: SRC_IPS_V1 preview: false priority: 10 - action: allow description: my-rule-2 match: config: srcIpRanges: - '1.2.3.4' versionedExpr: SRC_IPS_V1 preview: false priority: 11 - action: deny description: default rule kind: compute#securityPolicyRule match: config: srcIpRanges: - '*' versionedExpr: SRC_IPS_V1 preview: false priority: 2147483647 selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
Crie uma nova política de segurança do Google Cloud Armor e especifique o nome e o formato modificados do arquivo, conforme o exemplo a seguir:
gcloud compute security-policies create new-policy \ --file-name modified-policy \ --file-format yaml
Remova a política de segurança antiga do serviço de back-end relevante, conforme o exemplo a seguir:
gcloud compute backend-services update my-backend \ --security-policy ""
Adicione a nova política de segurança ao serviço de back-end, conforme o exemplo a seguir:
gcloud compute backend-services update my-backend \ --security-policy new-policy
Se a política antiga não for usada, exclua-a:
gcloud compute security-policies delete my-policy
Excluir regras de uma política de segurança
Use estas instruções para excluir regras de uma política de segurança do Google Cloud Armor.
Console
No Console do Google Cloud, acesse a página Segurança de rede.
Na página Políticas de segurança, clique no nome da política de segurança. A página Detalhes da política é exibida.
No meio da página, na guia Regras, marque a caixa de seleção ao lado da regra a ser excluída.
Clique em
Excluir.
gcloud
Use este comando para remover uma regra com a prioridade especificada de uma política de segurança designada. É possível modificar somente uma política de segurança por vez, mas excluir várias regras de uma só vez:
gcloud compute security-policies rules delete PRIORITY [...] [ --security-policy POLICY_NAME \ ]
Exemplo:
gcloud compute security-policies rules delete 1000 \ --security-policy my-policy
A seguir
- Regras de firewall do aplicativo da Web (WAF, na sigla em inglês) do Tune
- Resolver problemas
- Usar a referência de linguagem das regras personalizadas