Carregando...
Nenhum resultado encontrado.

Aplique suas habilidades no console do Google Cloud

Acesse mais de 700 laboratórios e cursos

Como proteger APIs com o Apigee X e o Cloud Armor

Laboratório 1 hora 30 minutos universal_currency_alt 1 crédito show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

GSP909

Logotipo dos laboratórios autoguiados do Google Cloud

Visão geral

Neste laboratório, você vai usar uma política de proteção contra ameaças da Apigee X para proteger APIs contra ameaças baseadas em conteúdo. Você também adiciona o Cloud Armor a um balanceador de carga HTTPS externo global para fornecer recursos de firewall de aplicativos da Web, como proteção contra negação de serviço distribuída (DDoS), mitigação dos 10 principais riscos da OWASP e controle de acesso baseado em IP e localização geográfica.

Um balanceador de carga e um grupo gerenciado de instâncias de VMs de ponte foram criados para fornecer acesso à sua instância de ambiente de execução. A arquitetura dessa configuração é mostrada aqui:

Fluxograma que mostra a arquitetura de configuração

As chamadas de API recebidas entram no projeto do cliente por meio de um balanceador de carga HTTPS externo global. O balanceador de carga HTTPS externo não pode encaminhar chamadas para o projeto de locatário. Em vez disso, o balanceador de carga encaminha a solicitação para um grupo gerenciado de instâncias de VMs de ponte no projeto do cliente. Essas VMs de ponte estão na rede com peering conectada à instância de ambiente de execução do Apigee, permitindo que as VMs encaminhem chamadas de API para a instância de ambiente de execução.

Todo o tráfego HTTP enviado ao balanceador de carga será encaminhado para as VMs de ponte e, em seguida, para a instância de ambiente de execução do Apigee. Você vai adicionar políticas de segurança do Cloud Armor para bloquear o envio de tráfego específico para o ambiente de execução.

Os ataques JSON e XML usam payloads criados para sobrecarregar os analisadores JSON e XML e induzir ataques de negação de serviço no nível do aplicativo. O Cloud Armor não detecta esses tipos de ataques, mas a Apigee pode. As políticas JSONThreatProtection e XMLThreatProtection podem detectar esses payloads maliciosos sem carregar o payload em um analisador. Você vai usar a política JSONThreatProtection para se proteger contra payloads JSON malformados.

As instruções deste laboratório são aplicáveis a organizações pagas e de avaliação.

Objetivos

Neste laboratório, você aprenderá a fazer o seguinte:

  • Usar políticas de proteção contra ameaças da Apigee para bloquear payloads JSON e XML maliciosos
  • Criar uma política do Cloud Armor
  • Criar regra do Cloud Armor para bloquear e permitir solicitações
  • Aplicar uma política do Cloud Armor a um balanceador de carga
  • Testar uma política do Cloud Armor usando tráfego HTTP

Configuração

Antes de clicar no botão Começar o Laboratório

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela. Observação: é recomendável usar uma nova janela anônima para concluir este laboratório.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você selecionar a forma de pagamento. No painel Detalhes do Laboratório, à esquerda, você vai encontrar o seguinte:

    • O botão Abrir Console do Google Cloud
    • O tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações, se forem necessárias
  2. Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.

    O laboratório ativa os recursos e depois abre a página Fazer Login em outra guia.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.

    {{{user_0.username | "Username"}}}

    Você também encontra o nome de usuário no painel Detalhes do Laboratório.

  4. Clique em Próxima.

  5. Copie a Senha abaixo e cole na caixa de diálogo de Olá.

    {{{user_0.password | "Password"}}}

    Você também encontra a senha no painel Detalhes do Laboratório.

  6. Clique em Próxima.

    Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  7. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.

Observação: para acessar os produtos e serviços do Google Cloud, clique no Menu de navegação ou digite o nome do serviço ou produto no campo Pesquisar. Ícone do menu de navegação e campo de pesquisa

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

  2. Clique nas seguintes janelas:

    • Continue na janela de informações do Cloud Shell.
    • Autorize o Cloud Shell a usar suas credenciais para fazer chamadas de APIs do Google Cloud.

