Comprender la nube privada virtual (VPC) predeterminada en AWS
Kenneth Hui
En mi anterior entrada del blog , recorrí los aspectos básicos de la Infraestructura Global de AWS. Comprender estos conceptos es fundamental para entender la nube privada virtual (VPC) de AWS y cómo habilita capacidades de red avanzadas para sus recursos de AWS. Una VPC es una red virtual aislada lógicamente, que abarca toda una región de AWS, donde se lanzan sus instancias EC2. Una VPC se ocupa principalmente de habilitar las siguientes capacidades:
- Aislar los recursos de AWS de otras cuentas
- Enrutamiento del tráfico de red hacia y desde sus instancias
- Proteger sus instancias de las intrusiones en la red
Hay seis componentes básicos que son fundamentales para una VPC y serán creados por un usuario o por AWS como parte de una VPC predeterminada. Estos componentes son:
- Bloque CIDR de VPC
- Subred
- Pasarelas
- Tabla de rutas
- Listas de control de acceso a la red (ACL)
- Grupo de seguridad
Todas las cuentas de AWS creadas después del 4 de diciembre de 2013 admiten VPC y a estas cuentas se les asigna una VPC predeterminada en cada región de AWS. Estas VPC predeterminadas están diseñadas para facilitar a los usuarios de AWS la configuración de redes para sus instancias EC2. En el resto de este artículo, le mostraré el aspecto de una VPC predeterminada en la consola de AWS y destacaré los ajustes predeterminados importantes. Comenzará en el "VPC Dashboard" de su consola de AWS, que proporciona una vista general de los componentes que están disponibles como parte de su huella VPC. Tenga en cuenta que los componentes básicos que he mencionado anteriormente ya se aprovisionarán como parte de la VPC predeterminada que se asigna a cada cuenta de AWS para cada región.
Bloque CIDR de VPC
Seleccione "Sus VPC" en la barra lateral izquierda y el panel mostrará todas sus VPC en una región de AWS concreta, incluida la VPC predeterminada. Una región sólo puede tener una VPC por defecto. Aunque puede tener hasta cinco VPC en una región, sólo la VPC inicial que AWS crea para usted puede ser la VPC predeterminada. Cada VPC está asociada a un rango de direcciones IP que forma parte de un bloque de enrutamiento entre dominios sin clase (CIDR) que se utilizará para asignar direcciones IP privadas a las instancias EC2. AWS recomienda que las VPC utilicen los rangos privados definidos en RFC 1918. Estos rangos privados están reservados por la Autoridad de Asignación de Números de Internet (IANA) y no pueden enrutarse a Internet. Se pueden asignar a una VPC rangos de diferentes tamaños con diferentes asignaciones de direcciones IP en función de las necesidades. Todas las VPC predeterminadas se asociarán a un bloque CIDR IPv4 con un intervalo de direcciones 172.31.0.0/16. Esto te dará 65.536 direcciones IP posibles, menos algunas direcciones reservadas de AWS. Las VPC pueden crearse con bloques CIDR más pequeños, como un /20, que daría 4091 direcciones posibles.
Subred
A continuación, si va a la pantalla "Subredes", verá que ya se han asignado varias subredes predeterminadas a su VPC predeterminada, una subred por cada zona de disponibilidad. Una subred siempre está asociada a una única zona de disponibilidad y no puede abarcar varias zonas. Sin embargo, una zona de disponibilidad puede albergar varias subredes. Cada subred de una VPC está asociada a un bloque CIDR IPv4 que es un subconjunto del bloque CIDR /16 de su VPC. En una VPC por defecto, cada subred por defecto está asociada a un rango de direcciones de bloque /20 CIDR que tendrá 4091 direcciones IP posibles menos las cinco direcciones que AWS siempre reserva. Tenga en cuenta que dos subredes no pueden tener rangos de direcciones superpuestos. Cuando se lanza una instancia EC2 en una VPC predeterminada sin especificar una subred concreta, se lanza automáticamente en una de las subredes predeterminadas. Cada instancia de una subred predeterminada recibe una dirección IP privada del conjunto de direcciones asociadas a esa subred y también un nombre de host DNS privado. En una subred predeterminada, una instancia también recibirá una dirección IP pública del conjunto de direcciones propiedad de AWS junto con un nombre de host DNS público, lo que facilitará el acceso a Internet de sus instancias.
Pasarelas
Con frecuencia, sus instancias EC2 requerirán conectividad fuera de AWS a Internet o a la red corporativa de un usuario mediante el uso de puertas de enlace. Para comunicarse con Internet, una VPC debe estar conectada a una pasarela de Internet. Un gateway de Internet es un servicio de AWS totalmente administrado que realiza la traducción bidireccional de direcciones de red de origen y destino para sus instancias EC2. Opcionalmente, una VPC puede utilizar una pasarela privada virtual para conceder a las instancias acceso seguro a la red corporativa de un usuario a través de VPN o enlaces de conexión directa. A las instancias de una subred también se les puede conceder acceso a Internet sólo de salida a través de una pasarela NAT. Una subred que proporciona a sus instancias una ruta a una pasarela de Internet se considera una subred pública. Una subred privada puede estar en una VPC con una puerta de enlace a Internet conectada, pero no tendrá una ruta a esa puerta de enlace. En una VPC por defecto, todas las subredes por defecto son subredes públicas y tendrán una ruta a una pasarela por defecto.
Tabla de rutas
He mencionado varias veces el enrutamiento al hablar de la pasarela de Internet. Cada VPC está conectada a un router implícito. Este router no es visible para el usuario y está totalmente administrado y escalado por AWS. Lo que sí es visible es la tabla de rutas asociada a cada subred, que es utilizada por el router de la VPC para determinar las rutas permitidas para el tráfico de red saliente que sale de una subred. Observe en la siguiente captura de pantalla que cada tabla de rutas contiene una ruta local predeterminada para facilitar la comunicación entre instancias de la misma VPC, incluso entre subredes. Esta ruta local intra-VPC está implícita y no puede modificarse. En el caso de la tabla de rutas principal que está asociada a una subred por defecto, también habrá una ruta de salida a Internet a través de la pasarela por defecto para la VPC. También hay que tener en cuenta que cada subred debe estar asociada a una tabla de rutas. Si la asociación no se define explícitamente, una subred se asociará implícitamente a la tabla de rutas principal.
Seguridad de la red
Una preocupación que puede tener es la seguridad de la red, especialmente si todas las subredes predeterminadas de una VPC predeterminada son públicas y están abiertas al tráfico de Internet. AWS proporciona mecanismos de seguridad para sus instancias en forma de ACL de red y grupos de seguridad. Estos dos mecanismos pueden funcionar juntos para proporcionar protección por capas a sus instancias EC2. Una ACL actúa como un cortafuegos que controla el tráfico de red que entra y sale de una subred. Puede crear reglas para permitir o denegar el tráfico de red para protocolos específicos, a través de puertos específicos y para rangos de direcciones IP específicos. Las ACL de red no tienen estado y tienen reglas de entrada y salida separadas. Esto significa que hay que crear reglas tanto de entrada como de salida para permitir que cierto tráfico de red entre en la subred y que las respuestas vuelvan a entrar. Se asigna un número a cada regla y todas las reglas se evalúan empezando por la de menor número. Cuando el tráfico llega al cortafuegos, se evalúa según las reglas en orden ascendente. En cuanto se evalúa una regla que coincide con el tráfico considerado, se aplica independientemente de lo que se indique en una regla posterior. Como se ha indicado anteriormente, la ACL predeterminada en una VPC predeterminada está configurada con reglas de numeración inferior para el tráfico entrante y saliente que se combinan para permitir explícitamente la comunicación bidireccional para cualquier protocolo, a través de cualquier puerto y desde y hacia cualquier origen o destino. Puede asociar una ACL a varias subredes, pero una subred sólo puede asociarse a una ACL. Si no asocia específicamente una ACL a una subred, ésta se asocia automáticamente a la ACL por defecto. Este es el caso de sus VPC predeterminadas que tienen todas las subredes asociadas con la ACL predeterminada.
Grupos de seguridad
Los grupos de seguridad se consideran la primera línea de defensa y consisten en un cortafuegos que se aplica a nivel de instancia. Esto significa que sólo las instancias asociadas explícitamente a un grupo de seguridad estarán sujetas a sus reglas, mientras que todas las instancias de una subred se verán afectadas por la ACL de red aplicada a dicha subred. De forma similar a las ACL, se crean reglas de tráfico entrante y saliente basadas en el protocolo, el puerto y la IP de origen o destino. Sin embargo, existen algunas diferencias:
- Puede especificar reglas para permitir el tráfico de red, pero no puede crear reglas para denegar tipos específicos de tráfico. En esencia, se deniega todo el tráfico excepto el que usted permite explícitamente.
- Los grupos de seguridad son de estado, por lo que si se crea una regla para permitir la entrada de un determinado tipo de tráfico, también se permitirá el tráfico saliente en respuesta, aunque no exista una regla saliente explícita que permita dicho tráfico.
Cada instancia debe estar asociada a un grupo de seguridad y si no se especifica un grupo de seguridad en el momento del lanzamiento, esa instancia se asociará a un grupo de seguridad por defecto. Puede ver en la captura de pantalla anterior que un grupo de seguridad predeterminado tendrá una regla que sólo permitirá el tráfico entrante de otras instancias que estén asociadas con el mismo grupo de seguridad predeterminado. No se permite ningún otro tráfico entrante. Observando las reglas de salida anteriores, todo el tráfico de red de salida está permitido por el grupo de seguridad por defecto. Esto incluye el tráfico hacia Internet, ya que una VPC por defecto tendrá una ruta hacia una puerta de enlace a Internet por defecto. Aunque el grupo de seguridad por defecto puede modificarse, no recomendamos hacer ningún cambio en él. En su lugar, Rackspace recomienda crear nuevos grupos de seguridad que puedan adjuntarse a los recursos. Como puede imaginar, una VPC predeterminada puede ser adecuada para una pequeña aplicación no crítica de un solo nivel, pero no es ideal para un entorno de producción robusto. Por eso, a menudo los usuarios modifican sus configuraciones de VPC predeterminadas una vez que se familiarizan con la tecnología, e incluso crean VPC personalizadas para su uso en producción. Estén atentos a mi próxima entrada en el blog, donde haremos precisamente eso, y desglosaremos un caso de uso común que presenta una VPC personalizada con un nivel de subred pública y un nivel de subred privada. Visite Rackspace para obtener más información sobre nuestros expertos certificados de AWS y las formas en que ayudan a los clientes a utilizar AWS.