es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Permisos de almacenamiento de AWS Amplify, cubo S3.

Estoy desarrollando una aplicación de atención al cliente con Amazon AWS Amplify en la que cada cliente tiene sus propias credenciales de inicio de sesión y, después de iniciar sesión, puede crear un nuevo ticket y también cargar algunos archivos adjuntos.

Tengo tres grupos de Cognito: Admins, Moderators, Customers.

Creé un nuevo almacenamiento con Amplify CLI y restringí el acceso por grupos de la siguiente manera:

Admins -> crear/actualizar, leer, eliminar

Moderators -> crear/actualizar, leer

Customers -> crear/actualizar, leer

Entonces, cuando en mi código cargo los archivos adjuntos, uso el ámbito “Privado”: https://docs.amplify.aws/lib/storage/configureaccess/q/platform/js/

Lo que necesito es permitir a un cliente cargar archivos, verlos pero no eliminarlos.
Otros clientes no pueden hacer nada con los archivos cargados por otros clientes, no pueden verlos ni hacer nada con ellos.
Los usuarios pertenecientes al grupo de moderadores pueden ver todos los archivos pero no pueden eliminarlos.
Los usuarios pertenecientes al grupo de administradores, en cambio, pueden ver todos los archivos cargados por cada cliente y también eliminarlos.

El problema es que con el ámbito “Privado”, un cliente puede cargar y ver sus archivos, pero los usuarios administradores ni siquiera pueden verlos.
Si configuro el ámbito “Protegido”, un cliente puede cargar y ver sus archivos, los usuarios administradores pueden administrarlos pero potencialmente también otros clientes pueden ver estos archivos, porque el ámbito “Protegido”, según la documentación, es “Lectura por todos los usuarios”.

¿Cómo puedo configurar el ámbito “Privado”, para que cada cliente pueda ver solo sus archivos, pero los usuarios pertenecientes al grupo de administradores o moderadores también puedan administrarlos?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para lograr la funcionalidad deseada, se puede crear un bucket S3 separado para cada cliente y configurar la política del bucket para otorgar acceso únicamente al cliente respectivo. La política del bucket se puede configurar para permitir acceso de lectura y escritura al cliente mientras se prohíbe el acceso a otros clientes.

    Para los grupos de Admins y Moderadores, se puede crear un bucket S3 separado y configurar la política del bucket para otorgarles acceso a todos los buckets de clientes. La política debería permitir acceso de lectura y escritura al grupo de Admins mientras que sólo otorgue acceso de lectura al grupo de Moderadores. Esto asegurará que los Admins puedan realizar todas las acciones mientras que los Moderadores sólo puedan ver los archivos.

    Luego se puede configurar el código para subir los archivos al bucket del cliente respectivo y recuperarlos de manera correspondiente. El scope Private se puede utilizar para asegurar que sólo el cliente que subió el archivo pueda acceder a él. De esta manera, cada cliente sólo podrá ver sus propios archivos mientras que los Admins y Moderadores podrán gestionarlos según la política del bucket.

Comments are closed.