Depois de se conectar, você verá que sua conta já está autenticada e que o projeto está configurado com seu Project_ID, . A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

Saída:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Observação: consulte a documentação completa da gcloud no Google Cloud no guia de visão geral da gcloud CLI.

Tarefa 1: criar fluxo compartilhado de proteção contra ameaças JSON

Nesta tarefa, você vai criar um fluxo compartilhado com uma política JSONThreatProtection e usar um gancho de fluxo para ativá-lo em todas as APIs da Apigee.

A política JSONThreatProtection vai rejeitar solicitações JSON recebidas que excedam os limites especificados. Ao colocar a política em um fluxo compartilhado e anexar o fluxo compartilhado com um gancho de fluxo, a política pode proteger qualquer solicitação para todos os proxies implantados em um ambiente.

Abrir o console da Apigee

Para fazer isso:

  • No campo Pesquisar no console do Google Cloud, digite Apigee e clique em gerenciamento de APIs da Apigee nos resultados da pesquisa.

O console da Apigee será aberto, e a página de destino vai mostrar links rápidos para locais usados com frequência.

  • No Menu de navegação (Menu de navegação), ao lado de Apigee, clique em Fixar (Ícone de fixação).

A Apigee agora está fixada no menu de navegação.

Criar o fluxo compartilhado

  1. No menu de navegação, selecione Desenvolvimento de proxy > Fluxos compartilhados.

  2. Clique em Criar.

    Um fluxo compartilhado pode conter um conjunto de políticas e condições e pode ser executado em proxies de API ou outros fluxos compartilhados usando uma política FlowCallout. Neste laboratório, você vai usar o fluxo compartilhado em um gancho de fluxo, que o anexa a todos os proxies implantados na organização de avaliação.

  3. Nomeie o fluxo compartilhado como protect-json e clique em Criar.

  4. Clique na guia Desenvolver.

  5. No menu à esquerda do fluxo compartilhado, na seção Fluxos compartilhados, clique em padrão.

  6. No painel sharedflows/default.xml, clique em Adicionar etapa de política (Ícone de etapa de política).

  7. Em Selecionar política, selecione Criar nova política.

  8. Selecione Proteção contra ameaças JSON e defina o Nome de exibição e o Nome como JTP-Protect.

  9. Clique em Adicionar.

    A política JSONThreatProtection contém vários elementos que fornecem limites para solicitações JSON recebidas. Normalmente, você define esses limites com base nos valores máximos das suas APIs. Nesse caso, mantenha a configuração padrão da política.

    Essa política só será executada se o cabeçalho Content-Type da solicitação estiver definido como application/json, indicando que a solicitação de entrada tem um payload JSON.

  10. Clique em Salvar.

  11. Clique em Implantar e, em Ambiente, selecione eval.

  12. Clique em Implantar e em Confirmar.

Anexar o fluxo compartilhado a um gancho de fluxo

O fluxo compartilhado será anexado ao gancho de fluxo pré-proxy para que seja executado antes do proxy.

  1. Acesse Gerenciamento > Ambientes

  2. Clique em eval > Ganchos de fluxo.

  3. No menu suspenso da linha Pré-proxy, selecione o fluxo compartilhado protect-json e clique em Salvar.

    Você vai testar esse gancho de fluxo em uma tarefa posterior.

Clique em Verificar meu progresso para conferir o objetivo. Criar fluxo compartilhado e gancho de fluxo

Tarefa 2: adicionar uma política de segurança do Cloud Armor

Nesta tarefa, você vai adicionar uma política de segurança do Cloud Armor para proteger o balanceador de carga e controlar o acesso às APIs.

O Cloud Armor é o firewall de aplicativos da Web do Google Cloud. Uma única política do Cloud Armor pode ser especificada para um balanceador de carga. Neste laboratório, você vai usar uma política de segurança do Cloud Armor para rejeitar tráfego específico antes que ele chegue à instância de ambiente de execução da Apigee, protegendo sua API.

Diagrama de fluxo que mostra a arquitetura de configuração com o Cloud Armor destacado

Observação: o balanceador de carga não pode ser totalmente configurado até que o endereço IP da instância de ambiente de execução da Apigee seja conhecido. Por isso, você pode ver o balanceador de carga com instâncias não íntegras até que a configuração do balanceador de carga seja concluída.

