Perché non riesco a collegarmi ad Amazon RDS dopo averlo configurato?


43

Quindi, ho appena creato l'account Amazon RDS. E ho avviato un'istanza di database.

The "endpoint" is:
abcw3n-prod.cbmbuiv8aakk.us-east-1.rds.amazonaws.com

Grande! Ora provo a connettermi ad esso da una delle mie altre istanze EC2.

mysql -uUSER -pPASS -habcw3n-prod.cbmbuiv8aakk.us-east-1.rds.amazonaws.com

Ma niente funziona e si blocca.

Ho provato a eseguirne il ping e non funziona neanche niente. Non succede nulla.

Devo modificare alcune impostazioni?

Risposte:


45

Per impostazione predefinita, RDS non consente alcuna connessione non specificata nel Security Group (SG). Puoi consentire in base all'indirizzo CIDR o al numero di account Amazon che consentirebbe a qualsiasi EC2 con tale account di accedervi.


27

È "solo sospeso" in quanto non è stato configurato il firewall per accettare connessioni mySQL dall'altra istanza, in quanto tale pacchetto viene eliminato a livello di firewall, per risolvere il problema è necessario:

  1. vai nella tua console AWS
  2. Scheda EC2
  3. Annota il gruppo di sicurezza del tuo server mySQL (per il momento chiama questo SG-MYSQL)
  4. fai clic su gruppi di sicurezza a sinistra della console
  5. fai clic sul tuo gruppo nel menu centrale SG-MYSQL
  6. fare clic sulla scheda in entrata
  7. seleziona mySQL dall'elenco, aggiungi i dettagli del tuo server client e salva la regola

NOTA l'IP sorgente per il server non sarà il tuo IP elastico (nella maggior parte dei casi comunque) avrai un IP interno sul dispositivo (ifconfig su linux ti mostrerà questo).


1
L'ho fatto sul mio server EC2. Ho aperto tutte le porte standard.
Alex,

1
Non ho un'istanza EC2 e il mio RDS non è riuscito a connettersi al mondo esterno fino a quando non l'ho fatto.
Umair A.

1
ottimo punto per usare elastico IP!
user1641443

1
Grazie per questo. La procedura dettagliata ha fatto la differenza!
T

1
Creato un account in errore del server solo per votare questo. GRAZIE.
CaptainMarvel

7

Parliamo molto di gruppi di sicurezza, ma controlla anche:

  • Le sottoreti associate sembrano configurate correttamente?
  • Le sottoreti fanno parte di un gruppo di routing che sembra configurato correttamente (Internet Gateway specificato, ecc.)
  • L'RDS dice che è accessibile al pubblico?
  • E, naturalmente, controlla il gruppo di sicurezza RDS e il gruppo di sicurezza EC2
    • Non dimenticare che il tuo IP di origine effettivo può essere un IP interno (se accedi internamente tramite un VPC) o un IP esterno (che può essere un IP del router o un IP dell'istanza dell'istanza EC2 che è distinto dal suo Load Balancer / Elastic IP) - per risolvere i problemi, puoi provare a consentire l'accesso a tutti gli IP e le porte.

(Il gruppo di routing era il mio problema; nella creazione di una nuova sottorete, ho trascurato di aggiungerlo a un gruppo di routing con un gateway.)


Per chiarire: TUTTE le sottoreti scelte nel gruppo di sottoreti RDS devono avere tabelle di routing in cui è specificato il gateway Internet. Il mio problema era che due delle sottoreti che avevo scelto erano le mie sottoreti "private", che avevano un gateway NAT specificato per il traffico in uscita anziché il gateway Internet e RDS sceglieva un server in una di quelle sottoreti. Fare riferimento a questo articolo se non si ha familiarità con il routing: medium.com/@mda590/aws-routing-101-67879d23014d
timetofly

Sono stato interessato dallo stesso problema di @timetofly. Avevo un lavoro unico che ho deciso di eseguire su ECS Fargate, che richiedeva un NAT per scaricare i file. L'impostazione del NAT ha interrotto la mia connessione a RDS dal mio laptop. Al termine del lavoro, ho aggiornato le mie sottoreti per utilizzare solo Internet Gateway ed ero a posto.
vitale232

4

Fisso.

Ho dovuto concedere l'accesso ad esso nei gruppi di sicurezza sotto il DB ...


6
Puoi approfondire cosa hai fatto per concedere l'accesso?
David Csonka,

1
Il mio database ha un gruppo di sicurezza con una regola. Consenti l'accesso da OVUNQUE alla porta 1433. Non riesco a connettermi -_-
The Muffin Man

1

Ho avuto lo stesso problema;

  1. Gruppi di sicurezza> rds-launch-wizard (o qualsiasi nome scelto per il db SG)
  2. seleziona la scheda Inbound> modifica
  3. aggiungi nuovo ruolo
  4. MySQL
  5. Sorgente -> inserisci l'ip aws vm (per esempio: 12.3.14.80/32)

ha funzionato per me ...


1

Nel tentativo di aprire completamente la sicurezza per i test prima di bloccare l'accesso, sia l'istanza del mio database che quella EC2 hanno utilizzato lo stesso gruppo di sicurezza e sia la porta in ingresso che quella in uscita 3306 sono state configurate per consentire connessioni da qualsiasi luogo. Il problema: sono stato in grado di connettermi ad Aurora dal mio notebook ma stranamente non dalla mia istanza EC2, come se l'istanza EC2 non fosse ovunque. La soluzione era aggiungere un'altra regola mysql / Aurora in entrata e specificare lo stesso ID del gruppo di sicurezza dell'origine per le connessioni in entrata. Il mio gruppo di sicurezza ha una regola che fa riferimento a se stesso e posso connettermi dal mio notebook o dalla mia istanza EC2.


-3

La regola in entrata mysql dovrebbe essere come di seguito

Immagine questo è il problema con il gruppo di sicurezza.


3
C'è una ragione per cui stai rispondendo a una domanda di cinque anni per rispondere con la stessa risposta che esiste da anni? Dare 0.0.0.0/0accesso a 3306non è una grande idea, neanche.
Ceejayoz,

ho provato a mostrare all'utente cosa dovrebbero cambiare e come possono cambiare, sai che ci sono molti utenti come me che non riescono a risolvere il problema leggendo la risposta sopra. potrebbe non aiutarti ma ci sono utenti che lo cercano. hai dato il voto negativo perché non ti aiuta.
Nirmal Dhara,

3
Il mio downvote deriva dal dire che le persone dovrebbero aprire MySQL a tutta Internet. È un approccio pericoloso.
Ceejayoz,

capito. mostro solo il luogo in cui possono modificare i gruppi di sicurezza, possono scegliere dal menu a discesa quello che vogliono.
Nirmal Dhara,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.