Configuración de la autenticación de IAM para RDS Proxy
Para configurar la autenticación de AWS Identity and Access Management (IAM) para RDS Proxy en Amazon RDS, cree y configure una política de IAM que conceda los permisos necesarios.
En este tema se proporcionan los pasos para configurar la autenticación de IAM para RDS Proxy, incluida la creación de la política de IAM necesaria y la asociación a un rol de IAM.
sugerencia
Este procedimiento solo es necesario si desea crear un rol de IAM propio. De lo contrario, RDS puede crear automáticamente el rol requerido cuando configure el proxy, por lo que puede omitir estos pasos.
Requisitos previos
Antes de configurar la autenticación de IAM para RDS Proxy, asegúrese de que tiene lo siguiente:
-
AWS Secrets Manager: al menos un secreto almacenado que contenga credenciales de base de datos. Para obtener instrucciones para crear secretos, consulte Configuración de credenciales de base de datos para RDS Proxy.
Esto no es obligatorio si utiliza la autenticación de IAM integral.
-
Permisos de IAM: un rol o usuario de IAM con permisos para crear y administrar políticas, roles y secretos de IAM en AWS Secrets Manager.
Creación de una política de IAM para la autenticación de IAM integral
Cuando se utiliza la autenticación de IAM integral, RDS Proxy se conecta a la base de datos mediante la autenticación de IAM en lugar de recuperar las credenciales de Secrets Manager. Para ello, es necesario configurar el rol de IAM con permisos rds-db:connect para las cuentas de base de datos que desee utilizar con el proxy.
Para autenticar RDS Proxy en la base de datos mediante IAM, cree un rol de IAM con una política que conceda los permisos de conexión a la base de datos necesarios.
Creación de un rol para la autenticación de IAM integral con el proxy
Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
Cree una política de permisos para el rol. Para conocer los pasos generales, consulte Creación de políticas de IAM (consola).
Pegue esta política en el editor JSON y realice los siguientes cambios:
-
Sustituya su propio ID de cuenta.
-
Sustituya
us-east-2por el lugar donde debe residir el proxy. -
Sustituya los ID de los recursos de la base de datos y los nombres de usuario por los que desee utilizar. El formato del ID de recurso difiere entre las instancias de RDS y Aurora clusters.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rds-db:connect", "Resource": [ "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1", "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2" ] } ] } -
-
Cree el rol y asocie la política de permisos a este. Para conocer los pasos generales, consulte Creación de un rol para delegar permisos a un servicio de AWS.
En Tipo de entidad de confianza, elija Servicio de AWS. En Caso de uso, seleccione RDS y elija RDS: agregar rol a la base de datos para el caso de uso.
-
En Políticas de permisos, elija la política que creó.
-
En Seleccionar entidades de confianza, introduzca la siguiente política de confianza para el rol:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Para crear el rol mediante la AWS CLI, envíe la siguiente solicitud:
aws iam create-role \ --role-namemy_e2e_iam_role_name\ --assume-role-policy-document '{"Version":"2012-10-17", "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'
A continuación, asocie la política al rol:
aws iam put-role-policy \ --role-namemy_e2e_iam_role_name\ --policy-namee2e_iam_db_connect_policy\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rds-db:connect", "Resource": [ "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1", "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2" ] } ] }'
Una vez configurados el rol de IAM y los permisos para la autenticación de IAM integral, puede crear ahora un proxy con DefaultAuthScheme configurado en IAM_AUTH. Este proxy se autentica directamente en la base de datos mediante IAM sin requerir los secretos de Secrets Manager. Para obtener instrucciones, consulte Creación de un proxy para Amazon Aurora.
Cuando utilice la autenticación de IAM integral, asegúrese de que los usuarios de la base de datos estén configurados para la autenticación de IAM tal y como se describe en Creación de cuentas de base de datos utilizando autenticación de IAM.
Creación de una política de IAM para acceder a Secrets Manager
Para permitir que RDS Proxy recupere las credenciales de la base de datos de Secrets Manager, cree un rol de IAM con una política que conceda los permisos necesarios.
Creación de un rol que acceda a los secretos que desea utilizar con el proxy
Inicie sesión en Consola de administración de AWS y abra la consola IAM en https://console.aws.amazon.com/iam/
. -
Cree una política de permisos para el rol. Para conocer los pasos generales, consulte Creación de políticas de IAM (consola).
Pegue esta política en el editor JSON y realice los siguientes cambios:
-
Sustituya su propio ID de cuenta.
-
Sustituya
us-east-2por la región donde residirá el proxy. -
Sustituya los nombres secretos por los que ha creado. Para obtener más información, consulte Especificación de claves de KMS en instrucciones de política de IAM.
-
Sustituya el ID de clave de KMS por el que utilizó para cifrar los secretos de Secrets Manager, ya sea la clave predeterminada o una clave propia.
-
-
Cree el rol y asocie la política de permisos a este. Para conocer los pasos generales, consulte Creación de un rol para delegar permisos a un servicio de AWS.
En Tipo de entidad de confianza, elija Servicio de AWS. En Caso de uso, seleccione RDS y elija RDS: agregar rol a la base de datos para el caso de uso.
-
En Políticas de permisos, elija la política que creó.
-
En Seleccionar entidades de confianza, introduzca la siguiente política de confianza para el rol:
Para crear el rol mediante la AWS CLI, envíe la siguiente solicitud:
aws iam create-role \ --role-namemy_role_name\ --assume-role-policy-document '{"Version": "2012-10-17", "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'
A continuación, asocie la política al rol:
aws iam put-role-policy \ --role-namemy_role_name\ --policy-namesecret_reader_policy\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": [ "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_1", "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_2" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-east-2:account_id:key/key_id", "Condition": { "StringEquals": { "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com" } } } ] }'
Una vez configurados el rol de IAM y los permisos, puede crear un proxy y asociarlo a este rol. Esto permite al proxy recuperar de forma segura las credenciales de la base de datos de AWS Secrets Manager y habilitar la autenticación de IAM para las aplicaciones. Para obtener instrucciones, consulte Creación de un proxy para Amazon Aurora.