Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Determinar los requisitos de seguridad de una VPC
Importante
Se recomienda diseñar y probar la arquitectura de seguridad del tráfico saliente de la VPC en un entorno de prueba. Probar los cambios de arquitectura en un entorno de desarrollo reduce el riesgo de que se produzcan comportamientos no deseados del sistema.
Antes de realizar cambios en los patrones de tráfico saliente de la red, es importante comprender los patrones de tráfico que la aplicación necesita para funcionar según lo previsto. Esta información puede ayudar a identificar los patrones de tráfico que debe permitir y los que debe denegar al rediseñar la red.
Para analizar los patrones de tráfico saliente existentes de una VPC, active primero Registros de flujo de VPC. A continuación, utilice un entorno de prueba para ejecutar la aplicación en varios escenarios de uso y analizar el tráfico simulado en los registros de flujo.
Los registros de flujo de la VPC registran el tráfico IP entrante y saliente de la VPC. A continuación, Amazon VPC envía los registros a Amazon Simple Storage Service (Amazon S3) o a Amazon CloudWatch. Puede ver y analizar los registros mediante cualquiera de las herramientas siguientes:
(Para Amazon S3) Amazon Athena
(Para CloudWatch) Información de CloudWatch Logs Insights
Para obtener más información y ejemplos, consulte lo siguiente:
Consulta de los registros de flujo de Amazon VPC (Guía del usuario de Amazon Athena)
¿Cómo puedo utilizar las consultas de CloudWatch Logs Insights con el registro de flujo de mi VPC?
(Centro de conocimiento de AWS) Sintaxis de consulta de CloudWatch Logs Insights (Guía del usuario de Registros de Amazon CloudWatch)
Para obtener más información sobre los tipos de información que capturan los registros de flujo de una VPC, consulte Ejemplos de registros de flujo en la Guía del usuario de Amazon VPC.
Nota
Los registros de flujo de VPC no capturan información de la capa de aplicación (capa 7), como los nombres de hosts del DNS. Si los requisitos de seguridad solicitan el análisis de los datos de la capa de aplicaciones, puede implementar AWS Network Firewall
Prácticas recomendadas para analizar el tráfico saliente de la VPC al utilizar registros de flujo de la VPC
Al analizar los registros de flujo de la VPC mediante consultas de Amazon Athena o CloudWatch Logs Insights, asegúrese de hacer lo siguiente:
Identifique y analice el tráfico entrante y saliente que fluye a través de las interfaces de red elásticas conectadas a los recursos que utiliza la aplicación.
Identifique y analice el tráfico de aplicaciones que fluye a través de la interfaz de red conectada a la puerta de enlace NAT.
Asegúrese de capturar todo el tráfico saliente de una interfaz de red y para ello haga que la dirección de origen de la consulta sea la dirección IP privada de la interfaz de red.
Escriba las consultas que se centren únicamente en los patrones de tráfico inesperados. (Por ejemplo, si la aplicación se comunica con entidades de terceros, como un punto de conexión de la API HTTPS, puede crear las consultas de modo que no incluyan esas entidades).
Investigue la validez de cada puerto y dirección IP de destino. (Por ejemplo, un puerto 22 de destino saliente podría ser normal para un host bastión o un host que clona repositorios de Git mediante SSH).
Nota
Si es la primera vez que trabaja con Amazon Athena, asegúrese de configurar una ubicación de resultados de consulta. Para obtener instrucciones, consulte Especificación de una ubicación de resultados de consulta mediante la consola de Athena en la Guía del usuario de Amazon Athena.
Ejemplos de consultas de Amazon Athena
Ejemplo de consulta de Athena que devuelve el tráfico de administración saliente desde una interfaz de red específica
La siguiente consulta de Athena devuelve las primeras 200 líneas de tráfico de administración saliente desde una interfaz de red con la dirección IP 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;
Ejemplo de resultados
# |
1 |
version |
2 |
id_cuenta |
<account-id> |
interface_id |
eni-123456789000000 |
srcaddr |
10.32.0.10 |
dstaddr |
11.22.33.44 |
srcport |
36952 |
dstport |
443 |
protocolo |
6 |
packets |
25 |
bytes |
5445 |
start |
1659310200 |
end |
1659310225 |
action |
ACCEPT |
log_status |
Aceptar |
date |
16/07/2022 |
Nota
El resultado de este patrón tiene un formato de presentación y puede tener un aspecto diferente en el sistema.
Ejemplo de consulta de Athena que devuelve las direcciones IP externas que reciben la mayor parte del tráfico de una VPC específica
La siguiente consulta de Athena devuelve las direcciones IP y los puertos externos que reciben la mayor parte del tráfico saliente de una VPC con un bloque CIDR que comienza 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;
Ejemplo de resultados
# | Dstport | dstaddr | count |
1 | 443 | 52.x.x.x | 1442 |
2 | 443 | 63.x.x.x | 1201 |
3 | 443 | 102.x.x.x | 887 |
Ejemplo de consulta de Athena que devuelve el tráfico saliente rechazado de una VPC específica
La siguiente consulta de Athena devuelve el tráfico saliente rechazado de una VPC con un bloque CIDR que comienza con '10.32':
SELECT * FROM "<vpc_flow_logs_table_name>" WHERE srcaddr like '10.32%' AND action LIKE 'REJECT'
Ejemplo de resultados
# |
1 |
version |
2 |
id_cuenta |
<account-id> |
interface_id |
eni-123456789000000 |
srcaddr |
10.32.0.10 |
dstaddr |
11.22.33.44 |
srcport |
36952 |
dstport |
443 |
protocolo |
6 |
packets |
25 |
bytes |
5445 |
start |
1659310200 |
end |
1659310225 |
action |
REJECT |
log_status |
Aceptar |
date |
16/07/2022 |
Nota
El resultado de este patrón tiene un formato de presentación y puede tener un aspecto diferente en el sistema.
Para obtener más información sobre cómo interpretar resultados de consultas de Athena, consulte Registros de flujo en la Guía del usuario de Amazon VPC.
Ejemplos de consultas de CloudWatch Logs Insights
Ejemplo de consulta de CloudWatch Logs Insights que devuelve el tráfico de administración saliente desde una interfaz de red específica
La siguiente consulta de CloudWatch Logs Insights devuelve los primeros 200 resultados del tráfico de administración saliente desde una interfaz de red con la dirección IP 10.100.0.10:
fields @timestamp, @message | filter interfaceId = 'eni-1234567890000000' | filter srcAddr = '10.100.0.10' | filter dstPort < 1024 | limit 200
Ejemplo de resultados
Campo | Valor |
@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.22.33.44 |
dstPort | 443 |
END | 1659310225 |
interfaceId | eni-123456789000000 |
logStatus | Aceptar |
packets | 25 |
protocolo | 6 |
srcAddr | 10.100.0.10 |
srcPort | 36952 |
iniciar | 1659310200 |
versión | 2 |
Ejemplo de consulta de CloudWatch Logs Insights que devuelve direcciones IP externas que reciben la mayor parte del tráfico de una VPC específica
La siguiente consulta de CloudWatch Logs Insights devuelve las direcciones IP y los puertos externos que reciben la mayor parte del tráfico saliente de una VPC con un bloque CIDR que comienza 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
Ejemplo de resultados
# | dstAddr | dstPort | count |
1 | 52.x.x.x | 443 | 439 |
2 | 51.79.x.x | 63.x.x.x | 25 |
Ejemplo de consulta de CloudWatch Logs Insights que devuelve el tráfico saliente rechazado de una VPC específica
La siguiente consulta de CloudWatch Logs Insights devuelve el tráfico saliente rechazado de una VPC con un bloque CIDR que comienza con '10.32':
filter @logstream = 'eni-0123456789000000' | fields @timestamp, @message | filter action='REJECT'
Ejemplo de resultados
Campo | Valor |
@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.2.222 |
dstPort | 11211 |
END | 1666990966 |
interfaceId | 'eni-0123456789000000' |
logStatus | Aceptar |
packets | 1 |
protocolo | 17 |
srcAddr | 185.x.x.x |
srcPort | 55116 |
iniciar | 1666990939 |
versión | 2 |