Global outage event
If you're experiencing issues with your AWS services, then please refer to the AWS Health Dashboard. You can find the overall status of ongoing outages, the health of AWS services, and the latest updates from AWS engineers.
Come posso risolvere i problemi di connessione con il mio cluster di database Aurora compatibile con PostgreSQL?
Desidero risolvere i problemi di connessione con il mio cluster di database Amazon Aurora compatibile con PostgreSQL.
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Verifica di aver configurato i parametri di connessione corretti
Completa i seguenti passaggi:
- Apri la console Amazon Relational Database Service (Amazon RDS).
- Nel pannello di navigazione, scegli Database.
- Seleziona il cluster di database Aurora compatibile con PostgreSQL.
- Nella scheda Connettività e sicurezza, annota i seguenti valori:<br id=hardline_break/> Endpoint dell'istanza di scrittura o lettura<br id=hardline_break/> Numero di porta predefinito 5432
- Verifica di avere il nome del database, il nome utente e la password corretti.
Per un test della connessione, esegui questo comando psql:
psql -h your-cluster-endpoint -p 5432 -U your-username -d your-database-name
Nota: sostituisci your-cluster-endpoint con l'endpoint del tuo cluster, your-username con il nome utente del tuo database e your-database-name con il nome del tuo database.
Esegui un test della connettività di rete
Per verificare che il client possa raggiungere l'endpoint del cluster di database Aurora compatibile con PostgreSQL, esegui questi comandi.
Utilizza telnet
Esegui questo comando telnet:
telnet your-cluster-endpoint 5432
Nota: sostituisci your-cluster-endpoint con l'endpoint del tuo cluster.
Se la connessione ha esito positivo, l'output è simile al seguente:
Trying xxx.xxx.xxx.xxx... Connected to your-cluster-endpoint.
Utilizza netcat
Se telnet non è disponibile, esegui questo comando netcat:
nc -zv your-cluster-endpoint 5432
Nota: sostituisci your-cluster-endpoint con l'endpoint del tuo cluster.
Se la connessione ha esito positivo, l'output è simile al seguente:
Connection to your-cluster-endpoint 5432 port [tcp/postgresql] succeeded!
Se i comandi precedenti scadono o hanno esito negativo, è presente un problema di connettività di rete. Verifica di aver configurato le regole in entrata corrette per il gruppo di sicurezza.
Controlla le regole in entrata del gruppo di sicurezza
Completa i seguenti passaggi:
- Apri la console Amazon RDS.
- Nel pannello di navigazione, scegli Database.
- Seleziona il cluster di database Aurora compatibile con PostgreSQL.
- Nella sezione Connettività e sicurezza, annota il nome del gruppo di sicurezza alla voce Gruppi di sicurezza VPC.
- Apri la console Amazon Virtual Private Cloud (Amazon VPC).
- Nel pannello di navigazione, scegli Gruppi di sicurezza.
- Seleziona il gruppo di sicurezza.
- Scegli Regole in entrata.
- Verifica che esista una regola con le seguenti impostazioni:<br id=hardline_break/> Tipo è PostgreSQL o TCP personalizzato.<br id=hardline_break/> Porta è 5432.<br id=hardline_break/> Origine è l'indirizzo IP del client o l'intervallo CIDR appropriato.
Per aggiungere una regola in entrata al gruppo di sicurezza utilizzando la console Amazon VPC, consulta Configurazione delle regole per i gruppi di sicurezza.
Per aggiungere una regola in entrata utilizzando AWS CLI, esegui questo comando authorize-security-group-ingress:
aws ec2 authorize-security-group-ingress \ --group-id your-group-id \ --protocol tcp \ --port 5432 \ --cidr your-IP-address/32 \ --region your-region
Nota: sostituisci your-group-id con l'ID del tuo gruppo di sicurezza, your-IP-address/32 con il tuo indirizzo IP o il tuo intervallo CIDR e your-region con la tua Regione AWS.
Verifica le regole ACL in entrata della rete VPC
Per verificare le regole ACL della rete, completa i seguenti passaggi:
- Apri la console Amazon VPC.
- Nel pannello di navigazione, scegli Liste di controllo degli accessi alla rete.
- Seleziona l'ACL associata alla sottorete del database.
- Scegli la scheda Regole in entrata.
- Verifica che esista una regola con le seguenti impostazioni:<br id=hardline_break/> Tipo è PostgreSQL (5432) o Tutto il traffico.<br id=hardline_break/> Origine è l'intervallo di indirizzi IP del client o 0.0.0.0/0.
Per aggiungere una regola ACL, consulta Passaggio 2: aggiungere regole.
Verifica la configurazione della sottorete e del routing
Per verificare la configurazione della sottorete, completa i seguenti passaggi:
- Apri la console Amazon RDS.
- Nel pannello di navigazione, scegli Database.
- Seleziona il cluster di database Aurora compatibile con PostgreSQL.
- Nella scheda Connettività e sicurezza, annota il nome del gruppo di sottoreti del database.
- Scegli il collegamento del gruppo di sottoreti.
- Verifica che le sottoreti si trovino nelle zone di disponibilità e nel VPC corretti.
Per verificare la configurazione della tabella di routing, consulta Determinazione della tabella di routing per una sottorete.
Verifica le autorizzazioni a livello di database
Verificare che l'utente del database abbia le autorizzazioni necessarie per connettersi al database.
Connettiti come utente primario
Esegui questo comando psql:
psql -h your-cluster-endpoint -p 5432 -U primary-username -d postgres
Nota: sostituisci your-cluster-endpoint con l'endpoint del tuo cluster e primary-username con il tuo nome utente primario.
Verifica le autorizzazioni degli utenti
Dopo esserti connesso come utente primario, esegui queste query SQL per verificare le autorizzazioni degli utenti.
Per elencare tutti gli utenti del database, esegui questo comando:
SELECT usename, usesuper, usecreatedb, useconnlimit FROM pg_user ORDER BY usename;
Per verificare le autorizzazioni di utenti specifici, esegui questo comando:
SELECT usename, usesuper, usecreatedb, useconnlimit FROM pg_user WHERE usename = 'your-username';
Nota: sostituisci your-username con il nome utente di cui desideri verificare le autorizzazioni.
Per elencare i database e i relativi proprietari, esegui questo comando:
SELECT datname, datowner, datacl FROM pg_database WHERE datname NOT IN ('template0', 'template1');
Crea o modifica le autorizzazioni degli utenti
Se l'utente non esiste o non dispone di autorizzazioni sufficienti, esegui questi comandi.
Per creare un nuovo utente, esegui questo comando:
CREATE USER your_username WITH PASSWORD 'your_password';
Nota: sostituisci your_username con il nome utente dell'utente che stai creando e your_password con una password sicura.
Per concedere all'utente il permesso di connettersi a un database, esegui questo comando:
GRANT CONNECT ON DATABASE your_database_name TO your_username;
Nota: sostituisci your_database_name con il nome del tuo database e your_username con il nome utente dell'utente a cui stai concedendo l'autorizzazione.
Per concedere all'utente il permesso di utilizzare uno schema, esegui questo comando:
GRANT USAGE ON SCHEMA public TO your_username;
Nota: sostituisci your_username con il nome utente a cui stai concedendo l'autorizzazione.
Per concedere all'utente l'autorizzazione per una tabella, esegui questo comando:
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO your_username;
Nota: sostituisci your_username con il nome utente a cui stai concedendo l'autorizzazione.
Monitora le quote di connessioni
Verifica se il cluster di database ha raggiunto la quota massima di connessioni.
Controlla le connessioni correnti
Connettiti al cluster di database, quindi esegui queste query SQL.
Per controllare il numero di connessioni correnti, esegui questo comando:
SELECT count(*) as current_connections FROM pg_stat_activity WHERE state = 'active';
Per verificare l'impostazione del numero massimo di connessioni, esegui questo comando:
SHOW max_connections;
Per visualizzare le connessioni attive per utente, esegui questo comando:
SELECT usename, count(*) as connection_count FROM pg_stat_activity GROUP BY usename ORDER BY connection_count DESC;
Modifica il parametro max_connections
Per modificare il parametro max_connections, consulta Modifica dei parametri in un gruppo di parametri del cluster di database in Amazon Aurora.
Esegui un test delle connessioni SSL/TLS
Aurora compatibile con PostgreSQL supporta le connessioni crittografate. Esegui un test sia delle connessioni crittografate che delle connessioni non crittografate.
Esegui il test senza SSL
Per il test della connessione senza SSL, esegui questo comando psql:
psql "host=your-cluster-endpoint port=5432 dbname=your-database user=your-username sslmode=disable"
Nota: sostituisci your-cluster-endpoint con l'endpoint del tuo cluster, your-database con il nome del tuo database e your-username con il tuo nome utente.
Esegui il test con SSL
Per il test della connessione con SSL, esegui questo comando psql:
psql "host=your-cluster-endpoint port=5432 dbname=your-database user=your-username sslmode=require"
Nota: sostituisci your-cluster-endpoint.cluster con l'endpoint del tuo cluster, your-database con il nome del tuo database e your-username con il tuo nome utente.
Scarica e utilizza il certificato CA per RDS
Per scaricare il certificato dell'autorità di certificazione (CA) per RDS, esegui questo comando wget:
wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
Per utilizzare il certificato, esegui questo comando psql:
psql "host=your-cluster-endpoint port=5432 dbname=your-database user=your-username sslmode=verify-full sslrootcert=global-bundle.pem"
Nota: sostituisci your-cluster-endpoint con l'endpoint del tuo cluster, your-database con il nome del tuo database e your-username con il tuo nome utente.
Risolvi i problemi di autenticazione IAM del database
Se utilizzi l'autenticazione AWS Identity and Access Management (AWS IAM) del database, completa i seguenti passaggi.
Genera un token di autenticazione
Per generare un token di autenticazione, esegui questo comando AWS CLI generate-db-auth-token:
aws rds generate-db-auth-token \ --hostname your-cluster-endpoint \ --port 5432 \ --region your-region \ --username your-iam-username
Nota: sostituisci your-cluster-endpoint con l'endpoint del tuo cluster, your-region con la tua Region e your-iam-username con il nome utente IAM del tuo database.
Utilizza l'autenticazione IAM per connetterti
Esegui questo comando psql:
psql "host=your-cluster-endpoint port=5432 dbname=your-database user=your-iam-username password=your-generated-token"
Nota: sostituisci your-cluster-endpoint con l'endpoint del tuo cluster, your-database con il nome del tuo database e your-iam-username con il tuo nome utente IAM. Inoltre, sostituisci your-generated-token con il token che hai generato.
Verifica le autorizzazioni della policy IAM
Assicurati di aver collegato la seguente policy all'utente o al ruolo IAM:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:region:account-id:dbuser:cluster-resource-id/your-iam-username" ] } ] }
Nota: sostituisci region con la tua Regione, account-id con l'ID del tuo account AWS, cluster-resource-id con l'ID della tua risorsa cluster di database e your-iam-username con il nome utente IAM del tuo database.
Per approfondire ulteriormente i problemi di connessione, consulta Risoluzione dei problemi relativi alle connessioni all'istanza RDS per PostgreSQL.
Informazioni correlate
Controlla il traffico verso le tue risorse AWS utilizzando i gruppi di sicurezza
Controllo del traffico della sottorete con le liste di controllo degli accessi alla rete
- Argomenti
- Database
- Lingua
- Italiano
