Pindah dari otentikasi IAM standar ke otentikasi end-to-end IAM untuk RDS Proxy - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pindah dari otentikasi IAM standar ke otentikasi end-to-end IAM untuk RDS Proxy

Jika saat ini Anda menggunakan otentikasi IAM standar untuk RDS Proxy, di mana klien mengautentikasi ke proxy menggunakan IAM tetapi proxy terhubung ke database menggunakan rahasia, Anda dapat bermigrasi ke otentikasi IAM di mana keduanya dan koneksi menggunakan otentikasi end-to-end IAM. client-to-proxy proxy-to-database

Untuk pindah ke otentikasi end-to-end IAM
  1. Perbarui izin peran IAM Proxy RDS

    Buat kebijakan izin proxy yang diperbarui yang mencakup Secrets Manager dan rds:db-connect izin:

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

    Perbarui proxy kebijakan peran Anda:

    aws iam put-role-policy \ --role-name RDSProxyRole \ --policy-name UpdatedProxyPermissions \ --policy-document file://updated-proxy-policy.json
  2. Ubah Proxy RDS Anda untuk mengaktifkan otentikasi end-to-end IAM

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

    Verifikasi bahwa status Proxy RDS Tersedia dan DefaultAuthScheme IAM_AUTH sebelum melanjutkan untuk memastikan nol downtime selama migrasi.

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

    Keluaran yang diharapkan

    { "DBProxies": [ { "DBProxyName": "my-database-proxy", "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123456789abcdef", "Status": "available", ... "DefaultAuthScheme": "IAM_AUTH" } ] }
  3. Aktifkan autentikasi IAM pada database

    aws rds modify-db-cluster \ --db-cluster-identifier my-database-cluster \ --enable-iam-database-authentication \ --region us-east-1
  4. Konfigurasikan pengguna basis data untuk otentikasi IAM

    Untuk Aurora PostgreSQL:

    GRANT rds_iam TO jane_doe;

    Untuk Aurora MySQL:

    ALTER USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS'; ALTER USER 'jane_doe'@'%' REQUIRE SSL;
  5. Kode aplikasi klien Anda tidak perlu diubah. Proses koneksi tetap sama:

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

    Untuk 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