GCP - App Engine Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
O App Engine da Google Cloud Platform (GCP) é uma plataforma robusta e sem servidor, projetada para o desenvolvimento e hospedagem de aplicações web em grande escala. O design desta plataforma foca em simplificar o processo de desenvolvimento e melhorar a gerenciabilidade das aplicações. As principais características e benefícios do App Engine da GCP incluem:
Arquitetura Sem Servidor: O App Engine gerencia automaticamente a infraestrutura, incluindo provisionamento de servidores, configuração e escalonamento. Isso permite que os desenvolvedores se concentrem em escrever código sem se preocupar com o hardware subjacente.
Escalonamento Automático: O App Engine pode escalar automaticamente sua aplicação em resposta à quantidade de tráfego que recebe. Ele aumenta a capacidade para lidar com o tráfego crescente e diminui quando o tráfego diminui, ajudando a otimizar custos e desempenho.
Suporte a Linguagens e Runtime: Suporta linguagens de programação populares como Java, Python, Node.js, Go, Ruby, PHP e .NET. Você pode executar suas aplicações em um ambiente padrão ou flexível. O ambiente padrão é mais restritivo, mas altamente otimizado para linguagens específicas, enquanto o ambiente flexível permite mais personalização.
Serviços Integrados: O App Engine se integra a muitos outros serviços da GCP, como Cloud SQL, Cloud Storage, Cloud Datastore e mais. Essa integração simplifica a arquitetura de aplicações baseadas em nuvem.
Versionamento e Divisão de Tráfego: Você pode implantar facilmente várias versões de sua aplicação e, em seguida, dividir o tráfego entre elas para testes A/B ou lançamentos graduais.
Insights da Aplicação: O App Engine fornece serviços integrados, como registro, autenticação de usuários e um conjunto de ferramentas de desenvolvedor para monitorar e gerenciar aplicações.
Segurança: Oferece recursos de segurança integrados, como versionamento de aplicações, certificados SSL/TLS para conexões seguras e gerenciamento de identidade e acesso.
Um simples firewall pode ser configurado para as instâncias que executam os Apps com as seguintes opções:
A conta de serviço padrão usada por esses Apps é <proj-name>@appspot.gserviceaccount.com
que tem o papel de Editor sobre o projeto e as SAs dentro da instância do APP Engine executam com escopo de cloud-platform (entre outros).
O código-fonte e os metadados são armazenados automaticamente em buckets com nomes como <proj-id>.appspot.com
e staging.<proj-id>.appspot.com
e <country>.<proj-id>.appspot.com
Cada arquivo do App é armazenado com o sha1 do conteúdo como nome do arquivo:
Dentro da pasta ae
de staging.<proj-id>.appspot.com
, existe uma pasta por versão com os arquivos de código-fonte e o arquivo manifest.json
que descreve os componentes do App:
O aplicativo web será executado dentro de um contêiner e Code Build é usado para construir o contêiner.
A página web padrão será exposta na URL <project-uniq-name>.appspot.com
, embora a URL de versões mais antigas seja ligeiramente diferente, como https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com
(note o timestamp inicial).
Pode parecer que é possível implantar apenas 1 aplicativo de engine web por região, mas é possível indicar service: <servicename>
no app.yml
e criar um novo serviço (um novo web). O formato da URL para este novo web será <servicename>-dot-<project-uniq-name>.appspot.com
.
Toda vez que você envia um novo código para o App, uma nova versão é criada. Todas as versões são armazenadas e elas até têm uma URL para acessá-las. Portanto, modificar o código de uma versão antiga pode ser uma ótima técnica de persistência.
Assim como com Cloud Functions, há uma chance de que a aplicação dependa de segredos que são acessados em tempo de execução via variáveis de ambiente. Essas variáveis são armazenadas em um arquivo app.yaml
que pode ser acessado da seguinte forma:
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)