Habilitación del acceso federado a la API de Athena - Amazon Athena

Habilitación del acceso federado a la API de Athena

En esta sección se trata el acceso federado que permite a un usuario o aplicación cliente en la organización llamar a operaciones de la API de Amazon Athena. En este caso, los usuarios de la organización no tienen acceso directo a Athena. En su lugar, administra credenciales de usuario fuera de AWS en Microsoft Active Directory. Active Directory es compatible con SAML 2.0 (Lenguaje de marcado para confirmaciones de seguridad 2.0).

Para autenticar a los usuarios en este escenario, utilice el controlador JDBC u ODBC con compatibilidad con SAML.2.0 para obtener acceso a Active Directory Federation Services (AD FS) 3.0 y permitir que una aplicación cliente llame las operaciones de la API de Athena.

Para obtener más información sobre la compatibilidad con SAML 2.0 en AWS, consulte Acerca de la federación SAML 2.0 en la Guía del usuario de IAM.

nota

El acceso federado a la API de Athena es compatible con un determinado tipo de proveedor de identidades (IdP), el Active Directory Federation Service (ADFS 3.0), que forma parte de Windows Server. El acceso de federación no es compatible con la característica de propagación de identidades fiables del IAM Identity Center. El acceso se establece a través de las versiones de los controladores JDBC u ODBC que admiten SAML 2.0. Para obtener más información, consulte Conexión a Amazon Athena con JDBC y Conexión a Amazon Athena con ODBC.

Antes de empezar

Antes de comenzar, complete los siguientes requisitos previos:

  • Dentro de su organización, instale y configure ADFS 3.0 como proveedor de identidad.

  • Instale y configure las últimas versiones disponibles de los controladores JDBC u ODBC en los clientes que se utilizan para obtener acceso a Athena. El controlador debe incluir compatibilidad con el acceso federado compatible con SAML 2.0. Para obtener más información, consulte Conexión a Amazon Athena con JDBC y Conexión a Amazon Athena con ODBC.

Descripción del proceso de autenticación

El siguiente diagrama ilustra el proceso de autenticación para el acceso federado a la API de Athena.

Diagrama del acceso federado a la API de Athena.
  1. Un usuario de su organización utiliza una aplicación cliente con el controlador JDBC u ODBC para solicitar autenticación del proveedor de identidad de su organización. El proveedor de identidad es ADFS 3.0.

  2. El proveedor de identidad autentica al usuario en función de Active Directory, que es el almacén de identidades de la organización.

  3. El proveedor de identidad construye una aserción de SAML con información sobre el usuario y envía dicha aserción a la aplicación cliente a través del controlador JDBC u ODBC.

  4. El controlador JDBC u ODBC llama a la operación API AWS Security Token Service AssumeRoleWithSAML, transfiriéndole los siguientes parámetros:

    • El ARN del proveedor SAML.

    • El ARN del rol que suponer

    • La aserción SAML del proveedor de identidades

    Para obtener más información, consulte AssumeRoleWithSAML en la Referencia de la API de AWS Security Token Service.

  5. La respuesta de la API a la aplicación cliente a través del controlador JDBC u ODBC incluye credenciales de seguridad temporales.

  6. La aplicación cliente utiliza credenciales de seguridad temporales para llamar a las operaciones de la API de Athena, lo que permite a los usuarios obtener acceso a las operaciones de la API de Athena.

Procedimiento: habilitación del acceso federado a la API de Athena basado en SAML

El procedimiento establece una relación de confianza entre el proveedor de identidad de la organización y su cuenta de AWS para habilitar el acceso federado basado en SAML a la operación API de Amazon Athena.

Para habilitar el acceso federado a la API de Athena:
  1. En su organización, registre AWS como proveedor de servicios (SP) en su proveedor de identidad. Este proceso se conoce como relación de confianza. Para obtener más información, consulte Configuración de una relación de confianza para usuario autenticado en el proveedor de identidades SAML 2.0 en la Guía del usuario de IAM. Como parte de esta tarea, siga estos pasos:

    1. Obtenga el documento de metadatos de SAML de muestra de esta URL: https://signin.aws.amazon.com/static/saml-metadata.xml.

    2. En el proveedor de identidad de la organización (ADFS), puede generar un archivo XML de metadatos equivalente que describa su proveedor de identidad como proveedor de identidad de AWS. El archivo de metadatos debe incluir el nombre de emisor, una fecha de creación, una fecha de vencimiento y claves que AWS utiliza para validar las respuestas de autenticación (aserciones) de la organización.

  2. En la consola de IAM, cree una entidad de proveedor de identidad SAML. Para obtener más información, consulte Creación de proveedores de identidad SAML en la Guía del usuario de IAM. Como parte de este paso, haga lo siguiente:

    1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

    2. Cargue el documento de metadatos de SAML producido por el proveedor de identidad (ADFS) en el paso 1 de este procedimiento.

  3. En la consola de IAM, cree uno o varios roles de IAM para su proveedor de identidad. Para obtener más información, consulte Creación de un rol para un proveedor de identidad de terceros (federación) en la Guía del usuario de IAM. Como parte de este paso, haga lo siguiente:

    • En la política de permisos del rol, enumere las acciones que pueden realizar los usuarios de la organización en AWS.

    • En la política de confianza del rol, establezca la entidad de proveedor de SAML que creó en el Paso 2 de este procedimiento como principal.

    Esto establece una relación de confianza entre la organización y AWS.

  4. En el proveedor de identidad de la organización (ADFS), defina aserciones que asignen usuarios o grupos de la organización a los roles de IAM. El mapeo de usuarios y grupos a los roles de IAM también se conoce como regla de reclamación. Tenga en cuenta que los distintos usuarios y grupos de la organización pueden asignarse a diferentes roles de IAM.

    Para obtener información sobre cómo configurar la asignación en ADFS, consulte la publicación de blog: Enabling Federation to AWS Using Windows Active Directory, ADFS, and SAML 2.0 (Habilitación de la federación por medio de Windows Active Directory, ADFS y SAML 2.0).

  5. Instale y configure el controlador JDBC u ODBC con compatibilidad con SAML 2.0. Para obtener más información, consulte Conexión a Amazon Athena con JDBC y Conexión a Amazon Athena con ODBC.

  6. Especifique la cadena de conexión de la aplicación al controlador JDBC u ODBC. Para obtener más información acerca de la cadena de conexión que su aplicación debe utilizar, consulte el tema “Uso del proveedor de credenciales de los servicios de federación de Active Directory (ADFS)” en la Guía de instalación y configuración del controlador JDBC, o un tema similar en la Guía de instalación y configuración del controlador ODBC disponible como descarga en formato PDF en los temas Conexión a Amazon Athena con JDBC y Conexión a Amazon Athena con ODBC.

    A continuación se ofrece el resumen general de configuración de la cadena de conexión para los controladores:

    1. En la AwsCredentialsProviderClass configuration, establezca com.simba.athena.iamsupport.plugin.AdfsCredentialsProvider para indicar que desea utilizar la autenticación basada en SAML 2.0 a través del proveedor de identidad ADFS.

    2. Para idp_host, proporcione el nombre de host del servidor de proveedor de identidad de ADFS.

    3. Para idp_port, proporcione el número de puerto en el que escucha el proveedor de identidad ADFS para la solicitud de aserción de SAML.

    4. Para UID y PWD, proporcione las credenciales de usuario de dominio de AD. Cuando se utiliza el controlador en Windows, si no se proporcionan UID y PWD, el controlador intenta obtener las credenciales de usuario del usuario que ha iniciado sesión en el equipo Windows.

    5. Opcionalmente, configure ssl_insecure en true. En este caso, el controlador no comprueba la autenticidad del certificado SSL para el servidor de proveedor de identidad ADFS. Es necesario definirlo en true si no se ha configurado que el controlador confíe en el certificado SSL del proveedor de identidad ADFS.

    6. Para habilitar el mapeo de un grupo o usuario de dominio de Active Directory en uno o varios roles de IAM (tal como se indicó en el paso 4 de este procedimiento), en el preferred_role de la conexión JDBC u ODBC, especifique el rol de IAM (ARN) que suponer para la conexión del controlador. Especificar preferred_role es opcional y es útil si el rol no es el primero indicado en la regla de reclamación.

    Como resultado de este procedimiento, se producen las siguientes acciones:

    1. El controlador ODBC o JDBC de llama a la API AssumeRoleWithSAML de AWS STS, y le pasa las aserciones, como se muestra en el paso 4 del Diagrama de la arquitectura.

    2. AWS se asegurará de que la solicitud para suponer que rol procede del proveedor de identidad al que se hace referencia en la entidad del proveedor SAML.

    3. Si la solicitud se realiza correctamente, la operación de la API AssumeRoleWithSAML de AWS STS devuelve un conjunto de credenciales de seguridad temporales, que su aplicación cliente utiliza para realizar solicitudes firmadas a Athena.

      La aplicación ahora tiene información sobre el usuario actual y puede acceder a Athena mediante programación.