En esta guía paso a paso, aprenderemos cómo configurar la autenticación SSO con Redshift y AWS IAM Identity Center para aumentar la seguridad y facilitar el acceso de los usuarios.

Redshift SSO.drawio Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 1

Fuentes Utilizadas:

Diccionario de Términos:

TérminoSignificado
Cuenta del Identity CenterLa cuenta donde se configura el IAM Identity Center.
Cuenta de RedshiftLa cuenta secundaria de la cuenta del Identity Center que contiene el clúster de Redshift al que queremos conectarnos.
IDPProveedor de Identidad

¿Qué es Redshift?

AWS Redshift es un servicio de almacenamiento de datos completamente gestionado proporcionado por Amazon Web Services (AWS).
Está diseñado para manejar cargas de trabajo de análisis de datos a gran escala y permite a las organizaciones analizar grandes cantidades de datos de manera rápida y rentable.

¿Qué es IAM Identity Center?

IAM Identity Center proporciona un lugar donde puedes crear o conectar usuarios de la fuerza laboral y gestionar centralmente su acceso a todas sus cuentas y aplicaciones de AWS.
Puedes usar permisos de múltiples cuentas para asignar a tus usuarios de la fuerza laboral acceso a cuentas de AWS.

¿Por qué SSO?

SSO reduce el número de superficies de ataque porque los usuarios solo inician sesión una vez al día y solo usan un conjunto de credenciales.
Reducir el inicio de sesión a un conjunto de credenciales mejora la seguridad de la empresa. Cuando los empleados tienen que usar contraseñas separadas para cada aplicación, generalmente no lo hacen.

Requisitos Previos

  1. IAM Identity Center preconfigurado → Empezando – AWS IAM Identity Center.
  2. Clúster de Redshift preconfigurado con acceso administrativo.
  3. Usuario y contraseña de la fuente de identidad (Okta, PingOne, etc.).
  4. JetBrains DataGrip instalado (puede ser la versión gratuita).

Paso a Paso:

Configurar la aplicación del Identity Center

Nuestro primer paso será crear una nueva aplicación de AWS Identity Center en la cuenta del Identity Center para ser utilizada como el canal principal entre los usuarios y el clúster de Redshift.

  1. En el panel lateral de IAM Identity Center, haz clic en “Aplicaciones”.
    Screenshot 2566 07 02 at 15.25.46 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 2
  2. En la esquina superior derecha, haz clic en “Agregar aplicación”.
    Screenshot 2566 07 02 at 15.27.18 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 3
  3. Marca “agregar aplicación SAML 2.0 personalizada” y haz clic en “Siguiente”.
    Screenshot 2566 07 02 at 15.28.44 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 4
  4. Establece un nombre de visualización apropiado, llamaremos a nuestra aplicación “Redshift-ReadOnly”, ya que esta aplicación se utilizará para obtener acceso de solo lectura a los datos del clúster.
    Screenshot 2566 07 02 at 15.32.25 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 5
  5. Descargar el archivo de metadatos SAML del Identity Center, lo utilizaremos más tarde para configurar nuestra aplicación de cuenta de Redshift.
    Screenshot 2566 07 02 at 15.33.39 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 6
  6. Copia la URL de inicio de sesión de la aplicación ya que la necesitaremos más tarde.
  7. A continuación, configuraremos la ACS de la aplicación SAML (también conocido como Servicio de Consumidor de Aserciones).
    Brevemente, ACS es la ubicación donde se enviará la respuesta de la aplicación SAML.

    Como utilizaremos el controlador JDBC de AWS Redshift para conectarnos a nuestro clúster de Redshift, necesitaremos configurar la ACS de la aplicación a http://localhost:7890/redshift/ – ya que el controlador JDBC inicia un servidor que escucha en el puerto 7890 por defecto.
    Screenshot 2566 07 02 at 15.56.40 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 7ab00f622 901e 48a6 af15 55b11fe407f4#media blob url=true&id=a1039895 cc77 4376 8887 687b0a94ffae&collection=contentId Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 8
  8. Para restringir la aserción de la aplicación SAML solo a redshift, configuraremos el campo “Audiencia de la aplicación SAML” a urn:amazon:webservices:redshift.
    Screenshot 2566 07 02 at 15.58.17 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 9

Crear Proveedor de Identidad

