Federación de proveedores de identidades (IdP) nativos para Amazon Redshift - Amazon Redshift

Federación de proveedores de identidades (IdP) nativos para Amazon Redshift

La administración de identidades y permisos para Amazon Redshift se facilita con la federación de proveedores de identidades nativos porque aprovecha el proveedor de identidades existente para simplificar la autenticación y la administración de permisos. Para ello, posibilita compartir con Redshift metadatos de identidad del proveedor de identidades. Para la primera iteración de esta característica, el proveedor de identidades admitido es Microsoft Azure Active Directory (Azure AD).

Para configurar Amazon Redshift de modo que pueda autenticar identidades del proveedor de identidades de terceros, debe registrar el proveedor de identidades en Amazon Redshift. De este modo, Redshift puede autenticar usuarios y roles definidos por el proveedor de identidades. Por lo tanto, puede evitar tener que llevar a cabo una administración de identidades detallada tanto en su proveedor de identidades de terceros como en Amazon Redshift porque se comparte información de identidades.

Para obtener información sobre el uso de los roles de sesión que se transfieren desde grupos de proveedores de identidades (IdP), consulte PG_GET_SESSION_ROLES en la Guía para desarrolladores de bases de datos de Amazon Redshift.

Configuración del proveedor de identidades en Amazon Redshift

En esta sección se muestran los pasos para configurar el proveedor de identidades y Amazon Redshift para establecer la comunicación para la federación de proveedores de identidades nativos. Necesita una cuenta activa del proveedor de identidades. Antes de configurar Amazon Redshift, registre Redshift como aplicación en el proveedor de identidades, concediendo permiso como administrador.

Complete los siguientes pasos en Amazon Redshift:

  1. Ejecute una instrucción SQL para registrar el proveedor de identidades, incluidas las descripciones de los metadatos de la aplicación de Azure. Para crear el proveedor de identidades en Amazon Redshift, ejecute el siguiente comando después de sustituir los valores de los parámetros issuer, client_id, client_secret y audience. Estos parámetros son específicos de Microsoft Azure AD. Sustituya el nombre del proveedor de identidades por el nombre de su elección y sustituya el espacio de nombres por un nombre exclusivo para contener usuarios y roles del directorio del proveedor de identidades.

    CREATE IDENTITY PROVIDER oauth_standard TYPE azure NAMESPACE 'aad' PARAMETERS '{ "issuer":"https://sts.windows.net/2sdfdsf-d475-420d-b5ac-667adad7c702/", "client_id":"<client_id>", "client_secret":"BUAH~ewrqewrqwerUUY^%tHe1oNZShoiU7", "audience":["https://analysis.windows.net/powerbi/connector/AmazonRedshift"] }'

    El tipo azure indica que el proveedor facilita específicamente la comunicación con Microsoft Azure AD. En la actualidad, es el único proveedor de identidades de terceros admitido.

    • issuer: el ID de emisor en el que confiar cuando se recibe un token. El identificador único para tenant_id se adjunta al emisor.

    • client_id: el identificador público único de la aplicación registrado en el proveedor de identidades. Esto se puede denominar ID de aplicación.

    • client_secret: un identificador secreto o contraseña, que solo conocen el proveedor de identidades y la aplicación registrada.

    • audience: el ID de aplicación que se asigna a la aplicación en Azure.

    En lugar de utilizar un secreto de cliente compartido, puede establecer parámetros para especificar un certificado, una clave privada y una contraseña de clave privada al crear el proveedor de identidades.

    CREATE IDENTITY PROVIDER example_idp TYPE azure NAMESPACE 'example_aad' PARAMETERS '{"issuer":"https://sts.windows.net/2sdfdsf-d475-420d-b5ac-667adad7c702/", "client_id":"<client_id>", "audience":["https://analysis.windows.net/powerbi/connector/AmazonRedshift"], "client_x5t":"<certificate thumbprint>", "client_pk_base64":"<private key in base64 encoding>", "client_pk_password":"test_password"}';

    La contraseña de la clave privada, client_pk_password, es opcional.

  2. Opcional: ejecute comandos SQL en Amazon Redshift para crear previamente usuarios y roles. Esto facilita la concesión de permisos por adelantado. ‎El nombre del rol en Amazon Redshift es como el siguiente: <Espacio de nombres>:<GroupName en Azure AD>. Por ejemplo, cuando crea un grupo en Microsoft Azure AD llamado rsgroup y un espacio de nombres llamado aad, el nombre del rol es aad:rsgroup. Los nombres de usuario y rol en Amazon Redshift se definen a partir de estos nombres de usuario y pertenencias a grupos en el espacio de nombres del proveedor de identidades.

    La asignación de roles y usuarios incluye la verificación de su valor external_id, para garantizar que esté actualizado. El ID externo se asigna al identificador del grupo o usuario en el proveedor de identidades. Por ejemplo, el ID externo de un rol se asigna al ID de grupo de Azure AD correspondiente. Del mismo modo, el ID externo de cada usuario se asigna a su ID en el proveedor de identidades.

    create role "aad:rsgroup";
  3. Otorgue los permisos pertinentes a los roles según los requisitos. Por ejemplo:

    GRANT SELECT on all tables in schema public to role "aad:rsgroup";
  4. También puede conceder permisos a un usuario específico.

    GRANT SELECT on table foo to aad:alice@example.com

    Tenga en cuenta que la pertenencia al rol de un usuario externo federado solo está disponible en la sesión de ese usuario. Esto tiene implicaciones en la creación de objetos de base de datos. Cuando un usuario externo federado crea una vista o un procedimiento almacenado, por ejemplo, no puede delegar el permiso de esos objetos a otros usuarios y roles.

Una explicación de los espacios de nombres

Un espacio de nombres asigna un usuario o rol a un proveedor de identidades específico. Por ejemplo, el prefijo para los usuarios creados en AWS IAM es iam:. Este prefijo evita las colisiones de nombres de usuario y posibilita la compatibilidad con varios almacenes de identidades. Si un usuario alice@ejemplo.com del origen de identidad registrado con el espacio de nombres aad inicia sesión, el usuario aad:alice@example.com se crea en Redshift si no existe todavía. Tenga en cuenta que un espacio de nombres de rol y usuario tiene una función distinta a la de un espacio de nombres de clúster de Amazon Redshift, que es un identificador único asociado a un clúster.

Cómo funciona el inicio de sesión con la federación de proveedores de identidades (IdP) nativos

Para completar la configuración preliminar entre el proveedor de identidades y Amazon Redshift, realice un par de pasos: en primer lugar, registre Amazon Redshift como aplicación de terceros en su proveedor de identidades, solicitando los permisos de API necesarios. A continuación, cree usuarios y grupos en el proveedor de identidades. Por último, registre el proveedor de identidades en Amazon Redshift mediante instrucciones SQL, que establecen parámetros de autenticación exclusivos del proveedor de identidades. Como parte del registro del proveedor de identidades en Redshift, se asigna un espacio de nombres para asegurarse de que los usuarios y los roles se agrupan correctamente.

Con el proveedor de identidades registrado en Amazon Redshift, se configura la comunicación entre Redshift y el proveedor de identidades. A continuación, un cliente puede pasar tokens y autenticarse en Redshift como entidad de proveedor de identidades. Amazon Redshift utiliza la información de pertenencia a grupos de IdP para la asignación a roles de Redshift. Si el usuario no existe anteriormente en Redshift, se crea uno. Se crean roles que se asignan a grupos de proveedores de identidades, si no existen. El administrador de Amazon Redshift concede permiso sobre los roles y los usuarios pueden ejecutar consultas y realizar otras tareas de base de datos.

En los siguientes pasos se describe cómo funciona la federación de proveedores de identidades nativos cuando un usuario inicia sesión:

  1. Cuando un usuario inicia sesión utilizando la opción de IdP nativo, desde el cliente, el token del proveedor de identidades se envía desde el cliente al controlador.

  2. El usuario está autenticado. Si el usuario no existe todavía en Amazon Redshift, se crea uno nuevo. Redshift asigna los grupos de proveedores de identidades del usuario a roles de Redshift.

  3. Los permisos se asignan según los roles de Redshift del usuario. Los concede a los usuarios y roles un administrador.

  4. El usuario puede consultar a Redshift.

Uso de las herramientas de cliente de escritorio para conectarse a Amazon Redshift

Para obtener instrucciones sobre cómo utilizar la federación de proveedores de identidades nativos para conectarse a Amazon Redshift con Power BI, consulte la publicación del blog Integrate Amazon Redshift native IdP federation with Microsoft Azure Active Directory (AD) and Power BI (Integrar la federación de IdP nativos de Amazon Redshift con Microsoft Azure Active Directory [AD] y Power BI). Describe una implementación paso a paso de la configuración de IdP nativo de Amazon Redshift con Azure AD. Detalla los pasos para configurar la conexión de cliente para el escritorio de Power BI o para el servicio de Power BI. Los pasos incluyen el registro de aplicaciones, la configuración de permisos y la configuración de credenciales.

Para obtener información sobre cómo integrar la federación de IdP nativo de Amazon Redshift con Azure AD, mediante Power BI Desktop y JDBC Client-SQL Workbench/J, vea el siguiente vídeo:

Para obtener instrucciones sobre cómo utilizar la federación de proveedores de identidades nativos para conectarse a Amazon Redshift con un cliente SQL, específicamente DBeaver o SQL Workbench/J, consulte la publicación del blog Integrate Amazon Redshift native IdP federation with Microsoft Azure AD using a SQL client (Integrar la federación de IdP nativos de Amazon Redshift con Microsoft Azure AD mediante un cliente SQL).