Criar uma nova política de segurança

  1. Na guia do console do Cloud, no menu de navegação (botão do menu de navegação), clique em Ver todos os produtos, selecione Segurança de rede na seção Rede e navegue até Políticas do Cloud Armor.

  2. Clique em Criar política.

  3. Em Nome, especifique protect-apis.

    Essa política de segurança vai usar regras para bloquear tráfego específico destinado às APIs da Apigee.

  4. Em Ação de regra padrão, selecione Negar.

    Os usuários terão o acesso negado às APIs, a menos que correspondam a uma regra que permita especificamente o tráfego.

  5. No menu suspenso Status negado, selecione 403 (Proibido).

    Se uma solicitação não corresponder a uma regra que permita o tráfego, o código de status 403 Proibido será retornado ao usuário.

  6. Clique em Próxima etapa.

Adicionar uma regra de política de segurança para permitir solicitações por código de país de origem

Essa regra vai permitir apenas solicitações de países específicos.

  1. Clique em Adicionar uma regra.

  2. Clique em Modo avançado.

    Uma regra do modo básico só pode especificar endereços IP ou intervalos de endereços IP para correspondência. Nesse caso, você quer especificar os códigos de país permitidos.

  3. Para Correspondência, especifique a seguinte expressão:

    origin.region_code == 'US'

    No Cloud Armor, region_code é especificado como uma região ISO 3166-2. Essa regra corresponde a solicitações vindas dos Estados Unidos.

  4. Em Ação, especifique Permitir.

  5. Defina a Prioridade como 1000 e clique em SALVAR ALTERAÇÃO NA REGRA.

Adicionar uma regra para bloquear ataques de injeção de SQL

Essa regra vai bloquear solicitações que tenham entradas SQL que possam resultar em injeção de SQL.

  1. Clique em Adicionar uma regra.

  2. Clique em Modo avançado.

  3. Para Correspondência, especifique a seguinte expressão:

    evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942251-sqli', 'owasp-crs-v030001-id942420-sqli', 'owasp-crs-v030001-id942431-sqli', 'owasp-crs-v030001-id942460-sqli', 'owasp-crs-v030001-id942421-sqli', 'owasp-crs-v030001-id942432-sqli'])

    Essa expressão especifica uma regra pré-configurada do Cloud Armor. As regras pré-configuradas usam assinaturas padrão do setor de código aberto para detectar solicitações maliciosas. É possível desativar assinaturas específicas fornecendo os nomes das assinaturas a serem desativadas.

    Nesse caso, as assinaturas nos níveis de sensibilidade 3 e 4 estão desativadas. O nível de sensibilidade de uma assinatura, também conhecido como nível de paranoia, especifica uma troca de um nível mais alto de segurança em detrimento de um número maior de falsos positivos.

    O nível 1 é o nível de segurança padrão que raramente, ou nunca, tem falsos positivos. O nível 2 adiciona proteção extra contra ataques avançados e ofuscados. As assinaturas nos níveis 3 e 4 são mais agressivas e têm muito mais probabilidade de causar falsos positivos. Por exemplo, solicitações POST com payloads JSON simples podem ser sinalizadas por assinaturas de nível 3 ou 4.

  4. Deixe Ação definida como Negar e Status negado como 403 (Proibido).

  5. Defina Prioridade como 500.

    Quando as regras da política do Cloud Armor são avaliadas, a primeira regra encontrada que corresponde à solicitação especifica a ação que será realizada. A verificação de injeção de SQL precisa ocorrer antes da verificação de região, porque queremos rejeitar solicitações que vêm de uma região permitida, mas também contêm padrões de injeção de SQL. Ao escolher um número de prioridade menor, a verificação de injeção de SQL será feita antes da verificação de região.

  6. Clique em SALVAR ALTERAÇÃO NA REGRA.

    Observe a imagem à direita. A política contém: 3 regras As regras são avaliadas em ordem de prioridade, do número mais baixo para o mais alto, e a primeira regra correspondente será usada.

    A primeira regra nega o acesso se forem detectados padrões de injeção de SQL.

    A segunda regra permite o acesso se a origem for os Estados Unidos.

    A regra final nega o acesso para todo o tráfego.

  7. Clique em Criar política.

    A guia "Políticas" mostra que a nova política protect-apis tem 0 destinos porque você ainda não a anexou ao balanceador de carga.

