Muchas organizaciones necesitan gestionar la carga de archivos en diferentes sistemas de almacenamiento en la nube manteniendo al mismo tiempo la seguridad y el cumplimiento. Aunque Google Drive proporciona API para la integración, las organizaciones a menudo no cuentan con los expertos técnicos para interactuar directamente con estas API. Las organizaciones necesitan una forma intuitiva de manejar la carga de archivos utilizando lenguaje natural, sin requerir conocimientos especializados de los sistemas subyacentes o API.
Amazon Quick Suite es una plataforma de IA empresarial que proporciona capacidades generativas impulsadas por IA para la productividad en el lugar de trabajo y la inteligencia empresarial. Reúne capacidades de investigación, inteligencia empresarial y automatización impulsadas por IA en un único espacio de trabajo y puede abordar una amplia gama de tareas, desde responder preguntas y generar contenido, hasta analizar datos y proporcionar conocimientos estratégicos. Para ampliar sus capacidades más allá de la búsqueda de datos básicos, Amazon Quick Suite ofrece conectores de acción, componentes potentes que permiten la interacción con sistemas empresariales externos. Con estos conectores de acciones, los usuarios pueden realizar acciones y acceder a información desde diversas herramientas comerciales mientras permanecen dentro de la interfaz de Amazon Quick Suite.
Amazon Quick Suite admite conectores de servicios externos, conectores de servicios de AWS y conectores personalizados. Los conectores de servicios externos brindan integraciones listas para usar con aplicaciones empresariales comunes, lo que ayuda a las organizaciones a implementar rápidamente funcionalidades estándar. Sin embargo, para necesidades especializadas, como la integración con Google Drive o la creación de flujos de trabajo personalizados, como cargar un archivo en una unidad, Amazon Quick Suite ofrece conectores personalizados que ayudan a las organizaciones a ejecutar tareas complejas a través de comandos conversacionales simples y crear un espacio de trabajo unificado conectando varias herramientas a través de especificaciones OpenAPI, aliviando la necesidad de cambiar constantemente entre diferentes interfaces.
Este enfoque reduce significativamente la barrera técnica de entrada para las organizaciones y, al mismo tiempo, garantiza que mantengan el control sobre la seguridad y los permisos de acceso. Al utilizar conectores personalizados de Amazon Quick Suite, las organizaciones pueden transformar las operaciones de administración de archivos en interacciones simples basadas en conversaciones que los usuarios autorizados pueden realizar.
En esta publicación, demostramos cómo crear una solución de carga de archivos segura mediante la integración de Google Drive con conectores personalizados de Amazon Quick Suite utilizando Amazon API Gateway y AWS Lambda.
Descripción general de la solución
Esta solución aborda los desafíos comunes que enfrentan las organizaciones al administrar operaciones de archivos en sistemas de almacenamiento en la nube, como mantener el cumplimiento de la seguridad, administrar los permisos de los usuarios y reducir las barreras técnicas para los usuarios. Con las capacidades de comprensión del lenguaje natural y los conectores personalizados disponibles en Amazon Quick Suite, las organizaciones pueden transformar las operaciones de Google Drive en interacciones simples basadas en conversaciones y al mismo tiempo admitir cargas seguras de archivos a las carpetas a las que el usuario tiene acceso. La solución demuestra el poder de combinar las capacidades de inteligencia artificial de Amazon Quick Suite con sistemas de almacenamiento empresarial para crear una experiencia de administración de archivos más eficiente y fácil de usar. Aunque esta publicación cubre el caso de uso de cargar un archivo en Google Drive, puede utilizar un enfoque similar para cargar archivos en otros sistemas de almacenamiento empresarial como Amazon Simple Storage Service (Amazon S3), Box, Dropbox, SharePoint y más.
El siguiente ejemplo demuestra cómo los fabricantes pueden utilizar Amazon Quick Suite para cargar archivos de texto en una unidad compartida en Google Drive.
El siguiente diagrama ilustra la arquitectura de la solución que utiliza los servicios e integraciones de AWS para brindar una experiencia de usuario perfecta. Ilustra los componentes clave y el flujo de la solución.
La arquitectura consta de los siguientes componentes clave:
La interfaz de usuario del chatbot se crea utilizando el agente de chat de Amazon Quick Suite. La autenticación del usuario la maneja AWS IAM Identity Center y la autorización la maneja Amazon Quick Suite y Amazon Cognito. Las acciones relevantes se identifican en función de consultas en lenguaje natural de los usuarios que utilizan conectores de acciones de Amazon Quick Suite. Amazon Quick Suite utiliza las especificaciones OpenAPI de terceros configuradas para determinar dinámicamente qué operaciones de API realizar para cumplir con una solicitud del usuario final. Además, las llamadas a la API se autorizan mediante un autorizador de Amazon Cognito, que utiliza la identidad federada de Google para la autorización. Las API se implementan mediante API Gateway y funciones Lambda. La función Lambda tiene la lógica de verificar si el usuario autorizado tiene los permisos necesarios para cargar un archivo en la carpeta mencionada en la consulta y llama al servicio de Google utilizando las credenciales de la cuenta de servicio almacenadas en AWS Secrets Manager para cargar el archivo en Google Drive.
En las siguientes secciones, exploramos el enfoque técnico para crear conectores personalizados de Amazon Quick Suite para cargar archivos en Google Drive. Para obtener orientación paso a paso, consulte el repositorio de GitHub.
Requisitos previos
Verifique que tenga los siguientes requisitos previos:
Configurar el entorno de Google
En esta sección, configura y configura Google Workspace y Google Drive.
Configurar la cuenta de Google Workspace
Antes de poder integrar la funcionalidad de Google Drive en la solución Amazon Quick Suite, primero debe realizar las configuraciones necesarias dentro del entorno de Google Workspace. Complete los siguientes pasos:
Habilite las API de Google Drive y Admin SDK. Cree una cuenta de servicio y una clave privada JSON para acceder a la cuenta de servicio desde Amazon Quick Suite. Guarde esta clave para completar la configuración en los siguientes pasos. Agregue una delegación para todo el dominio. Esto implica asociar el ID de cliente de la cuenta de servicio con los siguientes alcances de OAuth para permitir que la cuenta de servicio acceda a los datos de la organización en Google Drive: https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive.metadata.readonly https://www.googleapis.com/auth/admin.directory.group.readonly https://www.googleapis.com/auth/admin.directory.user.readonly https://www.googleapis.com/auth/cloud-platform
Crear usuarios en Google Workspace
Para demostrar la funcionalidad de control de acceso, cree dos usuarios de prueba en la consola de administración de Google Workspace, llamados usuario de prueba1 y usuario de prueba2.
Configurar unidad compartida en Google Drive
Para configurar los permisos de acceso a la unidad compartida en Google Drive:
Cree una nueva unidad compartida en Google Drive y tome nota del ID de la carpeta para usarla más adelante cuando pruebe esta solución. Configure permisos de acceso: otorgue al usuario de prueba 1 la función de Administrador de contenido para permitir capacidades completas de administración de archivos. Deje al usuario de prueba 2 sin ningún permiso de acceso a la unidad compartida.
Esta configuración permite validar que la solución aplica correctamente los controles de acceso basados en los permisos de Google Drive.
Configurar el entorno de AWS
En esta sección, explicamos los pasos para configurar los ajustes y recursos de AWS.
Configurar usuarios y permisos en AWS
Cree los usuarios correspondientes en IAM Identity Center que coincidan con los usuarios de prueba creados en Google Workspace:
Cree un usuario para el usuario de prueba1. Cree un usuario para el usuario de prueba2.
Como alternativa, para implementaciones empresariales, administre los usuarios a través de su proveedor de identidad empresarial (IdP). Configure el sistema para la gestión de identidades entre dominios (SCIM) para el aprovisionamiento automatizado de usuarios y la gestión del ciclo de vida. Para obtener más información, consulte Cómo conectarse a un proveedor de identidad externo.
Complete el proceso de verificación de correo electrónico y restablecimiento de contraseña. Cree un grupo dentro de IAM Identity Center con los dos usuarios anteriores agregados.
Cree un secreto para las credenciales de la cuenta de servicio de Google
Para almacenar las credenciales de la cuenta de servicio de Google de forma segura:
Cree un nuevo secreto en Secrets Manager: almacene la clave privada JSON generada para la cuenta de servicio de Google. Utilice convenciones de nomenclatura secretas apropiadas para una identificación rápida. Configurar controles de acceso:
Este enfoque de gestión segura de credenciales ofrece las siguientes capacidades:
Protege las credenciales confidenciales de la cuenta de servicio de Google Habilita la función Lambda para autenticarse con las API de Google Drive Admite cargas seguras de archivos en nombre de usuarios autorizados Sigue las mejores prácticas de seguridad de AWS para administrar secretos de aplicaciones
Cree la cuenta de Amazon Quick Suite
Para crear y configurar la cuenta de Amazon Quick Suite:
Busque Amazon Quick Suite en la consola de administración de AWS y regístrese para obtener una nueva cuenta de Amazon Quick Suite. Proporcione el nombre de la cuenta y la dirección de correo electrónico a la que se deben enviar las notificaciones relacionadas con la cuenta. Seleccione el método de autenticación como IAM Identity Center. Este método de autenticación solo se puede configurar utilizando la edición Enterprise de Quick Suite. Agregue el grupo creado en IAM Identity Center con dos usuarios de prueba como grupo Admin Pro. Mantenga todas las demás configuraciones como están y cree la cuenta. Verificar el acceso del usuario. Confirme que ambos usuarios puedan iniciar sesión correctamente en la cuenta.
Configurar Amazon Cognito para autenticación y autorización
Para configurar Amazon Cognito, complete los siguientes pasos:
En la consola de Amazon Cognito, cree un grupo de usuarios de Amazon Cognito: configure un nuevo grupo de usuarios para administrar las identidades de los usuarios. Configure los ajustes básicos del grupo de usuarios. Configurar un cliente de aplicación: cree un cliente de aplicación en el grupo de usuarios. Establezca el tipo de aplicación en Aplicación de máquina a máquina. Cree un dominio de Amazon Cognito: configure el dominio con la versión de marca de la interfaz de usuario alojada (clásica). Tome nota del nombre de dominio de Amazon Cognito para los pasos siguientes. Configure las credenciales de Google OAuth: en Google Workspace, cree las credenciales de OAuth y proporcione el URI de redireccionamiento autorizado como /oauth2/idpresponse. Configure Google como un IdP federado: utilice el ID y el secreto del cliente de las credenciales de Google OAuth del paso anterior. Configure los ámbitos autorizados como openid de correo electrónico de perfil (los ámbitos autorizados están separados por espacios). Asigne los atributos del grupo de usuarios de Amazon Cognito para correo electrónico, nombre y nombre de usuario a los atributos correspondientes de Google. Configure los ajustes de la página de inicio de sesión: establezca las URL de devolución de llamada permitidas en https://.quicksight.aws.amazon.com/sn/oauthcallback. Elija Google como proveedor de identidad. Configure OAuth 2.0: establezca el tipo de concesión en Concesión de código de autorización. Configure los ámbitos de conexión de OpenID como Correo electrónico, OpenID y Perfil.
Asegúrese de que todos los URI y las URL de devolución de llamada tengan el formato correcto y coincidan con la configuración de su aplicación.
Configurar la función Lambda
En esta sección, recorremos los pasos para configurar la función Lambda que contiene la lógica para validar los permisos del usuario, interactuar con la API de Google Drive y cargar los archivos en la carpeta designada.
Implemente la función Lambda: utilice el código proporcionado en el archivo lambda_function.py. Incluya todas las dependencias necesarias enumeradas en el archivo requisitos.txt. Configure las variables de entorno: COGNITO_USER_POOL_ID: el ID del grupo de usuarios de su configuración de Amazon Cognito. REGION_NAME: su región de AWS. SECRET_NAME: el nombre de recurso de Amazon (ARN) del secreto de las credenciales de la cuenta de servicio de Google almacenadas en Secrets Manager. Configure los permisos de función de IAM de ejecución de Lambda para que la función Lambda acceda a Secrets Manager y Amazon Cognito. Los pasos para definir la política de IAM se pueden encontrar en el repositorio de GitHub.
Configurar puerta de enlace API
Complete los siguientes pasos para configurar un recurso API:
Cree una API REST: utilice el esquema OpenAPI definido en el archivo api-gateway-spec.yaml, que se puede encontrar en el repositorio de GitHub. En el esquema, proporcione el ARN de su región y función Lambda. Cree una nueva etapa para la API y configure los ajustes de etapa adecuados para su entorno. Configure el autorizador de Amazon Cognito: enlace al grupo de usuarios de Amazon Cognito creado previamente. Establezca los alcances de autorización: openid, correo electrónico, perfil y aws.cognito.signin.user.admin. Permita que API Gateway invoque la función Lambda desde la política basada en recursos de la función: en la consola Lambda, modifique la política basada en recursos y otorgue permiso de invocación al ARN de origen de API Gateway para el método POST. Implemente la API: implemente en la etapa creada. Tome nota de la URL del punto final de API para usarla en la configuración de Amazon Quick Suite.
Cree el conector de acción personalizado de Amazon Quick Suite
En este paso, creamos el conector de acción personalizado dentro de Amazon Quick Suite:
Ubique el archivo openapischema.json en el repositorio de GitHub y reemplace los siguientes valores de marcador de posición: Inicie sesión en la cuenta de Quick Suite creada anteriormente como usuario de prueba1. Navegue a la sección de integraciones en su cuenta de Amazon Quick Suite y cree una nueva acción utilizando el tipo de conector personalizado de especificación OpenAPI. Cargue el archivo de esquema OpenAPI modificado denominado openapischema.json. Cree la integración con el método de autenticación como Autenticación de usuario y complete los demás campos: URL base: utilice su punto final de API Gateway. Asegúrate de incluir también el nombre artístico al final. ID de cliente: utilice el ID de cliente de su aplicación Cognito. Secreto del cliente: utilice el secreto del cliente de la aplicación Cognito. URL del token: /oauth2/token URL de autorización: /oauth2/authorize URL de redireccionamiento: https://.quicksight.aws.amazon.com/sn/oauthcallback Compartir la integración: comparta la integración creada con el grupo en IAM Identity Center que tiene dos usuarios de prueba agregados.
Los usuarios ahora pueden cargar archivos a Google Drive mediante interacciones de lenguaje natural.
Cree el agente de chat de Amazon Quick Suite para cargar archivos en Google Drive:
Hay dos formas de interactuar con el agente de chat.
Quick Suite tiene un agente de chat predeterminado llamado Mi Asistente que se puede usar para agregar la acción que se configura como parte de los pasos anteriores. Crear un agente de chat personalizado Elija Agentes de chat en el panel de navegación izquierdo. Cree un nuevo agente de chat proporcionando un nombre y una identidad de agente. En Acciones, vincule el conector de acciones creado en el paso anterior e inicie el agente. Una vez que el agente se haya iniciado exitosamente, compártalo con el usuario de prueba2 buscando la dirección de correo electrónico del usuario y otorgue permisos de visualización al agente de chat.
Prueba la solución
Ahora está listo para probar las capacidades de carga de archivos con los permisos adecuados.
Escenario 1: prueba como administrador de contenido o colaborador de la unidad compartida
Inicie sesión en la cuenta de Quick Suite como usuario de prueba1. Elija el agente de chat en el panel de navegación izquierdo. Seleccione el agente creado como parte del paso anterior. Ingrese el siguiente mensaje dentro de la ventana de chat: "Cargue un archivo con el nombre de archivo 'testfile1.txt' y el contenido del archivo como 'Este es un archivo de texto de muestra que estoy cargando en la unidad compartida' y la identificación de la carpeta como".
Cuando se le solicite autorización, inicie sesión en la cuenta de Google.
Una vez que haya obtenido la autorización exitosa, verifique los campos que ingresó y modifíquelos si es necesario.
Una vez que se complete la acción, verá un mensaje de éxito con el enlace al archivo subido a Google Drive.
Copie y pegue el enlace en una nueva pestaña del navegador para ver el archivo cargado.
Escenario 2: prueba sin permisos para la unidad compartida
Acceda al agente de chat utilizando la cuenta de Amazon Quick Suite como usuario de prueba2, luego intente ejecutar el mismo mensaje para cargar el archivo en la unidad compartida. Debido a que el usuario de prueba2 no tiene acceso a la unidad compartida, recibirá un mensaje de error similar al que se muestra en la siguiente captura de pantalla.
Limpiar
Si ya no necesita los recursos implementados como parte de esta solución y desea evitar incurrir en costos continuos asociados con esos recursos, complete los siguientes pasos para limpiar y eliminar los componentes relevantes:
Elimine los recursos relacionados con Amazon Quick Suite, incluida su cuenta de Amazon Quick Suite. Elimine los secretos creados para esta aplicación de Secrets Manager. Elimine la función Lambda. Elimine la API implementada en API Gateway. Eliminar el grupo de usuarios en Amazon Cognito y otras configuraciones realizadas.
Conclusión
Esta publicación demostró cómo las organizaciones pueden utilizar los conectores de acción de Amazon Quick Suite para crear una solución de carga de archivos segura e intuitiva que se integra con Google Drive. Al utilizar servicios de AWS como API Gateway, AWS Lambda, Amazon Cognito y Secrets Manager, junto con las capacidades de lenguaje natural de Amazon Quick Suite, las empresas pueden transformar las tareas de administración de archivos en interacciones simples basadas en conversaciones. Con esta solución de carga segura de archivos que utiliza Amazon Quick Suite, los usuarios pueden administrar su contenido de Google Drive a través de interacciones de lenguaje natural.
Los beneficios clave de este enfoque incluyen:
Experiencia de usuario mejorada: los usuarios pueden cargar archivos en Google Drive mediante indicaciones en lenguaje natural, sin necesidad de conocimientos técnicos especializados de las API y los sistemas subyacentes. Seguridad y cumplimiento mejorados: la solución aplica controles de acceso al permitir que solo los usuarios con los permisos necesarios carguen archivos en la unidad compartida con permisos de acceso a archivos administrados a través de Google Drive y un grupo de usuarios de Amazon Cognito. Complejidad operativa reducida: el enfoque de conectores de acción personalizados abstrae las complejidades técnicas de la integración con servicios de almacenamiento en la nube de terceros, para que las organizaciones puedan centrarse en ofrecer capacidades valiosas a sus usuarios.
Para obtener orientación paso a paso, consulte el repositorio de GitHub. Pruebe la solución usted mismo y comparta sus comentarios y preguntas en los comentarios.
Sobre los autores
Naimisha Pinna es arquitecta de soluciones en AWS y es responsable de ayudar a los clientes empresariales en su viaje a la nube. Se graduó con una maestría en Ciencias de la Computación de la Universidad Old Dominion. Su área de especialización es en IA y ML. Le gusta pintar y hacer jardinería.
Josh Demuth es un arquitecto de soluciones GenAI con 20 años en la industria tecnológica, con varios años especializándose en integración de sistemas. Le encanta crear soluciones que hagan que sistemas dispares funcionen juntos y descubrir enfoques innovadores para los problemas empresariales. La rápida evolución de la IA y la automatización lo entusiasma con las soluciones transformadoras que se avecinan.