Tengo un servicio que se ejecuta dentro de una VPC que se expone a través de nginx (también en un servidor dentro de la VPC), ya que se necesitan configuraciones http(s) que maneja nginx. Quiero permitir que solo los servidores en la misma VPC accedan a ese servicio; en este momento, eso se hace a través de ips codificadas con:
allow <elastic ip>; allow <specific ip>; allow <specific ip>; ... deny all;La IP elástica (que está en el ámbito de vpc) parece permitir solo instancias que no tienen su propia IP pública. También intenté permitir los bloques CIDR de subred y vpc, que supongo que no ayudan, ya que son internos.
¿Cómo puedo obtener un CIDR público general para una VPC privada? ¿Es posible? ¿Estoy haciendo esto de la manera incorrecta?
Parece que debería usar un grupo de seguridad .
Un grupo de seguridad es como un firewall alrededor de cada instancia individual de Amazon EC2. Controla qué puertos son accesibles desde qué rango de CIDR.
Supongamos que tiene una instancia EC2 que ejecuta un servicio en el puerto 80 y desea que solo otras instancias de la VPC puedan acceder a ella. Simplemente configuraría el grupo de seguridad para que solo permita conexiones entrantes en el puerto 80 desde el rango CIDR de la VPC . Esto usaría las direcciones IP privadas , ya que de ahí proviene el tráfico.
Vayamos un paso mejor... digamos que solo desea que instancias específicas puedan comunicarse. Lo harías:
App-SG )Web-SG )Web-SG configurado para permitir conexiones entrantes en el puerto 80 desde App-SG Es decir, el grupo de seguridad hace referencia específicamente a otro grupo de seguridad. Esto permitirá conexiones entrantes desde cualquier instancia de EC2 que tenga la App-SG asociada.
Ninguno de los anteriores requiere una dirección IP elástica. Solo los recursos de cara al público requieren una dirección IP pública. Es bastante común exponer solo un Load Balancer y mantener todo lo demás 'privado'.