Anexe a política ao balanceador de carga

  1. Ao lado de protect-apis, clique no botão do menu de políticas (botão do menu de políticas) e depois em Aplicar política ao destino.

  2. No menu suspenso Serviço de back-end 1, selecione apigee-proxy-backend e clique em Adicionar.

    A página de detalhes da política protect-apis deve mostrar em breve que a política se aplica a um destino.

    Observação: pode levar alguns minutos para que as mudanças no Cloud Armor sejam propagadas para o destino.

Clique em Verificar meu progresso para conferir o objetivo. Adicionar uma política de segurança do Cloud Armor

Tarefa 3: aguarde a conclusão do provisionamento da instância da Apigee

Nesta tarefa, você vai esperar o provisionamento da organização de avaliação da Apigee ser concluído.

O provisionamento da organização da Apigee pode levar um tempo considerável para ser concluído. O progresso do provisionamento da organização pode ser monitorado usando a API Apigee.

Iniciar script de monitoramento

  1. No Cloud Shell, verifique se a variável GOOGLE_CLOUD_PROJECT contém o nome do seu projeto usando o seguinte comando:

    echo ${GOOGLE_CLOUD_PROJECT}

    A variável GOOGLE_CLOUD_PROJECT deve conter o nome do seu projeto, que é o mesmo da sua organização da Apigee.

  2. Se a variável GOOGLE_CLOUD_PROJECT não estiver definida, defina a variável manualmente usando um comando como este, substituindo {project} pelo nome do seu projeto:

    export GOOGLE_CLOUD_PROJECT={project} Observação: as chaves precisam ser removidas nesta etapa.
  3. Cole o seguinte comando no Cloud Shell:

    export INSTANCE_NAME=eval-instance; export ENV_NAME=eval; export PREV_INSTANCE_STATE=; echo "waiting for runtime instance ${INSTANCE_NAME} to be active"; while : ; do export INSTANCE_STATE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}" | jq "select(.state != null) | .state" --raw-output); [[ "${INSTANCE_STATE}" == "${PREV_INSTANCE_STATE}" ]] || (echo; echo "INSTANCE_STATE=${INSTANCE_STATE}"); export PREV_INSTANCE_STATE=${INSTANCE_STATE}; [[ "${INSTANCE_STATE}" != "ACTIVE" ]] || break; echo -n "."; sleep 5; done; echo; echo "instance created, waiting for environment ${ENV_NAME} to be attached to instance"; while : ; do export ATTACHMENT_DONE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}/attachments" | jq "select(.attachments != null) | .attachments[] | select(.environment == \"${ENV_NAME}\") | .environment" --join-output); [[ "${ATTACHMENT_DONE}" != "${ENV_NAME}" ]] || break; echo -n "."; sleep 5; done; echo; echo "${ENV_NAME} environment attached, waiting for hello-world to be deployed"; while : ; do export ATTACHMENT_DONE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}/attachments" | jq "select(.attachments != null) | .attachments[] | select(.environment == \"${ENV_NAME}\") | .environment" --join-output); [[ "${ATTACHMENT_DONE}" != "${ENV_NAME}" ]] || break; echo -n "."; sleep 5; done; echo "***ORG IS READY TO USE***";

    Esta série de comandos usa a API da Apigee para determinar quando a instância de ambiente de execução foi criada e o ambiente de avaliação foi anexado.

  4. Aguarde até que a instância esteja pronta.

    Quando o texto ***ORG IS READY TO USE*** for mostrado, a instância estará pronta.

    Observação: se o comando indicar imediatamente que a organização está pronta para uso, o laboratório pode ter sido pré-aquecido antes de você entrar nele.

    Enquanto espera a organização ficar pronta, você pode conferir uma visão geral do Cloud Armor, regras personalizadas e regras pré-configuradas.

Clique em Verificar meu progresso para conferir o objetivo. Aguardar a instância ficar pronta

Tarefa 4: teste de uma região permitida

Nesta tarefa, você vai verificar se a política de segurança do Cloud Armor está protegendo suas APIs, mas permite o tráfego aceitável da região permitida, e se o gancho de fluxo protege contra ameaças JSON.

Uma máquina virtual chamada apigeex-test-vm foi criada automaticamente para você. Você pode usar essa máquina para chamar a API dos Estados Unidos.

  1. No Cloud Shell, abra uma conexão SSH com a VM de teste nos Estados Unidos:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
  2. Quando aparecer Do you want to continue (Y/n)?, pressione Y para continuar.

  3. Para cada pergunta feita no Cloud Shell, clique em Enter ou Return para especificar a entrada padrão.

    Sua identidade conectada é a proprietária do projeto, então o SSH para essa máquina é permitido.

    Sua sessão do Cloud Shell agora está sendo executada na VM.

  4. Verifique se o proxy de API hello-world agora está acessível:

    export PREV_STATUS_CODE=; echo "waiting for hello-world to be accessible"; while : ; do export STATUS_CODE=$(curl -k -s -o /dev/null -w "%{http_code}" --max-time 5 -X GET "https://eval.example.com/hello-world"); [[ "${STATUS_CODE}" == "${PREV_STATUS_CODE}" ]] || (echo; echo "STATUS_CODE=${STATUS_CODE}"); export PREV_STATUS_CODE=${STATUS_CODE}; [[ "${STATUS_CODE}" != "200" ]] || break; echo -n "."; sleep 5; done; echo; echo "***HELLO-WORLD IS ACCESSIBLE***";

    Pode levar um pouco de tempo para que o proxy hello-world seja implantado e fique disponível pelo balanceador de carga externo. Quando esses comandos retornam ***HELLO-WORLD IS ACCESSIBLE***, o proxy hello-world está disponível.

  5. Chame o proxy de API hello-world implantado no ambiente eval:

    curl -i -k "https://eval.example.com/hello-world"

    Uma entrada DNS para o nome do host eval.example.com foi criada com o endereço IP de entrada do seu balanceador de carga.

    A opção -i mostra o código de status e o cabeçalho da resposta.

    A opção -k ignora a verificação do certificado TLS do balanceador de carga, porque o certificado TLS usado para o balanceador de carga é um certificado autoassinado, não um certificado verificado por uma autoridade de certificação conhecida.

    Observação: não use a opção -k para ignorar a validação de certificados em um ambiente de produção.

    A VM está localizada nos Estados Unidos, então o comando curl deve retornar com sucesso a resposta Hello, Guest! gerada pelo proxy hello-world:

    HTTP/2 200 x-powered-by: Apigee access-control-allow-origin: * x-frame-options: ALLOW-FROM RESOURCE-URL x-xss-protection: 1 x-content-type-options: nosniff content-type: text/plain; charset=utf-8 content-length: 13 etag: W/"d-GHB1ZrJKk/wdVTdB/jgBsw" date: Mon, 30 Aug 2021 19:14:45 GMT alt-svc: clear alt-svc: clear x-request-id: b5532b95-c051-4f21-a131-07da1574edc3 server: apigee via: 1.1 google, 1.1 google Hello, Guest!
  6. Chame o proxy hello-world usando este comando:

    curl -i -k -X POST "https://eval.example.com/hello-world" -H "Content-Type: application/json" -d '{ "ThisIsAReallyLongElementNameIMeanReallyReallyReallyLong": 42 }'

    Essa solicitação excede o limite de ObjectEntryNameLength especificado na política JSONThreatProtection incluída no fluxo compartilhado. O fluxo compartilhado é anexado a todos os proxies de API usando o gancho de fluxo pré-proxy.

    Sua resposta deve ser parecida com esta:

    HTTP/2 500 content-type: application/json x-request-id: 5360a9fb-b0b9-4fce-968c-22c2d3fd57dd content-length: 235 date: Mon, 30 Aug 2021 19:16:17 GMT server: apigee via: 1.1 google alt-svc: clear {"fault":{"faultstring":"JSONThreatProtection[JTP-Protect]: Execution failed. reason: JSONThreatProtection[JTP-Protect]: Exceeded object entry name length at line 1","detail":{"errorcode":"steps.jsonthreatprotection.ExecutionFailed"}}} Observação: o código de status padrão retornado é 500, indicando um erro do servidor. Em um uso de produção dessa política, é mais sensato reescrever o erro indicando um problema com a solicitação (como 400 Solicitação inválida), e não um erro do servidor.
  7. Tente chamar o proxy de API hello-world usando este comando:

    curl -i -k "https://eval.example.com/hello-world?item=name'%20OR%20'a'='a"

    O parâmetro de consulta item usa um padrão de injeção de SQL que pode ter consequências não intencionais se uma consulta SQL for criada concatenando strings.

    O padrão de injeção SQL é detectado com sucesso pelo Cloud Armor e a solicitação é bloqueada, retornando uma resposta 403 Forbidden:

    HTTP/2 403 content-length: 134 content-type: text/html; charset=UTF-8 date: Thu, 22 Jul 2021 18:50:03 GMT alt-svc: clear <!doctype html><meta charset="utf-8"><meta name=viewport content="width=device-width, initial-scale=1"><title>403</title>403 Forbidden Observação: pode levar alguns minutos para que as regras do Cloud Armor sejam propagadas. Se a solicitação não for bloqueada, tente novamente a chamada até que ela seja bloqueada.
  8. Digite exit para fechar a conexão SSH com a máquina virtual dos Estados Unidos.

