Best practice sulla sicurezza di rete per Amazon ECS
La sicurezza di rete è un argomento ampio che comprende diversi argomenti secondari. Tra questi vi sono la crittografia in transito, la segmentazione e l'isolamento della rete, le funzionalità di firewall, l'instradamento del traffico e l'osservabilità.
Crittografia in transito
La crittografia del traffico di rete impedisce agli utenti non autorizzati di intercettare e leggere i dati trasmessi attraverso una rete. Con Amazon ECS, la crittografia di rete può essere implementata in uno qualsiasi dei modi descritti di seguito.
-
Uso delle istanze Nitro:
Per impostazione predefinita, il traffico viene crittografato in automatico tra i seguenti tipi di istanza Nitro: C5n, G4, I3en, M5dn, M5n, P3dn, R5dn e R5n. Il traffico non viene crittografato se instradato attraverso un gateway di transito, un bilanciatore del carico o un intermediario simile.
-
Uso dell'estensione Server Name Indication (SNI) con Application Load Balancer:
Application Load Balancer (ALB) e Network Load Balancer (NLB) supportano l'estensione Server Name Indication (SNI). Utilizzando SNI, puoi posizionare più applicazioni sicure dietro un unico ascoltatore. A tale scopo, ciascuna dispone di un suo certificato TLS. Consigliamo di effettuare il provisioning dei certificati per il bilanciatore del carico utilizzando AWS Certificate Manager (ACM) e di aggiungerli all'elenco di certificati dell'ascoltatore. Il bilanciatore del carico AWS utilizza un algoritmo di selezione dei certificati intelligente con SNI. Se l'hostname fornito da un client corrisponde a un singolo certificato nell'elenco di certificati, il bilanciatore del carico seleziona tale certificato. Se un hostname fornito da un client corrisponde a più certificati nell'elenco di certificati, il bilanciatore del carico seleziona un certificato che il client è in grado di supportare. Alcuni esempi sono un certificato autofirmato o un certificato generato attraverso ACM.
-
Crittografia end-to-end con certificati TLS:
Questa opzione comporta l'implementazione di un certificato TLS insieme all'attività. Può trattarsi o di un certificato autofirmato o di un certificato rilasciato da un'autorità di certificazione attendibile. Puoi ottenere il certificato facendo riferimento a un segreto per il certificato. Altrimenti, puoi scegliere di eseguire un container che emetta una richiesta di firma del certificato (CSR) ad ACM e quindi monti il segreto risultante in un volume condiviso.
Reti di attività
I seguenti suggerimenti prendono in considerazione il funzionamento di Amazon ECS. Amazon ECS non utilizza una rete di sovrapposizione. Le attività sono invece configurate per funzionare in diverse modalità di rete. Ad esempio, le attività configurate per l'uso della modalità bridge acquisiscono un indirizzo IP non instradabile da una rete Docker in esecuzione su ciascun host. Le attività configurate per l'uso della modalità di rete awsvpc acquisiscono un indirizzo IP dalla sottorete dell'host. Le attività configurate con reti host utilizzano l'interfaccia di rete dell'host. awsvpc è la modalità di rete preferita. Questo perché è l'unica modalità che puoi utilizzare per assegnare gruppi di sicurezza alle attività. È anche l'unica modalità disponibile per le attività AWS Fargate su Amazon ECS.
Gruppi di sicurezza per le attività
Consigliamo di configurare le attività per l'uso della modalità di rete awsvpc. Dopo aver configurato l'attività per l'uso di tale modalità, l'agente Amazon ECS effettua in automatico il provisioning e il collegamento di un'interfaccia di rete elastica (ENI) all'attività. Una volta effettuato il provisioning dell'ENI, l'attività viene registrata in un gruppo di sicurezza AWS. Il gruppo di sicurezza agisce da firewall virtuale che puoi utilizzare per il controllo del traffico in entrata e in uscita.
Se usi un firewall personalizzato con attività o servizi, aggiungi una regola in uscita per consentire il traffico per gli endpoint di gestione degli agenti Amazon ECS (“ecs-a-*.”), gli endpoint di telemetria (“region.amazonaws.com.rproxy.govskope.caecs-t-*.”) e gli endpoint di gestione di Service Connect Envoy (“region.amazonaws.com.rproxy.govskope.caecs-sc.”).region.api.aws
AWS PrivateLink e Amazon ECS
AWS PrivateLink è una tecnologia di rete che consente di creare endpoint privati per diversi servizi AWS, tra cui Amazon ECS. Gli endpoint sono necessari in ambienti di sperimentazione (sandbox) in cui non è presente alcun gateway Internet (IGW) collegato ad Amazon VPC e non sono presenti instradamenti alternativi verso Internet. L'uso di AWS PrivateLink garantisce che le chiamate al servizio Amazon ECS rimangano all'interno di Amazon VPC e non attraversino Internet. Per ricevere istruzioni sulla creazione di endpoint AWS PrivateLink per Amazon ECS e altri servizi correlati, consulta l'interfaccia Endpoint Amazon VPC di interfaccia Amazon ECS.
Importante
Le attività AWS Fargate non richiedono un endpoint AWS PrivateLink per Amazon ECS.
Amazon ECR e Amazon ECS supportano entrambi le policy di endpoint. Queste policy consentono di affinare l'accesso alle API di un servizio. Ad esempio, puoi creare una policy di endpoint per Amazon ECR che consenta solo di inviare immagini a registri in determinati account AWS. Una policy come questa potrebbe essere utilizzata per impedire che i dati vengano esfiltrati attraverso le immagini di container, pur consentendo agli utenti di effettuare l'invio ai registri Amazon ECR autorizzati. Per ulteriori informazioni, consulta Uso delle policy di endpoint VPC.
La seguente policy consente a tutti i principali AWS del tuo account di eseguire tutte le operazioni solo sui tuoi repository Amazon ECR:
{ "Statement": [ { "Sid": "LimitECRAccess", "Principal": "*", "Action": "*", "Effect": "Allow", "Resource": "arn:aws:ecr:region:account_id:repository/*" }, ] }
Puoi migliorare ulteriormente quest'opzione impostando una condizione che utilizzi la nuova proprietà PrincipalOrgID. Ciò impedisce l'invio e l'estrazione di immagini da parte di un principale IAM non facente parte di AWS Organizations. Per ulteriori informazioni, consulta aws:PrincipalOrgID.
Consigliamo di applicare la medesima policy sia agli endpoint com.amazonaws. che agli endpoint region.ecr.dkrcom.amazonaws..region.ecr.api
Impostazioni dell'agente di container
Il file di configurazione dell'agente di container Amazon ECS include diverse variabili di ambiente relative alla sicurezza di rete. ECS_AWSVPC_BLOCK_IMDS e ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST vengono utilizzate per bloccare l'accesso di un'attività ai metadati di Amazon EC2. HTTP_PROXY viene utilizzata per configurare l'agente in modo che effettui l'instradamento attraverso un proxy HTTP per la connessione a Internet. Per ricevere istruzioni sulla configurazione dell'agente e del runtime Docker per l'instradamento attraverso un proxy, consulta Configurazione del proxy HTTP.
Importante
Queste impostazioni non sono disponibili quando utilizzi AWS Fargate.
Raccomandazioni sulla sicurezza di rete
Consigliamo di completare la procedura seguente quando configuri Amazon VPC, i sistemi di bilanciamento del carico e la rete.
Uso della crittografia di rete laddove applicabile con Amazon ECS
È consigliabile utilizzare la crittografia di rete laddove applicabile. Alcuni programmi di conformità, come PCI DSS, richiedono la crittografia dei dati in transito se i dati contengono dati del titolare della carta. Se il tuo carico di lavoro presenta requisiti simili, configura la crittografia di rete.
I browser moderni avvisano gli utenti quando si connettono a siti non sicuri. Se il servizio è gestito da un bilanciatore del carico rivolto al pubblico, utilizza TLS/SSL per crittografare il traffico dal browser del client al bilanciatore del carico e, se necessario, crittografarlo nuovamente nel backend.
Usa la modalità di rete awsvpc e i gruppi di sicurezza per controllare il traffico tra le attività e altre risorse in Amazon ECS
È consigliabile utilizzare la modalità di rete awsvpc e i gruppi di sicurezza quando devi controllare il traffico tra le attività e tra le attività e altre risorse di rete. Se il tuo servizio è basato su un ALB, utilizza i gruppi di sicurezza per consentire solo il traffico in entrata da altre risorse di rete che utilizzano lo stesso gruppo di sicurezza del tuo ALB. Se la tua applicazione è protetta da un NLB, configura il gruppo di sicurezza dell'attività per consentire solo il traffico in entrata dall'intervallo CIDR di Amazon VPC e gli indirizzi IP statici assegnati al NLB.
È consigliabile utilizzare i gruppi di sicurezza anche per controllare il traffico tra le attività e altre risorse all'interno di Amazon VPC, come i database Amazon RDS.
Creazione di cluster Amazon ECS in Amazon VPC separati quando il traffico di rete deve essere sottoposto a un isolamento rigoroso
È consigliabile creare cluster in Amazon VPC separati quando il traffico di rete deve essere sottoposto a un isolamento rigoroso. Evita di eseguire carichi di lavoro con requisiti di sicurezza rigorosi su cluster con carichi di lavoro che non devono rispettare tali requisiti. Quando è obbligatorio un isolamento della rete rigoroso, crea cluster in Amazon VPC separati ed esponi selettivamente i servizi ad altri Amazon VPC utilizzando gli endpoint Amazon VPC. Per ulteriori informazioni, consultare Endpoint VPC.
Configurazione di AWS PrivateLink endpoint ove giustificato per Amazon ECS
Dovresti configurare gli endpoint AWS PrivateLink ove giustificato. Se la tua policy di sicurezza ti impedisce di collegare un gateway Internet (IGW) agli Amazon VPC, configura endpoint AWS PrivateLink per Amazon ECS e altri servizi come Amazon ECR, AWS Secrets Manager e Amazon CloudWatch.
Uso di Amazon VPC Flow Logs per analizzare il traffico da e verso attività a esecuzione prolungata in Amazon ECS
È consigliabile utilizzare Amazon VPC Flow Logs per analizzare il traffico da e verso le attività a esecuzione prolungata. Le attività che utilizzano la modalità di rete awsvpc ottengono la propria ENI. In tal modo, puoi monitorare il traffico da e verso le singole attività utilizzando Amazon VPC Flow Logs. Un recente aggiornamento di Amazon VPC Flow Logs (v3) arricchisce i log con metadati sul traffico tra cui l'ID di vpc, l'ID di sottorete e l'ID dell'istanza. Questi metadati possono essere utilizzati per restringere un'indagine. Per ulteriori informazioni, consulta Amazon VPC Flow Logs.
Nota
A causa della natura temporanea dei container, i log di flusso potrebbero non essere sempre un modo efficace per analizzare i pattern di traffico tra diversi container o tra container e altre risorse di rete.