Visão geral do App Security

ID da região

O REGION_ID é um código abreviado que o Google atribui com base na região que você selecionou ao criar o aplicativo. O código não corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes aos códigos de país e estado geralmente usados. A inclusão de REGION_ID.r em URLs do App Engine é opcional para aplicativos atuais. Em breve, será necessária para todos os aplicativos novos.

Para garantir uma transição tranquila, estamos atualizando o App Engine gradativamente para usar IDs de região. Se ainda não tivermos atualizado seu projeto do Google Cloud, você não verá um ID da região para o aplicativo. Como o ID é opcional para os aplicativos atuais, não é necessário atualizar os URLs ou fazer outras alterações quando o ID da região está disponível para os aplicativos já existentes.

Saiba mais sobre IDs da região.

A segurança é um recurso fundamental do Google Cloud, mas ainda há etapas que você precisa seguir para proteger seu aplicativo do App Engine e identificar vulnerabilidades.

Use os recursos a seguir para garantir a segurança do seu aplicativo do App Engine. Saiba mais sobre o modelo de segurança do Google e as etapas disponíveis para proteger seus projetos do Cloud em Segurança do Google Cloud Platform.

Solicitações HTTPS

Use solicitações HTTPS para acessar o aplicativo do App Engine com segurança. Dependendo de como o aplicativo está configurado, você tem as seguintes opções:

appspot.com domínio
  • Basta usar o prefixo de URL https para enviar uma solicitação HTTPS ao serviço default do projeto do Cloud. Por exemplo:
    https://PROJECT_ID.REGION_ID.r.appspot.com
  • Para visar recursos específicos no aplicativo do App Engine, use a sintaxe -dot- para separar cada recurso que você quer segmentar. Por exemplo:
    https://VERSION_ID-dot-SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com

  • Dica: para converter um URL HTTP em HTTPS, basta substituir os pontos entre cada recurso por -dot-. Por exemplo:
    http://SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com
    https://SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com

Para saber mais informações sobre URLs de HTTPS e como apontar recursos, consulte Como as solicitações são roteadas.

Domínios personalizados

Para enviar solicitações HTTPS com um domínio personalizado, use os certificados SSL gerenciados provisionados pelo App Engine. Para mais informações, consulte Como proteger domínios personalizados com SSL.

Gerenciadores de aplicativos

Para forçar HTTPS para os gerenciadores do seu app, especifique o elemento secure: always para cada gerenciador no app.yaml. Por exemplo:

handlers:
- url: /.*
  script: auto
  secure: always
  redirect_http_response_code: 301

O uso de secure: always redireciona todo o tráfego HTTP para um URL de HTTPS com o mesmo caminho. Para mais informações, consulte a referência de configuração app.yaml.

Controle de acesso

Em cada projeto do Cloud, configure o controle de acesso para determinar quem pode acessar os serviços no projeto, incluindo o App Engine. É possível atribuir papéis diferentes a contas diferentes, para garantir a atribuição apenas das permissões necessárias a cada conta e o respectivo suporte ao seu aplicativo. Para saber detalhes, consulte Como configurar o controle de acesso .

Firewall do App Engine

Com o firewall do App Engine, é possível controlar o acesso ao aplicativo do App Engine por meio de um grupo de regras que podem permitir ou negar solicitações feitas por endereços IP dentro de intervalos especificados. Você não será cobrado pelo tráfego ou pela largura de banda bloqueada pelo firewall. Crie um firewall para:

Permitir somente o tráfego de dentro de uma rede específica
Garanta que apenas endereços IP de um determinado intervalo de redes específicas possam acessar o aplicativo. Por exemplo, crie regras para autorizar o acesso apenas dos endereços IP dentro do intervalo pertencente à rede particular da sua empresa durante a fase de testes do aplicativo. Em seguida, é possível criar e modificar as regras do firewall para controlar o escopo do acesso ao longo do processo de lançamento, permitindo que apenas determinadas organizações, internas ou externas à empresa, acessem o aplicativo até que ele esteja disponível para o público em geral.
Permitir somente o tráfego de um serviço específico
Garanta que todo o tráfego encaminhado ao aplicativo do App Engine seja primeiramente intermediado por proxy por meio de um serviço específico. Por exemplo, se você usar um firewall de aplicativos da Web (WAF, na sigla em inglês) de terceiros para intermediar por proxy as solicitações direcionadas ao aplicativo, será possível criar regras de firewall para negar todas as solicitações, exceto aquelas encaminhadas a partir do WAF.
Bloquear endereços IP abusivos
Embora o Google Cloud tenha muitos mecanismos para evitar ataques, você pode usar o firewall do App Engine para bloquear o tráfego de endereços IP que apresentem intenções maliciosas ou proteger o aplicativo contra ataques de negação de serviço e formas semelhantes de abuso. É possível adicionar endereços IP ou sub-redes a uma lista de bloqueio para que as solicitações encaminhadas desses pontos sejam negadas antes de chegarem ao aplicativo do App Engine.

Para saber mais sobre como criar regras e configurar o firewall, consulte Como controlar o acesso com firewalls.

Controles de entrada

Por padrão, o aplicativo do App Engine recebe todas as solicitações HTTP enviadas para o URL do appspot ou para um domínio personalizado que você configurou. para seu aplicativo.

Você pode usar os controles de entrada de rede para restringir o tráfego para que seu aplicativo só receba solicitações HTTP de origens específicas:

  • Todos: (padrão) seu aplicativo receberá todo o tráfego, incluindo solicitações diretas enviadas da Internet.

  • Somente para uso interno: seu aplicativo receberá apenas solicitações enviadas de redes VPC no mesmo projeto.

  • Interno e Cloud Load Balancing: seu aplicativo só receberá solicitações encaminhadas por meio do Cloud Load Balancing ou enviadas de redes VPC no mesmo projeto.

Para configurar os controles de entrada, use o comando gcloud beta app services update. Se você ainda não tiver instalado o componente Beta da gcloud, receberá uma solicitação para instalá-lo ao executar gcloud beta app services update.

Exemplo:

  • Atualize o serviço padrão de um aplicativo do App Engine para aceitar tráfego somente do Cloud Load Balancing e das redes VPC que estão no mesmo projeto:

    gcloud beta app services update default --ingress internal-and-cloud-load-balancing
  • Atualize um serviço chamado "internal-requests" para aceitar o tráfego somente de redes VPC que estejam no mesmo projeto:

    gcloud beta app services update internal-requests --ingress internal-only
  • Veja as configurações de entrada e outras informações do serviço padrão:

    gcloud beta app services describe default

Security Scanner

O Google Cloud Security Scanner detecta vulnerabilidades por meio do rastreamento do seu aplicativo do App Engine, seguindo todos os links dentro do escopo dos URLs iniciais e tentando acionar o máximo possível de entradas de usuários e gerenciadores de eventos.

Para usar o verificador de segurança, você precisa ser proprietário do projeto do Cloud. Saiba mais sobre como atribuir papéis em Como configurar o controle de acesso.

É possível executar verificações de segurança no Console do Google Cloud para identificar vulnerabilidades de segurança no seu aplicativo do App Engine. Veja detalhes sobre a execução do Security Scanner, consulte o Guia de início rápido do Security Scanner.