

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
<a name="rds-proxy-iam-migration"></a>

 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
   ```

1. 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"
       }
     ]
   }
   ```

1. Aktifkan autentikasi IAM pada database

   ```
   aws rds modify-db-cluster \
     --db-cluster-identifier my-database-cluster \
     --enable-iam-database-authentication \
     --region us-east-1
   ```

1. Konfigurasikan pengguna basis data untuk otentikasi IAM

   Untuk RDS untuk PostgreSQL:

   ```
   GRANT rds_iam TO jane_doe;
   ```

   Untuk RDS untuk MySQL dan RDS untuk MariaDB:

   ```
   ALTER USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
   ALTER USER 'jane_doe'@'%' REQUIRE SSL;
   ```

1. Kode aplikasi klien Anda tidak perlu diubah. Proses koneksi tetap sama:

   Untuk RDS untuk 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 RDS untuk MySQL dan RDS untuk MariaDB:

   ```
   # 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
   ```