Risorse AWS Esponibili
L'obiettivo di questo repository è mantenere un elenco di tutte le risorse AWS che possono essere esposte pubblicamente e, eventualmente, quelle che possono essere condivise con account non fidati (quella sezione è ancora in fase di sviluppo e non inclusa qui).
In questo elenco vengono applicati i seguenti concetti:
- Le risorse che potrebbero essere esposte indirettamente tramite un'altra risorsa non sono incluse. Ad esempio, i log di CloudTrail possono essere inviati a un bucket S3 pubblico, ma è il bucket S3 ad essere configurato in modo errato, quindi CloudTrail non è elencato come risorsa che può essere resa pubblica.
- Alcune risorse potrebbero richiedere più cose configurate in un certo modo per essere considerate pubbliche. Ad esempio, un segreto di Secrets Manager crittografato con una chiave KMS necessiterebbe sia del segreto che della chiave KMS pubblici per accedere al segreto. Ai fini di questo elenco, considero solo la policy della risorsa del segreto. Allo stesso modo, per i cluster ElasticSearch gestiti, è necessaria sia la policy della risorsa che consenta l'accesso pubblico, sia un IP non VPC. Considero solo la policy della risorsa. Per un EC2, potresti creare un EC2 con un IP pubblico ma associare un gruppo di sicurezza restrittivo che in seguito potrebbe essere aperto per consentire l'accesso pubblico. Considero la creazione dell'EC2 con un IP pubblico, e non la modifica del gruppo di sicurezza, come l'azione di interesse.
Roadmap
Vorrei che questo repository contenesse alla fine quanto segue:
- Comandi CLI di esempio per creare una risorsa privata e una pubblica
- Log CloudTrail associati per questi due eventi in modo da poter costruire e testare soluzioni di monitoraggio. Ad esempio, puoi vedere eventi CloudTrail di esempio per StreamAlert qui
- Chiamate Describe associate alle risorse per mostrare come appaiono quando queste risorse sono pubbliche. Ad esempio, puoi vedere risposte JSON di esempio nei dati di test di CloudMapper qui.
Risorse che possono essere rese pubbliche tramite policy delle risorse
Repository ECR
Azioni:
Lambda
Consente di invocare la funzione
Azioni:
Layer Lambda
Azioni:
Repository di applicazioni serverless
Azioni:
Backup
Documentazione
Azioni:
EFS
TODO: Da confermare se può effettivamente essere condiviso con altri account. Alcune parti della documentazione mi fanno pensare che possa essere condiviso solo con principal all'interno di un account.
Azioni:
Glacier
Azioni:
S3
I bucket S3 possono essere pubblici tramite policy e ACL. Gli oggetti S3 possono essere pubblici tramite ACL. Gli ACL possono essere impostati al momento della creazione del bucket o dell'oggetto.
Azioni:
Ruolo IAM
Azioni:
Chiavi KMS
Azioni:
Secrets Manager
Azioni:
CloudWatch Logs
Azioni:
EventBridge
Consente solo di inviare dati in un account
Azioni:
Documentazione
Azioni:
ElasticSearch
Azioni:
Glue
Azioni:
SNS
Azioni:
SQS
Azioni:
SES
Documentazione
Azioni:
Risorse che possono essere rese pubbliche tramite API di condivisione
AMI
Azioni:
Immagine FPGA
Azioni:
Snapshot EBS
Azioni:
Snapshot RDS
Azioni:
Snapshot cluster DB RDS
Azioni:
Risorse che possono essere rese pubbliche tramite accesso di rete
API Gateway
Esistono policy delle risorse associate (vedi qui) che potrebbero far sì che questa risorsa debba essere inserita in più categorie?
Azioni:
CloudFront
Azioni:
Redshift
Azioni:
RDS
Azioni:
EC2
Azioni:
IP elastico
Azioni:
ECS
Azioni:
Global Accelerator
Azioni:
ELB
Azioni:
Lightsail
Azioni:
Neptune
Azioni:
ElastiCache
Azioni:
EMR
Azioni: