Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Determinazione dei requisiti di sicurezza del VPC
Importante
È consigliabile progettare e testare l'architettura di sicurezza del traffico in uscita del VPC in un ambiente di test. Il test delle modifiche all'architettura in un ambiente di sviluppo riduce il rischio di attivare comportamenti indesiderati del sistema.
Prima di apportare modifiche ai modelli di traffico in uscita della rete, è importante comprendere i modelli di traffico di cui l'applicazione ha bisogno per funzionare come previsto. Queste informazioni possono aiutarti a identificare quali modelli di traffico consentire e quali negare quando riprogetti la rete.
Per analizzare i modelli di traffico in uscita esistenti del tuo VPC, attiva innanzitutto i log di flusso VPC. Quindi, utilizza un ambiente di test per eseguire l'applicazione in vari scenari di utilizzo e analizzare il traffico simulato nei log di flusso.
I log di flusso VPC registrano il traffico IP in entrata e in uscita del tuo VPC. Amazon VPC invia quindi i log ad Amazon Simple Storage Service (Amazon S3) o Amazon. CloudWatch Puoi visualizzare e analizzare i log utilizzando uno dei seguenti strumenti:
(Per Amazon S3) Amazon Athena
(Per) Logs Insights CloudWatch CloudWatch
Per maggiori informazioni e query di esempio, consulta:
Esecuzione di query sui log di flusso Amazon VPC (Guida per l'utente di Amazon Athena)
Come posso utilizzare le query di CloudWatch Logs Insights con il mio log di flusso VPC?
(Centro di conoscenza)AWS CloudWatch Sintassi delle query di Logs Insights (Amazon CloudWatch Logs User Guide)
Per i dettagli sui tipi di informazioni acquisite dai log di flusso VPC, consulta la sezione Esempi di record di log di flusso nella Guida per l'utente di Amazon VPC.
Nota
I log di flusso VPC non acquisiscono informazioni sul livello dell'applicazione (livello 7), come i nomi host DNS. Se i requisiti di sicurezza richiedono l'analisi dei dati a livello di applicazione, puoi implementare AWS Network Firewall
Best practice per analizzare il traffico in uscita del VPC durante l'utilizzo dei log di flusso VPC
Quando analizzi i log di flusso VPC utilizzando le query Amazon Athena CloudWatch o Logs Insights, assicurati di fare quanto segue:
Identifica e analizza il traffico in entrata e in uscita che fluisce attraverso le interfacce di rete elastiche collegate alle risorse utilizzate dall'applicazione.
Identifica e analizza il traffico delle applicazioni che fluisce attraverso l'interfaccia di rete collegata al gateway NAT.
Assicurati di acquisire tutto il traffico in uscita per un'interfaccia di rete impostando l'indirizzo di origine nella query come indirizzo IP privato dell'interfaccia di rete.
Scrivi le tue query in modo da concentrarti solo sui modelli di traffico imprevisti. (Ad esempio, se la tua applicazione comunica con entità di terze parti come un endpoint dell'API HTTPS, puoi creare le tue query in modo da non includere tali entità.)
Verifica la validità di ogni porta e indirizzo IP di destinazione. (Ad esempio, una porta di destinazione in uscita 22 potrebbe essere normale per un host bastione o un host che clona i repository da Git utilizzando SSH.)
Nota
Se lavori con Amazon Athena per la prima volta, assicurati di configurare una posizione per i risultati della query. Per le istruzioni, consulta la sezione Specificare una posizione dei risultati delle query utilizzando la console Athena nella Guida per l'utente di Amazon Athena.
Esempi di query di Amazon Athena
Esempio di query di Athena che restituisce il traffico amministrativo in uscita da un'interfaccia di rete specifica
La seguente query di Athena restituisce le prime 200 righe di traffico amministrativo in uscita da un'interfaccia di rete con l'indirizzo IP di 10.100.0.10:
SELECT * FROM "<vpc_flow_logs_table_name>" WHERE interface_id = 'eni-1234567890000000' AND srcaddr LIKE '10.100.0.10' AND dstport < 1024 LIMIT 200;
Esempio di output
# |
1 |
versione |
2 |
account_id |
<account-id> |
interface_id |
eni-123456789000000 |
srcaddr |
10.32.0.10 |
dstaddr |
11,2233,44 |
srcport |
36952 |
dstport |
443 |
protocol |
6 |
packets |
25 |
bytes |
5445 |
start |
1659310200 |
end |
1659310225 |
action |
ACCEPT |
log_status |
OK |
data |
2022-07-16 |
Nota
L'output in questo modello è formattato a scopo di presentazione e può apparire in modo diverso sul sistema.
Esempio di query di Athena che restituisce indirizzi IP esterni che ricevono la maggior parte del traffico da un VPC specifico
La seguente query di Athena restituisce gli indirizzi IP e le porte esterne che ricevono la maggior parte del traffico in uscita da un VPC con un blocco CIDR che inizia con '10.32':
SELECT dstport, dstaddr, count(*) AS count FROM "<vpc_flow_logs_table_name>" WHERE dstaddr not like '10.32%' AND interface_id = 'eni-1234567890000000' GROUP BY dstport, dstaddr ORDER BY count desc LIMIT 200;
Esempio di output
# | Dstport | Dstaddr | count |
1 | 443 | 52.x.x.x | 1442 |
2 | 443 | 63.x.x.x | 1201 |
3 | 443 | 102.x.x.x | 887 |
Esempio di query di Athena che restituisce il traffico in uscita rifiutato da un VPC specifico
La seguente query di Athena restituisce il traffico in uscita rifiutato da un VPC con un blocco CIDR che inizia con '10.32':
SELECT * FROM "<vpc_flow_logs_table_name>" WHERE srcaddr like '10.32%' AND action LIKE 'REJECT'
Esempio di output
# |
1 |
versione |
2 |
account_id |
<account-id> |
interface_id |
eni-123456789000000 |
srcaddr |
10,3280,10 |
dstaddr |
11,2233,44 |
srcport |
36952 |
dstport |
443 |
protocol |
6 |
packets |
25 |
bytes |
5445 |
start |
1659310200 |
end |
1659310225 |
action |
REJECT |
log_status |
OK |
data |
2022-07-16 |
Nota
L'output in questo modello è formattato a scopo di presentazione e può apparire in modo diverso sul sistema.
Per ulteriori informazioni su come interpretare i risultati delle query di Athena, consulta la sezione Record di log di flusso nella Guida per l'utente di Amazon VPC.
CloudWatch Esempi di query di Logs Insights
CloudWatch Esempio di query Logs Insights che restituisce il traffico amministrativo in uscita da una specifica interfaccia di rete
La seguente query di CloudWatch Logs Insights restituisce i primi 200 risultati del traffico amministrativo in uscita da un'interfaccia di rete con l'indirizzo IP 10.100.0.10:
fields @timestamp, @message | filter interfaceId = 'eni-1234567890000000' | filter srcAddr = '10.100.0.10' | filter dstPort < 1024 | limit 200
Esempio di output
Campo | Valore |
@ingestionTime | 1659310250813 |
@log | <account-id>:/aws/vpc/flowlogs |
@logStream | eni-123456789000000-all |
@message | 2 <account-id> eni-123456789000000 10.100.0.10 11.22.33.44 36952 443 6 25 5445 1659310200 1659310225 ACCEPT OK |
@timestamp | 1659310200000 |
accountId | <account-id> |
action | ACCEPT |
bytes | 5445 |
dstAddr | 11,2233,44 |
dstPort | 443 |
end | 1659310225 |
interfaceId | eni-123456789000000 |
logStatus | OK |
packets | 25 |
protocol | 6 |
srcAddr | 10,1000,10 |
srcPort | 36952 |
start | 1659310200 |
version | 2 |
Esempio: query CloudWatch Logs Insights che restituisce indirizzi IP esterni che ricevono la maggior parte del traffico da un VPC specifico
La seguente query di CloudWatch Logs Insights restituisce gli indirizzi IP e le porte esterne che ricevono la maggior parte del traffico in uscita da un VPC con un blocco CIDR che inizia con '10.32':
filter @logstream = 'eni-1234567890000000' | stats count(*) as count by dstAddr, dstPort | filter dstAddr not like '10.32' | order by count desc | limit 200
Esempio di output
# | dstAddr | dstPort | count |
1 | 52.x.x.x | 443 | 439 |
2 | 51.79.x.x | 63.x.x.x | 25 |
Esempio di query CloudWatch Logs Insights che restituisce il traffico in uscita rifiutato da un VPC specifico
La seguente query di CloudWatch Logs Insights restituisce il traffico in uscita rifiutato da un VPC con un blocco CIDR che inizia con '10.32':
filter @logstream = 'eni-0123456789000000' | fields @timestamp, @message | filter action='REJECT'
Esempio di output
Campo | Valore |
@ingestionTime | 1666991000899 |
@log | <account-id>:/aws/vpc/flowlogs |
@logStream | eni-0123456789000000-all |
@message | 2 <account-id> 'eni-0123456789000000' 185.x.x.x 10.10.2.222 55116 11211 17 1 43 1666990939 1666990966 REJECT OK |
@timestamp | 1666990939000 |
accountId | <account-id> |
action | REJECT |
bytes | 43 |
dstAddr | 10,10,2222 |
dstPort | 11211 |
end | 1666990966 |
interfaceId | 'eni-0123456789000000' |
logStatus | OK |
packets | 1 |
protocol | 17 |
srcAddr | 185.x.x.x |
srcPort | 55116 |
rapida | 1666990939 |
version | 2 |