Después de crear nuestra aplicación Redshift-ReadOnly en la cuenta del Identity Center, necesitamos configurar un proveedor de identidad para ser utilizado por la aplicación Redshift-ReadOnly para conectarse al clúster de Redshift de la cuenta de Redshift.

  1. En el panel lateral del Dashboard de IAM de tu cuenta de Redshift, haz clic en Proveedores de Identidad.
    Screenshot 2566 07 02 at 16.19.31 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 10
  2. En la esquina superior derecha, haz clic en “Agregar proveedor”.
    Screenshot 2566 07 02 at 16.21.05 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 11
  3. Rellena los detalles para el nuevo IDP:
    1. Establece el “Nombre del proveedor” a Redshift-ReadOnly (igual que nuestra aplicación configurada previamente).
    2. Sube el archivo de metadatos que descargamos durante el proceso de configuración de nuestra aplicación de IAM Identity Center.f2db2cb3 28d0 4578 ac63 f813a350a2d9#media blob url=true&id=af2a9aac ed5d 4c7c 8aea e91254cfdeaf&collection=contentId Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 12 Haz clic en “Agregar proveedor” y finaliza.
      Screenshot 2566 07 02 at 16.22.59 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 13
  4. Ve a la página de descripción del IDP y copia el ARN del IDP, lo utilizaremos más tarde.
    Screenshot 2566 07 02 at 17.04.43 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 140a06764a c351 43f3 810a 15da912d7c05#media blob url=true&id=39497b0d 7a31 4add 8c83 107db8043f05&collection=contentId Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 15

Crear Rol y Política de IAM

Ahora que hemos creado el Proveedor de Identidad para ser utilizado por nuestra aplicación de IAM Identity Center, podemos crear el rol que se utilizará para conectarse al clúster de Redshift.

  1. En el panel lateral del Dashboard de IAM de tu cuenta de Redshift, haz clic en Roles.
    Screenshot 2566 07 02 at 16.14.15 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 16
  2. En la esquina superior derecha, haz clic en “Crear Rol”.
    Screenshot 2566 07 02 at 16.15.37 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 17
  3. Crea una entidad de confianza de tipo federación SAML 2.0 y establece lo siguiente:
    1. Establece el IDP al IDP “Redshift-ReadOnly” que creamos anteriormente.
    2. Marca el botón de radio “Permitir solo acceso programático” y establece:
      Atributo: “SAML:aud” → estableciendo qué audiencia puede asumir este rol.
      Valor: “http://localhost:7890/redshift/ → Estableciendo la audiencia a nuestro servidor local del controlador JDBC de Redshift (como se explicó en la primera sección).
      Screenshot 2566 07 02 at 16.44.02 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 18
      Haz clic en “Siguiente”.
  4. Haz clic en “Crear política” y se abrirá una nueva pestaña.5f413ee0 9082 48fe bbf9 1266e384f039#media blob url=true&id=f54050e8 48e9 4c67 8e16 34cb159b53b5&collection=contentId Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 19
  5. Selecciona “JSON”.38e95090 ae9b 4366 9c1e 4c24cab89231#media blob url=true&id=75587102 9ee1 4ce6 abd5 c83d2c872050&collection=contentId Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 20
  6. En el panel del editor de Políticas, pega la siguiente declaración de política y edita los siguientes valores en el ámbito “Resource” para que coincidan con los tuyos: <region>, <account>, <clusterName>.
    				
    					{
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "redshift:CreateClusterUser",
                    "redshift:JoinGroup",
                    "redshift:GetClusterCredentials",
                    "redshift:ListSchemas",
                    "redshift:ListTables",
                    "redshift:ListDatabases",
                    "redshift:ExecuteQuery",
                    "redshift:FetchResults",
                    "redshift:CancelQuery",
                    "redshift:DescribeClusters",
                    "redshift:DescribeQuery",
                    "redshift:DescribeTable"
                ],
                "Resource": [
                    "arn:aws:redshift:<region>:<account>:cluster:<clusterName>",
                    "arn:aws:redshift:<region>:<account>:dbuser:<clusterName>/${redshift:DbUser}",
                    "arn:aws:redshift:<region>:<account>:dbname:<clusterName>/${redshift:DbName}",
                    "arn:aws:redshift:<region>:<account>:dbgroup:<clusterName>/bi_users_group",
                ]
            }
        ]
    }
    				
    			

  7. Nombra la política “Redshift-ReadOnly-policy” y haz clic en “Create policy”.638f1d27 23e5 4a2f 8351 3f13ebf6a7f1#media blob url=true&id=e6d9b9f7 ff16 4b5a 851e 162a99c4d39d&collection=contentId Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 21
    Screenshot 2566 07 02 at 16.55.08 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 22
  8. Vuelve a la pestaña de origen donde comenzamos a crear nuestro rol IAM
    → haz clic en actualizar → escribe “Redshift-ReadOnly-policy” en la barra de búsqueda → marca la política “Redshift-ReadOnly-policy” → haz clic en “Next”.
    Screenshot 2566 07 02 at 16.56.59 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 23
  9. Nombra el rol “Redshift-ReadOnly-role” y haz clic en “Create role” en la esquina inferior derecha.
    Screenshot 2566 07 02 at 16.59.54 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 24f0080f98 f453 40bb 83c7 24e81210a9f2#media blob url=true&id=7ece7e5c f65e 4144 9c4a e4856fa6e8db&collection=contentId Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 25
  10. Ahora que hemos creado el rol IAM, ve a su página de descripción y copia el ARN del rol, lo usaremos más adelante.
    Screenshot 2566 07 02 at 17.08.58 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 26

Configura los Atributos de la Aplicación del Centro de Identidad IAM

