Recursos Expostos da AWS
O objetivo deste repositório é manter uma lista de todos os recursos da AWS que podem ser expostos publicamente e, eventualmente, aqueles que podem ser compartilhados com contas não confiáveis (essa seção ainda está em desenvolvimento e não está incluída aqui).
Os seguintes conceitos são aplicados nesta lista:
- Recursos que podem ser indiretamente expostos por meio de outro recurso não estão incluídos. Por exemplo, logs do CloudTrail podem ser enviados para um bucket S3 público, mas é o bucket S3 que está mal configurado, então o CloudTrail não está listado como um recurso que pode ser tornado público.
- Alguns recursos podem exigir várias coisas configuradas de uma certa maneira para serem considerados públicos. Por exemplo, um segredo do Secrets Manager criptografado com um KMS precisaria tanto do Segredo quanto da chave KMS públicos para que o segredo fosse acessível. Para os fins desta lista, considero apenas a política de recursos do Segredo. Da mesma forma, para clusters ElasticSearch gerenciados, você precisa tanto da política de recursos que permite acesso público quanto de um IP não VPC. Considero apenas a política de recursos. Para uma EC2, você poderia criar uma EC2 com IP público, mas associar um Grupo de Segurança restrito a ela que talvez depois seja aberto para permitir acesso público. Considero a criação da EC2 com IP público como a ação de interesse, e não a modificação do Grupo de Segurança.
Roteiro
Gostaria que este repositório eventualmente contivesse o seguinte:
- Comandos de CLI de exemplo para criar um recurso privado e um público
- Logs do CloudTrail associados a esses dois eventos para que você possa criar e testar soluções de monitoramento. Por exemplo, você pode ver eventos de amostra do CloudTrail para o StreamAlert aqui
- Chamadas Describe associadas aos recursos para mostrar como eles se parecem quando são públicos. Por exemplo, você pode ver respostas JSON de exemplo nos dados de teste do CloudMapper aqui.
Recursos que podem ser tornados públicos por meio de políticas de recursos
Repositório ECR
Ações:
Lambda
Permite invocar a função
Ações:
Camada Lambda
Ações:
Repositório de Aplicações Serverless
Ações:
Backup
Documentação
Ações:
EFS
TODO: É necessário confirmar se isso pode realmente ser compartilhado com outras contas. Alguma redação da documentação me leva a pensar que talvez só possa ser compartilhado com principais dentro de uma conta.
Ações:
Glacier
Ações:
S3
Os buckets S3 podem ser públicos por meio de políticas e ACL. Os objetos S3 podem ser públicos por meio de ACL. As ACLs podem ser definidas na criação do bucket ou do objeto.
Ações:
IAM Role
Ações:
Chaves KMS
Ações:
Secrets Manager
Ações:
CloudWatch Logs
Ações:
EventBridge
Permite apenas enviar dados para uma conta
Ações:
Documentação
Ações:
ElasticSearch
Ações:
Glue
Ações:
SNS
Ações:
SQS
Ações:
SES
Documentação
Ações:
Recursos que podem ser tornados públicos por meio de APIs de compartilhamento
AMI
Ações:
Imagem FPGA
Ações:
Snapshot EBS
Ações:
Snapshot RDS
Ações:
Snapshot de Cluster de Banco de Dados RDS
Ações:
Recursos que podem ser tornados públicos por meio de acesso de rede
API Gateway
Existem políticas de recursos associadas (veja aqui) que podem fazer com que isso seja algo que deveria estar em várias categorias?
Ações:
CloudFront
Ações:
Redshift
Ações:
RDS
Ações:
EC2
Ações:
IP Elástico
Ações:
ECS
Ações:
Global Accelerator
Ações:
ELB
Ações:
Lightsail
Ações:
Neptune
Ações:
Elasticache
Ações:
EMR
Ações: