Logotipo de Zephyrnet

Federe el inicio de sesión único basado en IAM al control de acceso basado en roles de Amazon Redshift con Okta | Servicios web de Amazon

Fecha:

Desplazamiento al rojo de Amazon acelera su tiempo para obtener información valiosa con un almacenamiento de datos en la nube a escala rápido, fácil y seguro. Decenas de miles de clientes confían en Amazon Redshift para analizar exabytes de datos y ejecutar consultas analíticas complejas.

Puede utilizar sus clientes SQL preferidos para analizar sus datos de forma Desplazamiento al rojo de Amazon almacén de datos. Conéctese sin problemas aprovechando un proveedor de identidad (IdP) o credenciales de inicio de sesión único (SSO) para conectarse al almacén de datos de Redshift para reutilizar las credenciales de usuario existentes y evitar configuraciones y configuraciones adicionales de usuarios. Usando control de acceso basado en roles (RBAC), puede simplificar la administración de privilegios de usuario, permisos de bases de datos y administración de permisos de seguridad en Amazon Redshift. También puede utilizar roles de base de datos de corrimiento al rojo para definir un conjunto de permisos elevados, como para un monitor del sistema o un administrador de base de datos.

Usar Gestión de identidades y accesos de AWS (IAM) con RBAC, las organizaciones pueden simplificar la administración de usuarios porque ya no es necesario crear usuarios y asignarlos a roles de base de datos manualmente. Puede definir las funciones de la base de datos asignadas como una etiqueta principal para los grupos de IdP o la función de IAM, de modo que las funciones de la base de datos de Redshift y los usuarios que son miembros de esos grupos de IdP reciban automáticamente las funciones de la base de datos.

A principios de 2023, nosotros lanzó soporte para la integración de Okta Amazon Redshift sin servidor utilizando roles de base de datos. En esta publicación, nos centramos en Okta como IdP y brindamos orientación paso a paso para integrar un clúster aprovisionado de Redshift con Okta usando Redshift Query Editor v2 y con clientes SQL como SQL Workbench/J. Puede utilizar este mecanismo con otros proveedores de IdP, como Azure Active Directory o Ping, con cualquier aplicación o herramienta que utilice el controlador JDBC, ODBC o Python de Amazon.

Recientemente también anunciamos Desplazamiento al rojo de Amazon integración con el Centro de identidad de AWS IAMapoyando propagación de identidad confiable, permitiéndole utilizar Proveedores de identidad (IdP) de terceros como Microsoft Entra ID (Azure AD), Okta, Ping y OneLogin. Esta integración simplifica el proceso de autenticación y autorización para los usuarios de Amazon Redshift mediante Editor de consultas V2 or Vista rápida de Amazon, lo que les facilita el acceso seguro a su almacén de datos. AWS IAM Identity Center ofrece aprovisionamiento automático de usuarios y grupos de Okta a sí mismo mediante la utilización del protocolo System for Cross-domain Identity Management (SCIM) 2.0. Esta integración permite una sincronización perfecta de la información entre dos servicios, lo que garantiza información precisa y actualizada en AWS IAM Identity Center. Referirse a Integre Okta con Amazon Redshift Query Editor V2 mediante AWS IAM Identity Center para un inicio de sesión único perfecto publicación de blog para obtener más información sobre cómo configurar el inicio de sesión único (SSO) en Amazon Redshift mediante la integración con IdC y Okta como proveedor de identidad.

Si está interesado en utilizar el inicio de sesión único basado en IAM con roles de base de datos de Amazon Redshift, puede continuar leyendo este blog.

Resumen de la solución

El siguiente diagrama ilustra el flujo de autenticación de Okta con un clúster aprovisionado por Redshift que utiliza roles de IAM federados y asignación automática de roles de base de datos.

Diagrama de arquitectura

El flujo de trabajo contiene los siguientes pasos:

  1. El usuario elige una aplicación de IdP en su navegador o el cliente SQL inicia una solicitud de autenticación de usuario al IdP (Okta).
  2. Tras una autenticación exitosa, Okta envía una solicitud al punto final de la federación de AWS con una aserción SAML que contiene las etiquetas principales.
  3. El punto de enlace de la federación de AWS valida la aserción SAML e invoca el Servicio de token de seguridad de AWS (AWS STS)API AssumeRoleWithSAML. La aserción SAML contiene la información del usuario y grupo del IdP que se almacena en el RedshiftDbUser y RedshiftDbRoles etiquetas principales, respectivamente. Las credenciales de IAM temporales se devuelven al cliente SQL o, si se utiliza Query Editor v2, el navegador del usuario se redirige a la consola de Query Editor v2 mediante las credenciales de IAM temporales.
  4. El cliente SQL o el Editor de consultas v2 utilizan las credenciales de IAM temporales para llamar a la API de Redshift. GetClusterCredentialsWithIAM. Esta API utiliza las etiquetas principales para determinar los roles de usuario y de base de datos a los que pertenece el usuario. Se crea un usuario de base de datos asociado si el usuario inicia sesión por primera vez y se le otorgan automáticamente los roles de base de datos correspondientes. Se devuelve una contraseña temporal al cliente SQL.
  5. Utilizando el usuario de la base de datos y la contraseña temporal, el cliente SQL o el Editor de consultas v2 se conecta a Amazon Redshift. Al iniciar sesión, el usuario recibe autorización según las funciones de la base de datos de Redshift que se asignaron en el Paso 4.

Requisitos previos

Necesita los siguientes requisitos previos para configurar esta solución:

Conéctese con un clúster aprovisionado de Redshift como usuario federado mediante Query Editor v2