Tarefa 5: testar a política de segurança de uma região não permitida

Nesta tarefa, você vai verificar se a política de segurança do Cloud Armor não permite tráfego para uma região que não está na lista de permissões.

Uma máquina virtual chamada apigeex-outside-us foi criada automaticamente na zona . Você pode usar essa máquina para chamar a API de fora dos Estados Unidos.

  1. No Cloud Shell, abra uma conexão SSH com a VM de teste fora dos Estados Unidos:
export SECOND_VM_NAME=apigeex-outside-us export SECOND_VM_ZONE={{{project_0.default_zone_2| Secondary Zone}}} gcloud compute ssh ${SECOND_VM_NAME} --zone=${SECOND_VM_ZONE} --force-key-file-overwrite
  1. Se for necessário autorizar, clique em Autorizar.

  2. Para cada pergunta feita no Cloud Shell, clique em Enter ou Return para especificar a entrada padrão.

    Sua identidade conectada é a proprietária do projeto, então o SSH para essa máquina é permitido.

    Sua sessão do Cloud Shell agora está sendo executada na VM.

  3. Chame o proxy de API hello-world implantado no ambiente eval:

    curl -i -k "https://eval.example.com/hello-world"

    Como a VM não está localizada nos Estados Unidos, o Cloud Armor deve bloquear a solicitação e retornar um erro 403:

    HTTP/2 403 content-length: 134 content-type: text/html; charset=UTF-8 date: Thu, 22 Jul 2021 22:47:06 GMT alt-svc: clear <!doctype html><meta charset="utf-8"><meta name=viewport content="width=device-width, initial-scale=1"><title>403</title>403 Forbidden

Tarefa 6: conhecer o monitoramento de políticas do Cloud Armor

Nesta tarefa, você vai verificar o painel de políticas do Cloud Armor no Cloud Monitoring.

  1. Na guia Console do Cloud, acesse Monitoramento > Painéis.

  2. Clique em Políticas de segurança de rede.

    Este painel mostra a taxa de solicitações permitidas e bloqueadas para todas as políticas do Cloud Armor. No momento, você tem apenas uma política.

  3. No painel Políticas, clique em protect-apis.

    Este painel mostra a taxa de solicitações permitidas e bloqueadas para a política protect-apis.

    Para registrar os detalhes de cada solicitação, você precisa ativar o registro de solicitações para o balanceador de carga.

Parabéns!

Neste laboratório, você criou uma política do Cloud Armor e a usou para rejeitar ou permitir o tráfego de entrada com base nas regras do Cloud Armor.

Próximas etapas / Saiba mais

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 28 de janeiro de 2025

Laboratório testado em 28 de janeiro de 2025

Copyright 2025 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.