Ressources AWS exposables
Le but de ce dépôt est de maintenir une liste de toutes les ressources AWS qui peuvent être exposées publiquement, et éventuellement, celles qui peuvent être partagées avec des comptes non fiables (cette section est encore en développement et n'est pas incluse ici pour le moment).
Les concepts suivants sont appliqués dans cette liste :
- Les ressources qui pourraient être indirectement exposées via une autre ressource ne sont pas incluses. Par exemple, les logs CloudTrail peuvent être envoyés vers un bucket S3 public, mais c'est le bucket S3 qui est mal configuré, donc CloudTrail n'est pas listé comme une ressource pouvant être rendue publique.
- Certaines ressources peuvent nécessiter plusieurs éléments configurés d'une certaine manière pour être considérées comme publiques. Par exemple, un secret de Secrets Manager chiffré avec une clé KMS nécessite que le Secret et la clé KMS soient publics pour accéder au Secret. Dans le cadre de cette liste, je ne considère que la politique de ressource du Secret. De même, pour les clusters Managed ElasticSearch, vous devez à la fois avoir une politique de ressource autorisant l'accès public, et une IP non-VPC. Je ne considère que la politique de ressource. Pour une EC2, vous pourriez créer une EC2 avec une IP publique, mais lui associer un groupe de sécurité restreint qui peut être ouvert plus tard pour autoriser l'accès public. Je considère la création de l'EC2 avec une IP publique, et non la modification du groupe de sécurité, comme l'action d'intérêt.
Feuille de route
J'aimerais que ce dépôt contienne éventuellement les éléments suivants :
- Exemples de commandes CLI pour créer une ressource privée et publique
- Les logs CloudTrail associés pour ces deux événements afin de pouvoir construire et tester des solutions de surveillance. Par exemple, vous pouvez voir des exemples d'événements CloudTrail pour StreamAlert ici
- Les appels Describe associés sur les ressources pour montrer à quoi elles ressemblent lorsqu'elles sont publiques. Par exemple, vous pouvez voir des exemples de réponses json dans les données de test de CloudMapper ici.
Ressources pouvant être rendues publiques via des politiques de ressource
Référentiel ECR
Actions:
Lambda
Permet d'invoquer la fonction
Actions:
Couche Lambda
Actions:
Serverless Application Repository
Actions:
Backup
Documentation
Actions:
EFS
TODO : Il faut confirmer que cela peut réellement être partagé avec d'autres comptes. Certaines formulations de la documentation me font penser que cela pourrait n'être partageable qu'avec des principaux au sein d'un compte.
Actions:
Glacier
Actions:
S3
Les buckets S3 peuvent être publics via des politiques et des ACL. Les objets S3 peuvent être publics via des ACL. Les ACL peuvent être définies lors de la création du bucket ou de l'objet.
Actions:
Rôle IAM
Actions:
Clés KMS
Actions:
Secrets Managers
Actions:
CloudWatch Logs
Actions:
EventBridge
Permet uniquement d'envoyer des données dans un compte
Actions:
Documentation
Actions:
ElasticSearch
Actions:
Glue
Actions:
SNS
Actions:
SQS
Actions:
SES
Documentation
Actions:
Ressources pouvant être rendues publiques via des API de partage
AMI
Actions:
Image FPGA
Actions:
Snapshot EBS
Actions:
Snapshot RDS
Actions:
Snapshot de cluster RDS DB
Actions:
Ressources pouvant être rendues publiques via l'accès réseau
API Gateway
Des politiques de ressource associées existent (voir ici) qui pourraient faire en sorte que cela doive être dans plusieurs catégories ?
Actions:
CloudFront
Actions:
Redshift
Actions:
RDS
Actions:
EC2
Actions:
Elastic IP
Actions:
ECS
Actions:
Global Accelerator
Actions:
ELB
Actions:
Lightsail
Actions:
Neptune
Actions:
ElasticCache
Actions:
EMR
Actions: