Activación de la monitorización mejorada para Amazon RDS

Amazon RDS proporciona una característica de monitorización mejorada para bases de datos. Mediante esta característica, Amazon RDS puede monitorizar y registrar las métricas de las bases de datos en Amazon CloudWatch Logs. Sin embargo, para habilitar esta función es necesario asignar un rol a Amazon RDS, que a su vez requiere que el usuario tenga permiso PassRole.

¿Qué veremos aquí?

En este tutorial, aprenderás a utilizar el permiso ‘IAM Passrole’ para habilitar una monitorización mejorada para Amazon RDS. Lo veremos mediante un sencillo ejemplo.

¿Qué es el permiso Passrole?

Al configurar muchos servicios de AWS, el usuario/administrador debe pasar un rol a ese servicio. A continuación, el servicio asume ese rol para realizar las acciones permitidas dentro de ese rol. En la mayoría de los casos, el rol se pasa al servicio sólo una vez mientras se configura el servicio, y no cada vez que el rol es asumido por el servicio.

Un usuario debe tener derechos para pasar un rol a un servicio. Se trata de un aspecto de seguridad importante, ya que sólo los usuarios autorizados pueden pasar un rol a un servicio. Además, los administradores pueden controlar qué tipo de rol puede pasar un usuario al servicio.

Requisitos previos para pasar un rol a un servicio

Un usuario de IAM puede pasar un rol a un servicio de AWS si cumple los tres requisitos siguientes:

  1. Primero, una política, para el rol que vamos a crear, que decidirá el límite de permisos o alcance de nuestro rol IAM.
  2. A continuación, una política de confianza asociada a este rol, que básicamente permitirá al servicio de AWS (RDS en nuestro caso) tomar/asumir el rol y utilizar los permisos enumerados con el rol.
  3. Por último, se adjunta al usuario IAM una política de permisos IAM que le permite pasar los roles que está autorizado a pasar.

Crear el rol

En esta sección, crearemos un rol llamado ‘RDS-Monitoring-Role’ y le adjuntaremos una política gestionada por AWS ‘AmazonRDSEnhancedMonitoringRole’.

Paso 1. Dirígete al panel de control de IAM desde la cuenta de administrador o root y selecciona «Roles» en la opción Gestión de acceso. Haz clic en el botón «Crear Rol».

Seleccionar la entidad de confianza

Paso 2. En la sección ‘Seleccionar entidad de confianza’, verás el ‘Tipo de entidad de confianza’, selecciona aquí la opción ‘Servicio AWS’. Ahora busca ‘RDS’ en ‘Casos de uso de otros servicios de AWS’ y selecciona la opción ‘RDS – Monitorización mejorada’.

Paso 3. En la siguiente sección «Añadir permisos», adjunta una política «AmazonRDSEnhancedMonitoringRole» y haz clic en «Siguiente»:

Añadir la política ‘AmazonRDSEnhancedMonitoringRole’.

Paso 4. Aquí introduce un nombre para el rol:’RDS-Monitoring-Role’ y una descripción opcional para el mismo. Ten en cuenta que se adjuntará automáticamente una política de confianza a este rol:

{
	"Version": "2012-10-17",
	"Statement": [
    	{
        	"Sid": "",
        	"Effect": "Allow",
        	"Principal": {
            	"Service": "monitoring.rds.amazonaws.com"
        	},
        	"Action": "sts:AssumeRole"
    	}
	]
}

Paso 5. Por último, haz clic en el botón «Crear rol» para crear el rol anterior:

Nombrar el papel

Añadir política IAM para el usuario IAM

Hasta ahora hemos creado un rol y le hemos adjuntado una política, y además hemos obtenido una política de confianza. Con esto hemos cumplido dos de nuestros requisitos previos. Ahora pasamos al tercer requisito previo: crearemos una política para el propio usuario IAM. En esta política, hemos dado permiso al usuario para el acceso completo a EC2 y RDS y también permiso para asociar el rol ‘RDS-Monitoring-Role’ anterior con nuestra instancia RDS. Tú mismo puedes controlar el nivel de permisos IAM para EC2 y RDS, a nosotros sólo nos interesa demostrar el permiso PassRole:

Paso 1. De nuevo dirígete al panel de control de IAM desde la cuenta de administrador o root y selecciona «Políticas» y haz clic en el botón «Crear política».

Paso 2. En el asistente para Crear Política, haz clic en la pestaña JSON y simplemente pega el siguiente código JSON para esta política:

{
	"Version": "2012-10-17",
	"Statement": [
    	{
        	"Sid": "VisualEditor0",
        	"Effect": "Allow",
        	"Action": "iam:PassRole",
        	"Resource": "arn:aws:iam::account_number:role/RDS-Monitoring-Role"
    	},
    	{
        	"Sid": "VisualEditor1",
        	"Effect": "Allow",
        	"Action": [
            	"rds:*",
            	"logs:Describe*",
            	"logs:List*",
            	"logs:StartQuery",
            	"ec2:*",
            	"iam:ListRoles",
            	"logs:StopQuery",
            	"logs:TestMetricFilter",
            	"logs:FilterLogEvents",
            	"logs:Get*",
            	"cloudwatch:GetMetricData"
        	],
        	"Resource": "*"
    	}
	]
}

En el código anterior, sustituye ‘IAM_User_ID‘ por el número de cuenta o ID del usuario IAM y ‘RDS-Monitoring-Role‘ por el nombre del rol en tu caso. Haz clic en «Siguiente:Etiquetas».

Paso 3. Especifica las «Etiquetas» opcionales que quieras utilizar y haz clic en «Siguiente:Revisar»:

Paso 4. Aquí pon un nombre a esta política(‘RDS-Monitoring-User-Policy’ en nuestro caso) y finalmente, haz clic en el botón ‘Crear política’ para crear esta política:

Creación de la política de usuario de supervisión de RDS

Paso 5. Adjunta la política creada anteriormente al usuario IAM:

Adjuntar la política al usuario IAM

Base de datos sin rol

A continuación podemos ver el escenario de configuración de la base de datos sin adjuntar el rol creado anteriormente (RDS-Monitoring-Role). Aquí podemos ver que obtenemos un error de cloudwatch:GetMetricData.

Error de CloudWatch

Adjuntar el rol a la Base de Datos

Ahora adjuntaremos el ‘RDS-Monitoring-Role’ a la base de datos y comprobaremos si el error de CloudWatch anterior desaparece o no. Un rol puede asociarse a una instancia RDS en el momento de crearla o después de haberla creado. En caso de que ya hayas creado la base de datos, deberás modificar la instancia db. En cualquier caso, dirígete a la consola RDS y abre el bloque «Configuración adicional» en la configuración de la base de datos de destino. Busca la sección ‘Monitorización’ y marca aquí la casilla correspondiente a ‘Activar monitorización mejorada’. En «Rol de monitorización», selecciona tu rol en el menú desplegable y haz clic en «Continuar»:

Adjuntar el rol a la Base de Datos

En la siguiente ventana, elige la acción para cuando aplicar los cambios y haz clic en ‘Modificar instancia de BD’:

Aplicar los cambios

Esta vez, cuando veas los detalles de configuración de la base de datos, el error de CloudWatch debería haber desaparecido:

No hay error de CloudWatch

Conclusión

En esta guía hemos aprendido a utilizar el permiso PassRole para activar la función de Monitorización Mejorada para RDS. PassRole es una gran característica para conceder los menores privilegios a un usuario IAM para acceder a otros servicios de AWS a los que no está autorizado a acceder.

También te podría gustar...