2014-06-15 10 views
16

Ho un nodo EC2, nodo1 (gruppo di sicurezza SG1) che dovrebbe essere accessibile da un altro nodo EC2, nodo2 (gruppo di sicurezza SG2) sulla porta 9200. Ora, quando aggiungo una regola in entrata in SG1 con la porta 9200 e specifica SG2 come origine nella sezione IP personalizzata, non riesco ad accedere a node1 da node2. D'altra parte, se si specifica una regola in entrata in SG1 con origine come 0.0.0.0/0 o IP di node2, funziona correttamente. Cosa c'è di sbagliato nel mio approccio?Il gruppo di sicurezza dell'origine non funziona come previsto in AWS

risposta

27

Si sta tentando di connettersi all'indirizzo pubblico o privato di node1? Dal documentation:

Quando si specifica un gruppo di protezione come l'origine o la destinazione per una regola , la regola ha effetto su tutti casi associati con la sicurezza gruppo. Ad esempio, il traffico in entrata è consentito in base agli indirizzi IP privati ​​ delle istanze associate al gruppo di sicurezza di origine.

Sono stato masterizzato su questo prima tentando di connettersi all'indirizzo pubblico di un'istanza EC2 ... suona molto simile alla tua configurazione, in realtà. Quando si collega la regola in entrata in modo che l'origine sia un gruppo di sicurezza, è necessario comunicare attraverso l'indirizzo privato dell'istanza di origine.

Alcune cose di essere a conoscenza di:

  • In EC2 Classic, indirizzi IP privati ​​possono cambiare su Stop/Start di un'istanza EC2. Se stai utilizzando EC2 classic potresti voler esaminare this discussion on Elastic DNS Names per una soluzione di indirizzamento più statica.
  • Se si imposta l'ambiente in VPC, private IP addresses are static. È inoltre possibile modificare l'appartenenza al gruppo di sicurezza delle istanze in esecuzione.
9

Motivo: La comunicazione inter-gruppo di sicurezza funziona tramite indirizzamento privato. Se si utilizza l'indirizzo IP pubblico, la regola del firewall non riconoscerà il gruppo di sicurezza dell'origine.

Soluzione: È necessario indirizzare le istanze utilizzando il record DNS pubblico: questo verrà effettivamente indirizzato all'indirizzo IP privato quando una delle istanze interroga il nome DNS.

ad es. se l'istanza ha IP pubblico 203.0.113.185 e IP privato 10.1.234.12, viene fornito un nome DNS pubblico come ec2-203-0-113-185.eu-west-1.compute.amazonaws.com.

ec2-203-0-113-185.eu-west-1.compute.amazonaws.com risolverà a 203.0.113.185 se richiesto esternamente o 10.1.234.12 se richiesto internamente. Ciò consentirà ai gruppi di sicurezza di funzionare come previsto.

Ciò consentirà di utilizzare un IP elastico poiché si utilizza semplicemente la voce Public DNS dell'IP elastico. Inoltre, having the DNS resolve to the internal IP means that you are not incurring bandwidth charges for your data between instances:

istanze che accedono altri casi attraverso il loro pubblico NAT IP indirizzo pagano per il trasferimento dei dati regionali o Internet, a seconda se le istanze sono nella stessa regione.

0

Il DNS pubblico non ha funzionato per me. Quello che ho fatto è stato invece creare una regola in entrata personalizzata usando il gruppo di sicurezza dell'altra istanza.

Problemi correlati