- Created by Wesley Miranda de Oliveira, last modified by Igor Andrade on 29/10/2022
Os buckets tem o intuito de armazenar arquivos físicos (ex.: imagens, pdf, arquivos compactados) do nosso sistema em um espaço apropriado. O uso desse recurso é muito recomendado nos sistemas atuais.
Nesse tutorial criaremos um bucket S3 da Amazon e configuraremos uma política de segurança para que apenas quem possua a chave secreta possa fazer upload do conteúdo, porém, o download será público.
Esta documentação tem como objetivo informar sobre o procedimento básico de criação da chave do Bucket S3 na Amazon, para informações mais detalhadas, consulte a documentação oficial.
O Cronapp possui um sistema de bucket que integra esse recurso de forma mais simples aos seus projetos, para mais detalhes, acesse o tópico Armazenamento da documentação serviços de cloud.
Pré-requisitos
Antes de começar a seguir os passos do tutorial é preciso ter certeza de que se tem um ambiente minimamente preparado para reproduzir o exemplo. Abaixo estão os requisitos principais.
Projeto do tipo web ou mobile criado. Caso haja dúvidas de como criar esse tipo de projeto acesse o link Criar projeto;
- Possuir uma conta Amazon Web Services (AWS), podendo ser criada clicando em criar uma nova conta AWS.
Passos
Criar o bucket
Faça login no Console de Gerenciamento da AWS, em seguida, clique em Services e depois em S3 (destaque 1 da figura 1).
Figura 1 - Acesso ao serviço S3 da Amazon
Após acessar a página do Amazon S3, clique em Criar bucket (Figura 2).
Figura 1.1 - Botão para criar o bucket
Na janela de criação do bucket há vários cards com configurações, para esse exemplo, faremos a configuração mais básica.
Na primeira etapa, informe o Nome do bucket (destaque 1 da figura 1.2) e a Região da AWS (2).
Figura 1.2 - Etapa 1 da configuração do bucket
Descendo a barra de rolagem da página, configure como na imagem abaixo,
Figura 1.3 - Etapa 2 da configuração do bucket
Passos da figura 1.3:
No card Propriedade do objeto, marque a opção ACLs desabilitadas (recomendado).
Para mais detalhes sobre as configurações de bloqueios clique aqui.
- No card Configurações de bloqueio do acesso público deste bucket, desmarque a opção Bloquear todo o acesso público.
- No card Configurações de bloqueio do acesso público deste bucket, marque a opção Reconheço que as configurações atuais podem fazer com que este bucket e os objetos dentro dele se tornem públicos.
Não é necessário alterar mais nenhuma configuração dessa página. Assim, clique no botão final Criar bucket, como mostrado na figura 1.4.
Figura 1.4 - Finalizando a criação do bucket
Política do bucket
Criado o bucket, vamos definir uma política em que o download do conteúdo enviado será público.
De volta a tela inicial com seus buckets, utilize o campo de busca (destaque 1 da figura 1.5) para filtrar pelo bucket que acabamos de criar e clique para acessar suas configurações (Figura 1.5).
Figura 1.5 - Lista dos buckets
Nas configurações do bucket, clique na aba Permissões (destaque 1 da figura 1.6), acesse o quadro Política do bucket e clique no botão Editar (destaque 2 da figura 1.6).
Figura 1.6 - Acesso as configurações de Política do bucket
Com o campo em modo de edição, informe o JSON abaixo para permitir que os dados fiquem públicos (Figura 1.7).
{ "Version": "2012-10-17", "Id": "Policy1500505611610", "Statement": [ { "Sid": "Stmt1500505609346", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<NOME-DO-SEU-BUCKET>/*" } ] }
Será necessário incluir o nome do bucket que acabamos de criar na área com o destaque 1 da figura 1.7. Fique atento para retirar caracteres de espaços (" ") antes do caractere de abertura da chave "{
" na primeira linha e depois do caractere de fechadura da chave "}" na última linha.
Figura 1.7 - Incluindo a política do bucket
Ao final, clique em Salvar alterações (figura 1.7) para exibir o termo Publicamente acessível abaixo do nome do bucket (destaque 1 da figura 1.8).
Figura 1.8 - Incluindo a política do bucket
Usuário, política e grupo
Agora será necessário criar um usuário que liberará uma "chave de acesso" e a "senha de acesso" para inserir no Cronapp. O usuário será usado para ter acesso ao bucket desejado, ou, dependendo da configuração, a todos os buckets criados por você na Amazon S3.
Criação do Usuário - parte 1
Assim como fizemos para acessar o S3, clique em Services e depois em IAM (destaque 2 da figura 1). Após abrir a página, clique em Usuários (destaque 1 da figura 2) no menu lateral e depois no botão Adicionar usuários (figura 2).
Figura 2 - Gerenciamento de acesso do Usuários
Na primeira etapa da página de configuração de usuário, em Definir detalhes do usuário, informe o nome do usuário que será criado. Em Selecione o tipo de acesso à AWS marque a opção Chave de acesso: acesso programático, permitindo o acesso externo e não só pelo console de gerenciamento da AWS. Após isso, clique em Próximo: Permissões (Figura 2.1).
Figura 2.1 - Etapa 1 da criação de usuário
Na segunda etapa de configuração, clique na aba Anexar políticas existentes de forma direta (destaque 1 da figura 2.2) e depois em Criar políticas (destaque 2). Será aberta uma nova página em outra guia do seu navegador para configurar a política, após esse processo, retornaremos a essa etapa das configurações do usuário.
Figura 2.2 - Definindo permissões
Definição da política do S3
Na nova guia do navegador, referente a página de criação das políticas, pesquise e selecione pelo serviço "S3" no campo Selecione um serviço abaixo (Figura 2.3).
Figura 2.3 - Criando política
Em seguida, configure as Ações, selecione a primeira opção Todas as ações S3 (s3:*) (destaque 1 da figura 2.4).
Figura 2.4 - Configurando Ações
Clique em Recursos e deixe a opção Específico (destaque 1 da figura 2.5) habilitada para exibir todos os recursos. Em bucket, clique em Adicionar ARN (destaque 2 da figura 2.5) para abrir o modal Adicionar ARN(s), informe o nome do bucket (destaque 3) criado na figura 1.2 e clique no botão Adicionar para fechar o modal. Por fim, clique no botão Próximo: Tags (4).
Figura 2.5 - Configurando Recursos
A etapa 2 se refere a inclusão de tags e não será necessário nesse tutorial, por isso, clique no botão Próximo: Revisar para pular para última etapa (não exibido em imagens).
Na última etapa, Revisar política, informe um Nome e defina uma Descrição para a política e clique em Criar política para ser direcionado a lista de políticas (Figura 2.6).
Figura 2.6 - Inclusão de nome e descrição da política
Criação do Usuário - parte 2
Quando solicitamos a criação da política (figura 2.2), foi aberta uma nova guia do navegador para essa configuração, retorne a guia anterior para continuarmos a configuração do usuário.
Clique no botão recarregar (destaque 1 da figura 2.7), informe o nome da política que criamos no filtro (destaque 2) e selecione a caixa de seleção da política na lista (3). Clique no botão Próximo: Tags.
Será necessário a inclusão do usuário atual em um grupo que iremos criar. Poderíamos usar essa etapa para criar o grupo, porém faremos esse passo mais a frente, apenas por questão de didática.
Figura 2.7 - Selecionando a política que acabamos de criar
Assim como ocorre na criação da política, a próxima etapa (2) da criação do usuário também se refere a inclusão de tags e não será necessário nesse tutorial, por isso, clique no botão Próximo: Revisar para pular para etapa 4 (não exibido em imagens).
Nessa etapa, será exibido os detalhes do usuário e a política que criamos, clique no botão Criar usuário.
Figura 2.8 - Resumo do usuário
A etapa final exibirá o ID da chave de acesso e a Chave de acesso secreta. Por segurança, o AWS só exibirá esses dados agora, por isso, faça o download do .csv ou copie esses dados, caso contrário, será necessário gerar uma nova chave de acesso nas configurações do usuário.
Clique no botão Fechar.
Figura 2.9 - Informações de acesso do usuário
Criação do grupo de usuários
Ainda na área do IAM (destaque 2 da figura 1), acesse o menu lateral e clique em Grupos de usuários (destaque 1 da figura 2.10). Clique no botão Criar grupo (figura 2.10)
Figura 2.10 - Gerenciamento dos grupos de Usuários
Para criar o grupo, siga os passos apresentado na figura abaixo.
Figura 2.11 - Criação do grupo
- Nome do grupo de usuários: informe um nome para o grupo a ser criado.
- Adicionar usuário ao grupo (filtro): pesquise pelo nome do usuário que criamos.
- Adicionar usuário ao grupo (usuário): marque a caixa de seleção do usuário na lista.
- Associar políticas de permissões (filtro): pesquise pela política "AdministratorAccess".
- Associar políticas de permissões (política): marque a caixa de seleção da política "AdministratorAccess".
- Clique no botão Criar grupo.
Configuração do projeto Cronapp
Agora iremos vincular os dados obtidos do bucket S3 a um atributo de classe.
No Cronapp, abra uma classe do Diagrama de dados e selecione o botão de edição do atributo que será vinculado ao S3 (destaque 1 da figura 3).
Figura 3 - Janela de edição da classe
Configure o atributo como na figura abaixo.
Figura 3 - Janela de edição da classe
- Tipo: selecione as opções "Imagem no Cloud" ou "Arquivo no Cloud".
- Tipo de Armazenamento: selecione a opção "S3".
- Id do Armazenamento: informe o nome do bucket (configurado no destaque 1 da figura 1.2).
- Chave do Armazenamento: informe o "ID da chave de acesso" (figura 2.9).
- Segredo do Armazenamento: informe a "Chave de acesso secreta" (figura 2.9).
- Região da AWS: selecione a região escolhida no bucket (configurado no destaque 2 da figura 1.2).
Salve as alterações do diagrama de dados e, em seguida, gere a camada de persistência e a página CRUD da classe.
Recomendamos Recompilar e Reabrir o Projeto antes de gerar a página CRUD e rodar a aplicação.
Após abrir a página CRUD e cadastrar alguns registros a partir da aplicação, será possível visualizar o endereço público dos arquivos (destaque 1 da figura 3.1).
Figura 3.1 - Enviando arquivos para o S3 a partir da página CRUD da classe configurada
É possível renderizar a imagem na Grade a partir do seu endereço, acesse o tópico "Colunas Abas" da documentação do componente visual Grade para mais detalhes.
Nesta página
- No labels