Come posso consentire agli utenti di autenticarsi su un'istanza database Amazon RDS per MySQL tramite le proprie credenziali IAM?
Desidero connettermi a un'istanza database di Amazon Relational Database Service (Amazon RDS) per MySQL. Desidero utilizzare le credenziali di AWS Identity and Access Management (AWS IAM) invece dei metodi di autenticazione nativi.
Risoluzione
Nota: utilizza una connessione MySQL non crittografata solo quando client e server si trovano nello stesso cloud privato virtuale (VPC) e la rete è attendibile.
Prerequisito: devi avviare un'istanza database che supporti l'autenticazione del database IAM e un'istanza Amazon Elastic Compute Cloud (Amazon EC2) per connetterti al database.
Per verificare la configurazione richiesta per l'autenticazione IAM, utilizza il runbook AWSSupport-TroubleshootRDSIAMAuthentication di Automazione AWS Systems Manager. Puoi utilizzare il runbook anche per risolvere problemi di connettività a un'istanza Amazon RDS o a un cluster Amazon Aurora.
Attiva l'autenticazione del database IAM sull'istanza database RDS
Puoi utilizzare la console Amazon RDS, AWS CLI o l'API Amazon RDS per attivare l'autenticazione del database IAM.
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.
Se utilizzi la console Amazon RDS per modificare l'istanza database, scegli Applica immediatamente per attivare l'autenticazione del database IAM. Per ulteriori informazioni, consulta ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.html)Istanze database Amazon RDS[.
Nota: quando scegli Applica immediatamente, anche tutte le modifiche in sospeso vengono applicate immediatamente. Per ulteriori informazioni, consulta Utilizzo dell'impostazione Pianifica le modifiche.
Crea un account utente del database che utilizzi un token di autenticazione AWS
Per connetterti all'istanza database o all'endpoint del cluster, esegui questo comando:
mysql -h {database or cluster endpoint} -P {port number database is listening on} -u {master db username} -p
Nota: utilizza la password principale per accedere.
Per creare un account utente del database che utilizzi l'autenticazione IAM anziché una password, esegui questo comando:
CREATE USER {dbusername} IDENTIFIED WITH AWSAuthenticationPlugin as 'RDS';
Per impostazione predefinita, l'utente del database non dispone di autorizzazioni. L'utente del database viene visualizzato come GRANT USAGE quando esegui il comando SHOW GRANTS FOR {dbusername}. Per richiedere un account utente quando utilizzi SSL per la connessione, esegui questo comando:
ALTER USER {dbusername} REQUIRE SSL;
Per chiudere MySQL, esegui il comando exit. Quindi esci dall'istanza database.
Aggiungi una policy IAM che mappi l'utente del database sul ruolo IAM
Completa i seguenti passaggi:
- Apri la console IAM.
- Nel pannello di navigazione, scegli Policy.
- Scegli Crea policy.
- Inserisci una policy che conceda l'azione rds-db:connect all'utente richiesto. Per ulteriori informazioni, consulta Creazione e utilizzo di una policy IAM per l'accesso al database IAM.
Nota: assicurati di inserire i dettagli delle risorse del tuo database nella sezione Risorse. - Scegli Avanti.
- In Nome, inserisci un nome per la policy.
- Scegli Crea policy.
Crea un ruolo IAM che consenta l'accesso ad Amazon RDS
Completa i seguenti passaggi:
- Apri la console IAM.
- Dal pannello di navigazione scegli Ruoli.
- Scegli Crea ruolo.
- Nella sezione Tipo di entità attendibile, seleziona Servizio AWS.
- Nella sezione Caso d'uso, in Servizio o caso d'uso, scegli EC2.
- Scegli Avanti.
- Utilizza la barra di ricerca per trovare la policy IAM.
- Scegli Avanti.
- In Nome ruolo inserisci un nome per il ruolo IAM.
- Scegli Crea ruolo.
Associa il ruolo IAM all'istanza Amazon EC2
Completa i seguenti passaggi:
- Apri la console Amazon EC2.
- Nel pannello di navigazione, scegli Istanze, quindi seleziona l'istanza che utilizzi per connetterti ad Amazon RDS.
- Collega il ruolo IAM all'istanza EC2.
- Utilizza SSH per connetterti all'istanza EC2.
Genera un token di autenticazione AWS per identificare il ruolo IAM
Dopo esserti connesso all'istanza Amazon EC2, esegui il comando AWS CLI generate-db-auth-token per generare un token di autenticazione:
aws rds generate-db-auth-token --hostname {db or cluster endpoint} --port 3306 --username {db username}
Copia e archivia il token di autenticazione per utilizzarlo in seguito. In alternativa, utilizza AWS SDK per .NET per generare un token.
Scarica il file del pacchetto di certificati root SSL
Per scaricare un pacchetto di certificati per tutte le Regioni AWS, consulta Pacchetti di certificati per tutte le Regioni AWS.
Utilizza le credenziali del ruolo IAM e il token di autenticazione per connetterti all'istanza database RDS
Dopo aver scaricato il file dei certificati, esegui questo comando per connetterti all'istanza database con SSL:
RDSHOST="rdsmysql.abcdefghijk.us-west-2.rds.amazonaws.com"TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --region us-west-2 --username {db username})" mysql --host=$RDSHOST --port=3306 --ssl-ca=/sample_dir/global-bundle.pem --enable-cleartext-plugin --user=jane_doe --password=$TOKEN
Nota: se utilizzi un client MariaDB, non includere l'opzione —enable-cleartext-plugin.
Utilizza le credenziali del ruolo IAM e i certificati SSL per connetterti all'istanza database RDS
Dopo aver scaricato il file dei certificati, connettiti all'istanza database con SSL.
Informazioni correlate
Autenticazione del database IAM per MariaDB, MySQL e PostgreSQL
- Lingua
- Italiano
Video correlati

