ID da região
O REGION_ID é um código abreviado que a Google atribui com base na região que seleciona quando cria a sua app. O código não corresponde a um país ou uma província, embora alguns IDs de regiões possam parecer semelhantes aos códigos de países e províncias usados frequentemente. Para apps criadas após
fevereiro de 2020, REGION_ID.r está incluído nos
URLs do App Engine. Para apps existentes criadas antes desta data, o
ID da região é opcional no URL.
Saiba mais acerca dos IDs de regiões.
A segurança é uma funcionalidade essencial do Google Cloud, mas ainda existem passos que deve dar para proteger a sua app do App Engine e identificar vulnerabilidades.
Use as seguintes funcionalidades para garantir que a sua app do App Engine está segura. Para saber mais acerca do modelo de segurança da Google e dos passos disponíveis que pode seguir para proteger os seus Google Cloud projetos, consulte Segurança da Google Cloud Platform.
Pedidos HTTPS
Use pedidos HTTPS para aceder à sua app do App Engine de forma segura. Consoante a forma como a sua app está configurada, tem as seguintes opções:
appspot.comdomínios- Use o prefixo do URL
httpspara enviar um pedido HTTPS para o serviço do seu projeto, por exemplo:defaultGoogle Cloud
https://PROJECT_ID.REGION_ID.r.appspot.com
Para segmentar recursos específicos na sua app do App Engine, use a sintaxe
-dot-para separar cada recurso que quer segmentar, por exemplo:
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.comPara converter um URL HTTP num URL HTTPS, substitua 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 mais informações sobre URLs HTTPS e recursos de segmentação, consulte o artigo Como os pedidos são encaminhados.
- Use o prefixo do URL
- Domínios personalizados
Para enviar pedidos HTTPS com o seu domínio personalizado, pode usar os certificados SSL geridos aprovisionados pelo App Engine. Para mais informações, consulte o artigo Proteger domínios personalizados com SSL.
Controlo de acesso
Em cada Google Cloud projeto, configure o controlo de acesso para determinar quem pode aceder aos serviços no projeto, incluindo o App Engine. Pode atribuir funções diferentes a contas diferentes para garantir que cada conta tem apenas as autorizações necessárias para suportar a sua app. Para obter detalhes, consulte o artigo Configurar o controlo de acesso.
Firewall do App Engine
A firewall do App Engine permite-lhe controlar o acesso à sua app do App Engine através de um conjunto de regras que podem permitir ou recusar pedidos dos intervalos especificados de endereços IP. Não lhe é faturado o tráfego nem a largura de banda bloqueados pela firewall. Crie uma firewall para:
- Permitir apenas tráfego de uma rede específica
- Certifique-se de que apenas um determinado intervalo de endereços IP de redes específicas pode aceder à sua app. Por exemplo, crie regras para permitir apenas o intervalo de endereços IP da rede privada da sua empresa durante a fase de testes da app. Em seguida, pode criar e modificar as regras da firewall para controlar o âmbito do acesso ao longo do processo de lançamento, permitindo que apenas determinadas organizações, quer dentro da sua empresa ou externamente, acedam à sua app à medida que se torna disponível publicamente.
- Permita apenas tráfego de um serviço específico
- Certifique-se de que todo o tráfego para a sua app do App Engine é primeiro encaminhado através de proxy através de um serviço específico. Por exemplo, se usar um firewall de app Web (WAF) de terceiros para encaminhar pedidos dirigidos à sua app, pode criar regras de firewall para recusar todos os pedidos, exceto os que são encaminhados a partir do seu WAF.
- Bloqueie endereços IP abusivos
- Embora Google Cloud tenha muitos mecanismos implementados para evitar ataques, pode usar a firewall do App Engine para bloquear o tráfego para a sua app a partir de endereços IP que apresentem intenções maliciosas ou proteger a sua app contra ataques de negação de serviço e formas semelhantes de abuso. Pode adicionar endereços IP ou sub-redes a uma lista de exclusão, para que os pedidos encaminhados a partir desses endereços e sub-redes sejam recusados antes de chegarem à sua app do App Engine.
Para ver detalhes sobre a criação de regras e a configuração da firewall, consulte o artigo Controlar o acesso a apps com firewalls.
Controlos de entrada
Esta secção descreve como usar as definições de entrada para restringir o acesso à rede à sua app do App Engine. Ao nível da rede, por predefinição, qualquer recurso na Internet pode aceder à sua app do App Engine no respetivo URL appspot ou num domínio personalizado configurado no App Engine. Por exemplo, o URL appspot.com pode ter o seguinte formato:
SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com.
Pode alterar esta definição predefinida especificando uma definição diferente para a entrada. Todos os caminhos de entrada, incluindo o URL appspot.com predefinido, estão sujeitos à sua definição de entrada. A entrada é definida ao nível do serviço.
Definições de entrada disponíveis
Estão disponíveis as seguintes definições:
| Definição | Descrição |
|---|---|
| Internos |
Mais restritiva. Permite pedidos de recursos anexados às redes VPC do projeto, como:
appspot.com.
Os pedidos de outras origens, incluindo a Internet, não podem aceder ao seu serviço no URL appspot.com ou nos domínios personalizados. Não
existe suporte para multi-tenancy, ou seja, vários domínios de confiança
no mesmo projeto.
|
| Interno e Cloud Load Balancing | Permite pedidos dos seguintes recursos:
appspot.com ignoram o Application Load Balancer externo, pelo que esta definição impede que os pedidos externos alcancem o URL appspot.com.
|
| Tudo |
Menos restritivas. Permite todos os pedidos, incluindo pedidos diretamente da Internet para o URL appspot.com.
|
Aceder a serviços internos
Aplicam-se as seguintes considerações:
Para pedidos de uma VPC partilhada, o tráfego só é considerado interno se a app do App Engine for implementada no projeto anfitrião da VPC partilhada. Se a app do App Engine for implementada num projeto de serviço de VPC partilhada, apenas o tráfego de redes pertencentes ao próprio projeto da app é interno. Todo o outro tráfego, incluindo o tráfego de outras VPCs partilhadas, é externo.
Quando acede a serviços internos, chame-os como faria normalmente através dos respetivos URLs públicos, quer seja o URL
appspot.compredefinido ou um domínio personalizado configurado no App Engine.Para pedidos de instâncias de VMs do Compute Engine ou outros recursos em execução numa rede VPC no mesmo projeto, não é necessária nenhuma configuração adicional.
Para pedidos de outros serviços do App Engine ou de funções do Cloud Run ou do Cloud Run no mesmo projeto, ligue o serviço ou a função a uma rede da VPC e encaminhe toda a saída através do conetor, conforme descrito no artigo Ligar a uma rede da VPC partilhada.
Os pedidos de recursos em redes VPC no mesmo projeto são classificados como internos, mesmo que o recurso de origem tenha um endereço IP público.
Os pedidos de recursos no local ligados à rede VPC através da VPN do Google Cloud são considerados
internal.
Veja as definições de carregamento
Consola
Aceda à página App Engine Services.
Localize a coluna Ingress. Para cada serviço, o valor nesta coluna mostra a definição de entrada como Tudo (predefinição), Interno + Equilíbrio de carga ou Interno.
gcloud
Para ver a definição de entrada de um serviço através da CLI gcloud:
gcloud app services describe SERVICE
Substitua SERVICE pelo nome do seu serviço.
Por exemplo, para ver as definições de entrada e outras informações para a execução do serviço predefinido:
gcloud app services describe default
Edite as definições de entrada
Consola
Aceda à página App Engine Services.
Selecione o serviço que quer editar.
Clique em Editar definição de entrada.
Selecione a definição de entrada pretendida no menu e clique em Guardar.
gcloud
Para atualizar a definição de entrada para um serviço através da CLI gcloud:
gcloud app services update SERVICE --ingress=INGRESS
Substituição:
- SERVICE: o nome do seu serviço.
- INGRESS: o controlo de entrada que quer aplicar. Uma das seguintes opções:
all,internal-onlyouinternal-and-cloud-load-balancing.
Por exemplo:
Para atualizar o serviço predefinido de uma app do App Engine para aceitar tráfego apenas do Cloud Load Balancing e das redes VPC que estão no mesmo projeto:
gcloud app services update default --ingress=internal-and-cloud-load-balancing
Para atualizar um serviço denominado "internal-requests" para aceitar tráfego apenas de redes VPC que estejam no mesmo projeto:
gcloud app services update internal-requests --ingress=internal-only
Definições de saída
Se usar o Acesso a VPC sem servidor, pode especificar a definição de saída para o seu serviço do App Engine.
Por predefinição, apenas os pedidos a endereços IP internos e nomes DNS internos são encaminhados através de um conetor de acesso a VPC sem servidor. Pode especificar a definição de saída para o seu serviço no ficheiro app.yaml.
As definições de saída não são compatíveis com o serviço URL Fetch. Se ainda não o fez,
desative a predefinição de obtenção de URLs
e descontinue qualquer utilização explícita da biblioteca
urlfetch. A utilização da biblioteca urlfetch ignora as definições de saída e os pedidos não são encaminhados através de um conetor do Acesso a VPC sem servidor.
Para configurar o comportamento de saída do seu serviço do App Engine:
Adicione o atributo
egress_settingao campovpc_access_connectordo ficheiroapp.yamldo serviço:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME egress_setting: EGRESS_SETTING
Substituição:
PROJECT_IDcom o seu Google Cloud ID do projetoREGIONcom a região em que o conector se encontraCONNECTOR_NAMEcom o nome do conetorEGRESS_SETTINGcom uma das seguintes opções:private-ranges-onlyPredefinição. Apenas os pedidos aos intervalos de endereços IP RFC 1918 e RFC 6598 ou aos nomes DNS internos são encaminhados para a sua rede VPC. Todos os outros pedidos são encaminhados diretamente para a Internet.all-trafficTodos os pedidos de saída do seu serviço são encaminhados para a sua rede VPC. Os pedidos ficam sujeitos às regras de firewall, DNS e encaminhamento da sua rede VPC. Tenha em atenção que o encaminhamento de todos os pedidos de saída para a sua rede VPC aumenta a quantidade de saída processada pelo conetor do Acesso a VPC sem servidor e pode incorrer em custos.
Implemente o serviço:
gcloud app deploy
Análise de segurança
O Google Cloud Web Security Scanner descobre vulnerabilidades ao rastrear a sua app do App Engine, seguindo todos os links no âmbito dos seus URLs de início e tentando exercer o maior número possível de entradas do utilizador e processadores de eventos.
Para usar o verificador de segurança, tem de ser proprietário do Google Cloud projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Configurar o controlo de acesso.
Pode executar análises de segurança a partir da Google Cloud consola para identificar vulnerabilidades de segurança na sua app do App Engine. Para obter detalhes sobre a execução do Security Scanner, consulte o artigo Usar o Web Security Scanner.