AWS - Elastic Beanstalk Enum
Elastic Beanstalk
O Amazon Elastic Beanstalk fornece uma plataforma simplificada para implantar, gerenciar e dimensionar aplicativos e serviços da web. Ele suporta uma variedade de linguagens de programação e estruturas, como Java, .NET, PHP, Node.js, Python, Ruby e Go, bem como contêineres Docker. O serviço é compatível com servidores amplamente utilizados, incluindo Apache, Nginx, Passenger e IIS.
O Elastic Beanstalk fornece uma maneira simples e flexível de implantar seus aplicativos na nuvem da AWS, sem a necessidade de se preocupar com a infraestrutura subjacente. Ele manipula automaticamente os detalhes do provisionamento de capacidade, balanceamento de carga, dimensionamento e monitoramento da saúde do aplicativo, permitindo que você se concentre em escrever e implantar seu código.
A infraestrutura criada pelo Elastic Beanstalk é gerenciada por Grupos de Dimensionamento Automático no EC2 (com um balanceador de carga). O que significa que, no final do dia, se você comprometer o host, você deve saber sobre o EC2:
pageAWS - EC2, EBS, ELB, SSM, VPC & VPN EnumAlém disso, se o Docker for usado, é possível usar o ECS.
pageAWS - EKS EnumAplicativo e Ambientes
No Elastic Beanstalk da AWS, os conceitos de "aplicativo" e "ambiente" servem a propósitos diferentes e têm papéis distintos no processo de implantação.
Aplicativo
Um aplicativo no Elastic Beanstalk é um contêiner lógico para o código-fonte do seu aplicativo, ambientes e configurações. Ele agrupa diferentes versões do código do seu aplicativo e permite gerenciá-los como uma única entidade.
Ao criar um aplicativo, você fornece um nome e uma descrição, mas nenhum recurso é provisionado nesta etapa. É simplesmente uma maneira de organizar e gerenciar seu código e recursos relacionados.
Você pode ter múltiplas versões de aplicativos dentro de um aplicativo. Cada versão corresponde a um lançamento específico do seu código, que pode ser implantado em um ou mais ambientes.
Ambiente
Um ambiente é uma instância provisionada do seu aplicativo em execução na infraestrutura da AWS. É onde o código do seu aplicativo é implantado e executado. O Elastic Beanstalk provisiona os recursos necessários (por exemplo, instâncias EC2, balanceadores de carga, grupos de dimensionamento automático, bancos de dados) com base na configuração do ambiente.
Cada ambiente executa uma única versão do seu aplicativo, e você pode ter vários ambientes para diferentes fins, como desenvolvimento, teste, preparação e produção.
Ao criar um ambiente, você escolhe uma plataforma (por exemplo, Java, .NET, Node.js, etc.) e um tipo de ambiente (por exemplo, servidor da web ou trabalhador). Você também pode personalizar a configuração do ambiente para controlar vários aspectos da infraestrutura e configurações do aplicativo.
2 tipos de Ambientes
Ambiente do Servidor da Web: É projetado para hospedar e servir aplicativos da web e APIs. Esses aplicativos normalmente lidam com solicitações HTTP/HTTPS recebidas. O ambiente do servidor da web provisiona recursos como instâncias EC2, balanceadores de carga e grupos de dimensionamento automático para lidar com o tráfego recebido, gerenciar a capacidade e garantir a alta disponibilidade do aplicativo.
Ambiente de Trabalhador: É projetado para processar tarefas em segundo plano, que são operações frequentemente demoradas ou intensivas em recursos que não exigem respostas imediatas aos clientes. O ambiente de trabalhador provisiona recursos como instâncias EC2 e grupos de dimensionamento automático, mas não possui um balanceador de carga pois não lida diretamente com solicitações HTTP/HTTPS. Em vez disso, ele consome tarefas de uma fila de Serviço de Filas Simples da Amazon (SQS), que atua como um buffer entre o ambiente de trabalhador e as tarefas que processa.
Segurança
Ao criar um Aplicativo no Beanstalk, existem 3 opções de segurança muito importantes a serem escolhidas:
Par de chaves EC2: Esta será a chave SSH que poderá acessar as instâncias EC2 que executam o aplicativo
Perfil de instância IAM: Este é o perfil de instância que as instâncias terão (privilégios IAM)
O papel gerado automaticamente é chamado de
aws-elasticbeanstalk-ec2-role
e tem acesso interessante sobre todos ECS, todos SQS, DynamoDB elasticbeanstalk e elasticbeanstalk S3 usando as políticas gerenciadas pela AWS: AWSElasticBeanstalkWebTier, AWSElasticBeanstalkMulticontainerDocker, AWSElasticBeanstalkWorkerTier.Papel de serviço: Este é o papel que o serviço AWS usará para executar todas as ações necessárias. Até onde sei, um usuário regular da AWS não pode acessar esse papel.
Este papel gerado pela AWS é chamado de
aws-elasticbeanstalk-service-role
e usa as políticas gerenciadas pela AWS AWSElasticBeanstalkEnhancedHealth e AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy
Por padrão, a versão de metadados 1 está desativada:
### Exposição
Os dados do Beanstalk são armazenados em um bucket S3 com o seguinte nome: elasticbeanstalk-<região>-<id-conta>
(se foi criado no console da AWS). Dentro deste bucket, você encontrará o código-fonte da aplicação enviado.
A URL da página da web criada é http://<nome-webapp>-env.<aleatório>.<região>.elasticbeanstalk.com/
Se você obter acesso de leitura ao bucket, poderá ler o código-fonte e até encontrar credenciais sensíveis nele.
Se você obter acesso de gravação ao bucket, poderá modificar o código-fonte para comprometer a função IAM que a aplicação está usando na próxima vez que for executada.
Enumeração
Acesso não autenticado
pageAWS - Elastic Beanstalk Unauthenticated EnumPersistência
pageAWS - Elastic Beanstalk PersistenceEscalação de privilégios
pageAWS - Elastic Beanstalk PrivescPós-exploração
pageAWS - Elastic Beanstalk Post ExploitationÚltima actualización