Para conectarse utilizando Query Editor v2, complete los siguientes pasos:

  1. Siga todos los pasos descritos en las secciones. Configura tu aplicación Okta y Establecer la configuración de AWS en el siguiente post.
  2. Para la política de IAM de acceso a Amazon Redshift, reemplace la política con el siguiente JSON para utilizar el GetClusterCredentialsWithIAM API:
    {
    	"Version": "2012-10-17",
    	"Statement": [
    					{
    						"Sid": "VisualEditor0",
    						"Effect": "Allow",
    						"Action": "redshift:GetClusterCredentialsWithIAM",
    						"Resource": "arn:aws:redshift:us-west-2:123456789012:dbname:redshift-cluster-1/dev"
    					}
    				]
    }

Ahora está listo para conectarse a su clúster aprovisionado de Redshift mediante Query Editor v2 y el inicio de sesión federado.

  1. Utilice la URL de SSO de Okta e inicie sesión en su cuenta de Okta con sus credenciales de usuario. Para esta demostración, iniciamos sesión con el usuario Ethan.
  2. En Query Editor v2, elija su clúster aprovisionado de Redshift (haga clic con el botón derecho) y elija Crear conexión.
  3. Autenticación, seleccione Credenciales temporales con su identidad de IAM.
  4. Base de datos, ingrese el nombre de la base de datos a la que desea conectarse.
  5. Elige Crear conexión.
  6. Ejecute el siguiente comando para validar que haya iniciado sesión como usuario federado y también para obtener la lista de roles asociados con ese usuario para la sesión actual:
SELECT current_user,* FROM pg_get_session_roles() eff_ro(name name, roleid integer);

Debido a que Ethan es parte del grupo de ventas y se le han otorgado permisos para acceder a las tablas en el sales_schema, debería poder acceder a esas tablas sin ningún problema. Sin embargo, si intenta acceder a tablas en el finance_schema, recibiría un error de permiso denegado porque Ethan no es parte del grupo financiero en Okta.

Federación Okta-QEV2

Conéctese con un clúster aprovisionado de Redshift como usuario federado a través de un cliente de terceros

Para conectarse como usuario federado a través de un cliente de terceros, complete los siguientes pasos:

  1. Siga los pasos 1 y 2 que se describen en la sección anterior (Conéctese con un clúster aprovisionado de Redshift como usuario federado mediante el Editor de consultas v2).
  2. Ingrese al Controlador JDBC de desplazamiento al rojo v2.1.0.18 y superiores porque admite la autenticación con la federación de grupos de IAM. Para la URL, ingrese jdbc:redshift:iam://<cluster endpoint>:<port>:<databasename>?groupfederation=true. Por ejemplo, jdbc:redshift:iam://redshift-cluster-1.abdef0abc0ab.us-west-2.redshift.amazonaws.com:5439/dev?groupfederation=true

En la URL anterior, groupfederation es un parámetro obligatorio que le permite autenticarse con las credenciales de IAM para el clúster aprovisionado de Redshift. Sin el groupfederation parámetro, no utilizará roles de base de datos de Redshift.

  1. Usuario y Contraseña, ingresa tus credenciales de Okta.

Banco de trabajo SQL/J - Conexión

  1. Para configurar propiedades extendidas, siga los pasos 4 a 9 en la sección Configurar el cliente SQL (SQL Workbench/J) en el siguiente post.

El usuario Ethan podrá acceder a la sales_schema mesas. Si Ethan intenta acceder a las tablas en el finance_schema, obtendrá un error de permiso denegado.

Demostración de SQL Workbench/J

Solucionando Problemas

Si su conexión no funcionó, considere lo siguiente:

  • Habilite el inicio de sesión en el controlador. Para obtener instrucciones, consulte Configurar registro.
  • Asegúrese de usar la última Controlador JDBC de Amazon Redshift versión.
  • Si recibe errores al configurar la aplicación en Okta, asegúrese de tener acceso de administrador.
  • Si puede autenticarse a través del cliente SQL pero tiene un problema de permiso o no puede ver los objetos, otorgue el permiso correspondiente al rol.

Limpiar

Cuando haya terminado de probar la solución, limpie los recursos para evitar incurrir en cargos futuros:

  1. Elimine el clúster aprovisionado de Redshift.
  2. Elimine las funciones de IAM, los IdP de IAM y las políticas de IAM.

Conclusión

En esta publicación, proporcionamos instrucciones paso a paso para integrar un clúster aprovisionado de Redshift con Okta utilizando Redshift Query Editor v2 y SQL Workbench/J con la ayuda de roles de IAM federados y asignación automática de roles de base de datos. Puede utilizar una configuración similar con otros clientes SQL (como DBeaver o DataGrip). También mostramos cómo la membresía del grupo Okta se asigna automáticamente con roles de clúster aprovisionados por Redshift para usar la autenticación basada en roles sin problemas.

Si tiene algún comentario o pregunta, por favor déjelos en los comentarios.


Acerca de los autores

Debu-PandaDebu Panda es gerente sénior de administración de productos en AWS. Es un líder de la industria en análisis, plataforma de aplicaciones y tecnologías de bases de datos, y tiene más de 25 años de experiencia en el mundo de TI.

Ranjan birmano es un arquitecto de soluciones especialista en análisis en AWS. Se especializa en Amazon Redshift y ayuda a los clientes a crear soluciones analíticas escalables. Tiene más de 16 años de experiencia en diferentes tecnologías de bases de datos y almacenamiento de datos. Le apasiona automatizar y resolver los problemas de los clientes con soluciones en la nube.

Maneesh Sharma es ingeniero sénior de bases de datos en AWS con más de una década de experiencia en el diseño e implementación de soluciones de almacenamiento y análisis de datos a gran escala. Colabora con varios socios y clientes de Amazon Redshift para impulsar una mejor integración.

punto_img

Información más reciente

punto_img