Aprimoramento do compartilhamento de arquivos usando o Amazon S3 e o AWS Step Functions
O Amazon S3 é um serviço de armazenamento em nuvem que muitos clientes usam para armazenamento seguro de arquivos. O S3 oferece um recurso chamado URLs pré-assinados para gerar links de download temporários, que são uma forma eficaz e segura de carregar e baixar dados para usuários autorizados.Há momentos em que os clientes precisam de mais controle sobre como os dados são acessados. Por exemplo, eles podem querer limitar os downloads com base nas funções do IAM em vez de URLs pré-assinados, ou limitar o número de downloads por objeto para controlar os custos de acesso aos dados. Além disso, pode ser útil rastrear indivíduos que acessam esses URLs de download.
Este blog post mostra um exemplo de aplicativo que pode fornecer essa funcionalidade extra usando os serviços Serverless da AWS.
Visão geral
O código incluído neste exemplo usa uma variedade de serviços Serverless:
O Amazon API Gateway recebe todas as solicitações recebidas dos usuários e autoriza o acesso usando o Amazon Cognito.
O AWS Step Functions coordena atividades de compartilhamento e download de arquivos, como validação de usuários, verificação de elegibilidade para download, gravação de eventos, roteamento de solicitações e formatação de respostas.
O AWS Lambda implementa atividades administrativas, como recuperação de metadados, listagem de arquivos e exclusão.
O Amazon DynamoDB armazena permissões para garantir que os usuários tenham acesso somente aos arquivos que foram compartilhados com eles.
O Amazon S3 fornece armazenamento durável para que os usuários façam upload e download de arquivos.
O Amazon Athena fornece uma maneira eficiente de consultar os registros de acesso do S3 para extrair o download e o uso da largura de banda.
O Amazon QuickSight fornece um painel visual para visualizar análises de download e largura de banda.
O AWS Cloud Development Kit (AWS CDK) implanta os recursos da AWS e pode se conectar ao seu processo preferido de CI/CD.
Visão geral da arquitetura
1. Interface do usuário: O front-end é um aplicativo estático de página única (SPA) em React hospedado no S3 e servido via Amazon CloudFront. A interface do usuário usa componentes de design do AWS NorthStar e do Cloudscape. A interface do usuário do Amplify simplifica as interações com o Amazon Cognito, fornecendo a capacidade de fazer login, cadastrar-se e realizar verificação de e-mail.
2.API Gateway: os usuários interagem por meio de uma API REST do API Gateway.
Autenticação: o Amazon Cognito gerencia as identidades e o acesso dos usuários. Os usuários se inscrevem usando o endereço de e-mail e depois verificam o endereço de e-mail. As solicitações para a API incluem um token de acesso, que é verificado usando um autorizador do Amazon Cognito.
3.Microsserviços: as operações principais são criadas com o Lambda. Os fluxos de trabalho primários permitem que os usuários compartilhem e baixem arquivos, e o Step Functions organiza várias etapas do processo. Isso pode incluir a validação de solicitações, a autorização de que os usuários tenham as permissões corretas para acessar arquivos, o envio de notificações, a auditoria e o controle de quem está acessando os arquivos.
4.Armazenamento de permissões: o DynamoDB armazena informações essenciais sobre arquivos, como detalhes de propriedade e permissões para compartilhamento. Ele rastreia quem possui um arquivo e quem teve acesso para baixá-lo.
5. Armazenamento de arquivos: um bucket do S3 é o repositório central de arquivos. Cada usuário tem uma pasta dedicada no bucket do S3 para armazenar arquivos.
6.Notificações: a solução usa o Amazon Simple Notification Service (SNS) para enviar notificações por e-mail aos destinatários quando um arquivo é compartilhado.
7.Análise: os registros de acesso do S3 são gerados sempre que os usuários baixam ou carregam arquivos no bucket de armazenamento de arquivos. O Amazon Athena filtra esses registros para gerar um relatório de download, extraindo informações importantes (como a identidade dos usuários que baixaram os arquivos e a largura de banda total consumida durante os downloads).
8.Relatórios: o Amazon QuickSight fornece uma interface para os administradores visualizarem relatórios e painéis de download.
Fique por dentro das inovações tecnológicas aqui no blog da https://www.itexperts.com.br/blog/
Originalmente publicado em Blog AWS