Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Passaggio dall'autenticazione IAM standard all'autenticazione end-to-end IAM per RDS Proxy
Se attualmente utilizzi l'autenticazione IAM standard per RDS Proxy, in cui i client si autenticano sul proxy utilizzando IAM ma il proxy si connette al database tramite segreti, puoi migrare all'autenticazione end-to-end IAM in cui entrambe le client-to-proxy proxy-to-database connessioni utilizzano l'autenticazione IAM.
Per passare all'autenticazione IAM end-to-end
-
Aggiorna le autorizzazioni del ruolo IAM del proxy RDS
Crea una politica di autorizzazione proxy aggiornata che includa sia Secrets Manager che
rds:db-connectle autorizzazioni:# Create updated proxy permission policy cat > updated-proxy-policy.json ≪ EOF{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetSecretsValue", "Action": [ "secretsmanager:GetSecretValue" ], "Effect": "Allow", "Resource": [ "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName-1234f" ] }, { "Sid": "RdsDBConnect", "Action": [ "rds-db:connect" ], "Effect": "Allow", "Resource": [ "arn:aws:rds-db:us-east-1:123456789012:dbuser:cluster-ABCDEFGHIJKL01234/jane_doe" ] } ] }Aggiorna la politica relativa al tuo ruolo:
aws iam put-role-policy \ --role-name RDSProxyRole \ --policy-name UpdatedProxyPermissions \ --policy-document file://updated-proxy-policy.json -
Modifica il tuo proxy RDS per abilitare l'autenticazione end-to-end IAM
aws rds modify-db-proxy \ --db-proxy-name my-database-proxy \ --default-auth-scheme IAM_AUTH \ --region us-east-1Verifica che lo stato del proxy RDS sia Disponibile e lo
DefaultAuthSchemesiaIAM_AUTHprima di procedere per garantire zero tempi di inattività durante la migrazione.aws rds describe-db-proxies --db-proxy-name my-database-proxy --region us-east-1Output previsto:
{ "DBProxies": [ { "DBProxyName": "my-database-proxy", "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123456789abcdef", "Status": "available", ... "DefaultAuthScheme": "IAM_AUTH" } ] } -
Abilita l'autenticazione IAM sul database
aws rds modify-db-cluster \ --db-cluster-identifier my-database-cluster \ --enable-iam-database-authentication \ --region us-east-1 -
Configura l'utente del database per l'autenticazione IAM
Per Aurora PostgreSQL:
GRANT rds_iam TO jane_doe;Per Aurora MySQL:
ALTER USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS'; ALTER USER 'jane_doe'@'%' REQUIRE SSL; -
Non è necessario modificare il codice dell'applicazione client. Il processo di connessione rimane lo stesso:
Per Aurora PostgreSQL:
# Generate authentication token export PGPASSWORD=$(aws rds generate-db-auth-token \ --hostname my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \ --port 5432 \ --username jane_doe \ --region us-east-1) # Connect to database through proxy psql "host=my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com port=5432 user=jane_doe dbname=postgres password=$PGPASSWORD sslmode=require sslrootcert=us-east-1-bundle.pem"Per Aurora MySQL:
# Generate authentication token export MYSQL_PWD=$(aws rds generate-db-auth-token \ --hostname my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \ --port 3306 \ --username jane_doe \ --region us-east-1) # Connect to database through proxy mysql -h my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \ -P 3306 \ -u jane_doe \ --ssl-ca=us-east-1-bundle.pem \ --enable-cleartext-plugin