Criar chave do Bucket S3 na Amazon
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).
Após acessar a página do Amazon S3, clique em Criar bucket (Figura 2).
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).
Descendo a barra de rolagem da página, configure como na imagem abaixo,
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.
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).
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).
Com o campo em modo de edição, informe o JSON abaixo para permitir que os dados fiquem públicos (Figura 1.7).
Política do bucket
{
"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.
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).
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).
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).
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.
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).
Em seguida, configure as Ações, selecione a primeira opção Todas as ações S3 (s3:*) (destaque 1 da figura 2.4).
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).
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).
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.
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.
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.
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)
Para criar o grupo, siga os passos apresentado na figura abaixo.
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).
Configure o atributo como na figura abaixo.
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).
É 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