Passage de l'authentification IAM standard à l'authentification end-to-end IAM pour le proxy RDS - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Passage de l'authentification IAM standard à l'authentification end-to-end IAM pour le proxy RDS

Si vous utilisez actuellement l'authentification IAM standard pour le proxy RDS, dans laquelle les clients s'authentifient auprès du proxy via IAM mais le proxy se connecte à la base de données à l'aide de secrets, vous pouvez passer à l'authentification IAM dans laquelle les connexions client-to-proxy et proxy-to-database les connexions utilisent l'authentification end-to-end IAM.

Pour passer à l' end-to-endauthentification IAM
  1. Mettre à jour les autorisations du rôle IAM du proxy RDS

    Créez une politique d'autorisation de proxy mise à jour qui inclut à la fois Secrets Manager et rds:db-connect les autorisations :

    # 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" ] } ] }

    Mettez à jour votre politique de rôle en tant que proxy :

    aws iam put-role-policy \ --role-name RDSProxyRole \ --policy-name UpdatedProxyPermissions \ --policy-document file://updated-proxy-policy.json
  2. Modifiez votre proxy RDS pour activer l'authentification end-to-end IAM

    aws rds modify-db-proxy \ --db-proxy-name my-database-proxy \ --default-auth-scheme IAM_AUTH \ --region us-east-1

    Vérifiez que l'état du proxy RDS est disponible et qu'il l'DefaultAuthSchemeest IAM_AUTH avant de poursuivre afin de garantir l'absence de temps d'arrêt pendant la migration.

    aws rds describe-db-proxies --db-proxy-name my-database-proxy --region us-east-1

    Sortie attendue :

    { "DBProxies": [ { "DBProxyName": "my-database-proxy", "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123456789abcdef", "Status": "available", ... "DefaultAuthScheme": "IAM_AUTH" } ] }
  3. Activer l'authentification IAM sur la base de données

    aws rds modify-db-cluster \ --db-cluster-identifier my-database-cluster \ --enable-iam-database-authentication \ --region us-east-1
  4. Configuration de l'utilisateur de base de données pour l'authentification IAM

    Pour Aurora PostgreSQL :

    GRANT rds_iam TO jane_doe;

    Pour Aurora MySQL :

    ALTER USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS'; ALTER USER 'jane_doe'@'%' REQUIRE SSL;
  5. Le code de votre application client n'a pas besoin de changer. Le processus de connexion reste le même :

    Pour 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"

    Pour 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