Para configurar nuestra aplicación para trabajar con Redshift, necesitamos configurar algunos atributos de la aplicación que le guiarán “cómo conectarse” a ella.

  1. En el Centro de Identidad IAM, ve al panel de Aplicaciones y elige la aplicación que creamos anteriormente.
    Screenshot 2566 07 02 at 17.21.15 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 27
  2. Asigna usuarios y grupos a los que te gustaría dar permisos para esta aplicación → Asigna acceso de usuario a aplicaciones en la consola del Centro de Identidad IAM – AWS IAM Identity Center (sucesor de AWS Single Sign-On).
    Screenshot 2566 07 02 at 17.25.48 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 28
  3. Haz clic en “attribute mappings”.
    Screenshot 2566 07 02 at 17.27.54 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 29
  4. Configura los atributos según la siguiente tabla y reemplaza el <role_arn> & <idp_arn> marcador de posición con los ARNs que copiaste en los pasos anteriores:
AtributoValorExplicación
Sujeto (atributo predeterminado)${user:email}El sujeto utilizado.
https://aws.amazon.com/SAML/Attributes/RoleSessionName${user:email}El nombre de la sesión creada contra el clúster.
https://redshift.amazon.com/SAML/Attributes/AutoCreatetrueConfigura la aplicación para crear el usuario de Redshift automáticamente al autenticarse.
https://aws.amazon.com/SAML/Attributes/Role,El rol IAM y el IDP que se utilizarán para conectarse a Redshift.
https://redshift.amazon.com/SAML/Attributes/DbUser${user:email}El nombre del usuario de la base de datos a crear.
https://redshift.amazon.com/SAML/Attributes/DbGroupsreadonlyEl grupo de la base de datos al que se asignará el nuevo usuario creado.
Screenshot 2566 07 02 at 17.38.32 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 30

Haz clic en “Save changes”.

Crear grupo de Redshift & Otorgar permisos

En esta etapa, configuraremos el readonly grupo de Redshift (como se define en los atributos de la aplicación en la etapa anterior) al que se asignará cada usuario al conectarse a través de la aplicación.

  1. Conéctate a tu clúster de Redshift con un usuario privilegiado (superusuario).
  2. Ejecuta el siguiente script SQL para crear el readonly grupo y asignarle read permisos al esquema público (el esquema predeterminado).
    				
    					create group readonly;
    grant usage on schema public to group readonly;
    grant select on all tables in schema public to group readonly;
    				
    			

Configura la Fuente de Datos del cliente DataGrip

:tada: ¡Estamos listos y finalmente a punto de cosechar nuestros frutos! :tada:
En este paso, configuraremos una fuente de datos de DataGrip que se utilizará como la conexión entre nosotros y el clúster de Redshift.

  1. Abre DataGrip y crea una nueva fuente de datos de Redshift.
    Screenshot 2566 07 02 at 17.52.46 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 31
  2. Se abrirá un asistente de fuente de datos para que configures la conexión, establece los siguientes atributos:
    1. Nombre: Redshift ReadOnly SSO.
    2. Host: tu endpoint del servidor de Redshift.
    3. Usuario: tu identificador de correo electrónico (se utilizará como el Usuario de la BD de Redshift).
    4. Contraseña: la contraseña que has configurado en tu Fuente de Identidad (Okta, PingOne, etc.)
    5. Base de datos: la base de datos a la que deseas conectarte.
    6. URL: la URL estará mayormente configurada en este punto (debido al autocompletado de DataGrip), todo lo que queda por hacer es cambiar el prefijo de la URL JDBC de jdbc:redshift:// a jdbc:redshift:iam://.
      Screenshot 2566 07 02 at 17.57.29 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 32
  3. Ve a la pestaña Advanced y configura estos 3 atributos:
    1. plugin_name: com.amazon.redshift.plugin.BrowserSamlCredentialsProvider – ya definido, así que edítalo.
    2. idp_reponse_timeout: 60 – crea un nuevo valor.
    3. login_url: <tu URL de inicio de sesión de la aplicación SAML copiada previamente> – crea un nuevo valor.
      Screenshot 2566 07 02 at 18.10.07 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 33
  4. En la parte inferior del asistente de configuración de la fuente de datos, haz clic en “test connection”.
    Screenshot 2566 07 02 at 18.11.44 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 34938ff2bb 46c7 4cd9 9020 aa00b134d7b5#media blob url=true&id=ec78f4d0 c3c0 4743 8a1d e5568685c9e7&collection=contentId Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 35
    Una vez hecho clic, tu navegador se abrirá y mostrará la siguiente pantalla:
    Screenshot 2566 07 02 at 18.14.29 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 36
    Si todo está configurado correctamente, deberías ver el siguiente mensaje emergente en DataGrip:
    Screenshot 2566 07 02 at 18.14.34 Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 378b152b94 3cbd 465a a56f 6cfc8cec2c19#media blob url=true&id=ac42272d 34e4 46b6 9ec4 57583deb1983&collection=contentId Habilitar la autenticación SSO de Redshift con AWS IAM Identity Center (Multi-Account) 38
    Haz clic en OK.

    ¡Eso es todo! Gracias por leer 🙂