

# Fazer upload do arquivo de firmware para um bucket do S3 e adicionar um perfil do IAM
<a name="lorawan-upload-firmware-s3bucket"></a>

Você pode usar o Amazon S3 para criar um *bucket*, que é um contêiner que pode armazenar o arquivo de atualização de firmware. Você pode fazer o upload do arquivo para o bucket do S3 e adicionar um perfil do IAM que permita que o servidor CUPS leia seu arquivo de atualização do bucket. Para obter mais informações sobre o Amazon S3, consulte [Conceitos básicos do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html). 

O arquivo de atualização do firmware que você deseja carregar depende do gateway que você está usando. Se seguiu um procedimento semelhante ao descrito em [Gere o arquivo e a assinatura de atualização de firmware](lorawan-script-fwupdate-sigkey.md), você fará o upload do arquivo `fwstation` gerado pela execução dos scripts.

Esse procedimento leva cerca de 20 minutos para ser concluído.

**Topics**
+ [Crie um bucket do Amazon S3 e faça o upload do arquivo de atualização](#lorawan-create-s3-bucket)
+ [Criar um perfil do IAM com permissões para ler o bucket do S3](#lorawan-s3-iam-permissions)
+ [Reveja as próximas etapas](#lorawan-s3iam-next-steps)

## Crie um bucket do Amazon S3 e faça o upload do arquivo de atualização
<a name="lorawan-create-s3-bucket"></a>

Você criará um bucket do Amazon S3 usando o Console de gerenciamento da AWS e, em seguida, fará upload do arquivo de atualização de firmware no bucket.

**Crie um bucket do S3**  
Para criar um bucket do S3, abra o [Console do Amazon S3](https://console.aws.amazon.com/s3/home#). Conecte-se se ainda não tiver feito isso e, em seguida, execute as seguintes etapas:

1. Escolha **Criar bucket**.

1. Insira um nome exclusivo e significativo para o **Nome do bucket** (por exemplo, `iotwirelessfwupdate`). Para obter a convenção de nomenclatura recomendada para seu bucket, consulte [https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html).

1. Selecione o Região da AWS escolhido como aquele que você usou para criar seu gateway e dispositivo LoRaWAN, e a configuração **Bloquear todo o acesso público** está selecionada para que o bucket use as permissões padrão.

1. Escolha **Ativar** para **Versionamento do bucket**, que ajudará você a manter várias versões do arquivo de atualização do firmware no mesmo bucket.

1. Confirme se **Criptografia do lado do servidor** está definido como **Desativar** e escolha **Criar bucket**.

**Faça o upload do arquivo de atualização de firmware**  
Agora, você pode ver seu bucket na lista de buckets exibida no Console de gerenciamento da AWS. Escolha o bucket e conclua as etapas a seguir para fazer o upload do arquivo.

1. Escolha o bucket e, em seguida, escolha **Fazer upload**. 

1. Escolha **Adicionar arquivo** e, em seguida, faça upload do arquivo de atualização do firmware. Se seguiu o procedimento descrito em [Gere o arquivo e a assinatura de atualização de firmware](lorawan-script-fwupdate-sigkey.md), você fará o upload do arquivo `fwstation`; caso contrário, fará o upload do arquivo fornecido pelo fabricante do gateway.

1. Certifique-se de que todas as configurações estejam definidas como padrão. Verifique se as **ACLs predefinidas** estão definidas como **privadas** e escolha **Fazer upload** para fazer o upload do arquivo.

1. Copie o URI do S3 do arquivo que você carregou. Escolha seu bucket e você verá o arquivo que carregou exibido na lista de **Objetos**. Escolha o arquivo e, em seguida, escolha **Copiar URI do S3**. O URI será algo como: `s3://iotwirelessfwupdate/fwstation` se você nomeou seu bucket de forma semelhante ao exemplo descrito anteriormente (`fwstation`). Você utilizará o URI do S3 ao criar o perfil do IAM.

## Criar um perfil do IAM com permissões para ler o bucket do S3
<a name="lorawan-s3-iam-permissions"></a>

Agora, você criará um perfil e uma política do IAM que darão ao CUPS a permissão para ler o arquivo de atualização de firmware no bucket do S3.

**Criar uma política do IAM para o seu perfil**  
Para criar uma política do IAM para seu perfil de destino AWS IoT Core for LoRaWAN, abra o [Hub de políticas do console do IAM](https://console.aws.amazon.com/iam/home#/policies) e conclua as seguintes etapas:

1. Escolha **Criar política** e escolha a guia **JSON**.

1. Exclua qualquer conteúdo do editor e cole este documento de política. A política oferece permissões para acessar o bucket `iotwireless` e o arquivo de atualização do firmware, `fwstation`, armazenados dentro de um objeto.

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucketVersions",
                   "s3:ListBucket",
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::iotwirelessfwupdate/fwstation",
                   "arn:aws:s3:::iotwirelessfwupdate"
               ]
           }
       ]
   }
   ```

1. Escolha **Revisar política** e, em **Nome**, insira um nome para essa política (por exemplo, `IoTWirelessFwUpdatePolicy`). Você precisará desse nome para usar no próximo procedimento.

1. Escolha **Criar política**.

**Criar um perfil do IAM com a política anexada**  
Agora, você criará um perfil do IAM e anexará a política criada anteriormente para acessar o bucket do S3. Abra o [Hub Perfis do console do IAM](https://console.aws.amazon.com/iam/home#/roles) e conclua as seguintes etapas:

1. Selecione **Criar perfil**.

1. Em **Selecionar tipo de entidade confiável**, escolha **Outra Conta da AWS**.

1. Em **ID da conta**, insira a ID da Conta da AWS e escolha **Próximo: permissões**.

1. Na caixa de pesquisa, insira o nome da política do IAM que você criou no procedimento anterior. Verifique a política do IAM (por exemplo, `IoTWirelessFwUpdatePolicy`) que você criou anteriormente nos resultados da pesquisa e escolha-a.

1. Escolha **Próximo: tags** e **Próximo: revisar**.

1. Em **Nome do perfil**, insira um nome dessa função (por exemplo, `IoTWirelessFwUpdateRole`) e escolha **Criar perfil**.

**Edite a relação de confiança do perfil do IAM**  
Na mensagem de confirmação exibida após a execução da etapa anterior, selecione o nome do perfil criado para editá-lo. Você editará o perfil para adicionar a relação de confiança a seguir.

1. Na seção **Resumo** do perfil que você criou, escolha a guia **Relações de confiança** e, em seguida, **Editar relação de confiança**.

1. Em **Documento de política**, altere a propriedade `Principal` para ficar parecida com o exemplo a seguir.

   ```
   "Principal": { 
       "Service": "iotwireless.amazonaws.com" 
   },
   ```

   Depois de alterar a propriedade `Principal`, o documento de política completo deve ser semelhante a este exemplo.

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "iotwireless.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {}
       }
     ]
   }
   ```

1. Para salvar as alterações e sair, selecione **Atualizar política de confiança**.

1. Obtenha o ARN para seu perfil. Escolha o perfil do IAM e, na seção Resumo, você verá um **ARN do perfil**, como `arn:aws:iam::123456789012:role/IoTWirelessFwUpdateRole`. Copie este **ARN do perfil**.

## Reveja as próximas etapas
<a name="lorawan-s3iam-next-steps"></a>

Agora que você criou o bucket do S3 e um perfil do IAM que permite que o servidor CUPS leia o bucket do S3, vá para o próximo tópico para agendar e executar a atualização do firmware. Mantenha o **URI do S3** e o **ARN do perfil** que você copiou anteriormente para poder inseri-los para criar uma definição de tarefa que será executada para realizar a atualização do firmware.