Desenvolvimento com o Amazon S3 usando AWS SDKs
Os kits de desenvolvimento de software (SDKs) da AWS estão disponíveis para muitas linguagens de programação populares. Cada SDK fornece uma API, exemplos de código e documentação que facilitam a criação de aplicações em seu idioma preferido pelos desenvolvedores.
nota
É possível usar o AWS Amplify para o desenvolvimento full-stack de aplicações web e aplicativos móveis de ponta a ponta. O Amplify Storage integra perfeitamente os recursos de armazenamento e gerenciamento de arquivos em aplicações frontend web e aplicativos móveis, desenvolvidos com base no Amazon S3. Consulte mais informações em Storage
Interfaces de programação do SDK
Cada AWS SDK fornece uma ou mais interfaces programáticas para trabalhar com o Amazon S3. Cada SDK fornece uma interface de baixo nível para o Amazon S3, com métodos que se assemelham a operações de API. Alguns SDKs fornecem interfaces de alto nível para o Amazon S3, que são abstrações com o objetivo de simplificar casos de uso comuns.
Por exemplo, ao realizar um upload de várias partes usando as operações de API de baixo nível, você precisa usar uma operação para iniciar o upload, outra operação para fazer o upload das partes e uma operação final para concluir o upload. Uma operação de API de upload de várias partes de alto nível permite que você faça todas as operações necessárias para o upload em uma única chamada de API. Para ver exemplos, consulte Fazer upload de um objeto usando multipart upload.
As operações de API de baixo nível permitem maior controle sobre o upload. Recomendamos usar as operações de API de baixo nível se quiser pausar e retomar uploads, variar os tamanhos das partes durante o upload ou começar uploads quando você não sabe o tamanho dos dados com antecedência.
Especificar a versão da assinatura na autenticação de solicitações
O Amazon S3 oferece suporte apenas ao AWS Signature Version 4 na maioria das Regiões da AWS. No entanto, em algumas das Regiões da AWS mais antigas, o Amazon S3 é compatível com o Signature Version 4 e o Signature Version 2. No entanto, o Signature versão 2 está sendo desativado (defasado). Para obter mais informações sobre o fim do suporte ao Signature versão 2, consulte AWS Signature versão 2 desativado (defasado) para o Amazon S3.
Para obter uma lista de todas as regiões do Amazon S3 e das versões do Signature com as quais elas são compatíveis, consulte Regiões e endpoints na Referência geral da AWS.
Para todas as Regiões da AWS, por padrão, os AWS SDKs usam o Signature Version 4 para autenticar solicitações. Ao usar os AWS SDKs liberados antes de maio de 2016, talvez seja necessário solicitar o Signature Versão 4 conforme mostrado na tabela a seguir.
SDK | Solicitar o Signature versão 4 para autenticação de solicitações |
---|---|
AWS CLI |
Para o perfil padrão, execute o comando a seguir:
Para um perfil personalizado, execute o comando a seguir:
|
SDK do Java |
Adicione o seguinte ao código:
Ou, na linha de comando, especifique o seguinte:
|
SDK do JavaScript |
Defina o parâmetro
|
SDK do PHP |
Defina o parâmetro
Ao usar o SDK v3 do PHP, defina o parâmetro
|
SDK do Python-Boto |
Especifique o seguinte no arquivo de configuração boto padrão:
|
SDK do Ruby |
SDK do Ruby - versão 1: defina o parâmetro
SDK do Ruby - versão 3: defina o parâmetro
|
SDK do .NET |
Adicione o código a seguir antes de criar o cliente do Amazon S3:
Ou adicione o seguinte ao arquivo config:
|
AWS Signature versão 2 desativado (defasado) para o Amazon S3
O Signature versão 2 está sendo desativado (defasado) no Amazon S3. O Amazon S3 só aceitará solicitações de API assinadas com o Signature versão 4.
Esta seção apresenta respostas às perguntas mais comuns relacionadas ao fim do suporte ao Signature versão 2.
O que é o Signature versão 2/4 e o que “assinar solicitações” quer dizer?
O processo de assinatura com as versões 2 ou 4 do Signature é utilizado para autenticar solicitações de API do Amazon S3. A assinatura de solicitações permite que o Amazon S3 identifique quem está enviando uma solicitação e a protege contra agentes mal intencionados.
Para obter mais informações sobre como assinar solicitações da AWS, consulte Assinar solicitações de API da AWS na Referência geral da AWS.
Qual atualização está sendo feita?
No momento, oferecemos suporte a solicitações da API do Amazon S3 assinadas usando os processos das versões 2 e 4 do Signature. Depois disso, o Amazon S3 só aceitará solicitações assinadas com o Signature versão 4.
Para obter mais informações sobre a assinatura de solicitações da AWS, consulte Alterações no Signature versão 4 na Referência geral da AWS.
Por que esta atualização está sendo feita?
O Signature versão 4 oferece maior segurança porque usa uma chave de assinatura em vez de sua chave de acesso secreta. No momento, o Signature Version 4 é compatível com todas as Regiões da AWS. O Signature Version 2 só é compatível com as regiões lançadas antes de janeiro de 2014. Essa atualização nos permite oferecer uma experiência mais consistente em todas as regiões.
Como posso ter certeza de que estou usando o Signature versão 4 e quais atualizações são necessárias?
Normalmente, a versão utilizada para assinar suas solicitações é definida pela ferramenta ou pelo SDK no lado do cliente. Por padrão, as versões mais recentes dos AWS SDKs usam o Signature Version 4. Para software de terceiro, entre em contato com a equipe de suporte dele para confirmar a versão necessária. Para enviar chamadas REST diretamente para o Amazon S3, modifique a aplicação para usar o processo de assinatura do Signature versão 4.
Para obter informações sobre qual versão dos AWS SDKs deve ser usada depois da transição para o Signature Version 4, consulte Migração do Signature versão 2 para o Signature versão 4.
Para obter informações sobre como usar o Signature Version 4 com a API REST do Amazon S3, consulte Autenticação de solicitações (AWS Signature Version 4) na Referência da API do Amazon Simple Storage Service.
O que acontecerá se eu não atualizar?
As solicitações assinadas com o Signature versão 2 feitas após essa data não autenticarão com o Amazon S3. Os solicitantes verão erros com a mensagem de que a solicitação deve ser assinada com o Signature versão 4.
Devo fazer alterações mesmo se estiver usando um pre-signed URL que exige a assinatura por mais de sete dias?
Se você estiver usando um pre-signed URL que exige a assinatura por mais de sete dias, não é necessário fazer nada. Você pode continuar usando o AWS Signature Version 2 para assinar e autenticar URLs pré-assinados. Vamos fazer um acompanhamento e fornecer mais detalhes sobre como migrar para o Signature versão 4 para pre-signed URL.
Mais informações
-
Para obter mais informações sobre como usar o Signature versão 4, consulte Assinatura de solicitações de API da AWS.
-
Visualize a lista de alterações entre o Signature versão 2 e o Signature versão 4 em Alterações no Signature versão 4.
-
Consulte a publicação AWS Signature Version 4 como substituição ao AWS Signature Version 2 para assinar solicitações da API do Amazon S3
nos fóruns da AWS. -
Em caso de dúvidas ou preocupações, entre em contato conosco em AWS Support.
Migração do Signature versão 2 para o Signature versão 4
Se estiver usando o Signature versão 2 para autenticar solicitações de API do Amazon S3, migre para o Signature versão 4. Não haverá mais suporte para o Signature versão 2, conforme descrito em AWS Signature versão 2 desativado (defasado) para o Amazon S3.
Para obter informações sobre como usar o Signature Version 4 com a API REST do Amazon S3, consulte Autenticação de solicitações (AWS Signature Version 4) na Referência da API do Amazon Simple Storage Service.
A tabela a seguir contém os SDKs que exigem a utilização do Signature versão 4 (SigV4). Se você utiliza URLs pré-assinados com os SDKs AWS Java, JavaScript (Node.js) ou Python (Boto/CLI), deverá definir a Região da AWS correta e o Signature versão 4 na configuração do cliente. Para obter mais informações sobre como definir o SigV4
na configuração do cliente, consulte Especificar a versão da assinatura na autenticação de solicitações.
Se você usa este SDK/produto | Atualize para esta versão do SDK | Alteração de código necessária para o cliente usar o Sigv4? | Link para documentação do SDK |
---|---|---|---|
AWS SDK for Java v1 |
Atualize para Java 1.11.201+ ou v2. | Sim | Especificar a versão da assinatura na autenticação de solicitações |
AWS SDK for Java v2 |
Não é necessário atualizar os SDKs. | Não | AWS SDK for Java |
AWS SDK for .NET v1 |
Atualize para o 3.1.10 ou versão superior. | Sim | AWS SDK for .NET |
AWS SDK for .NET v2 |
Atualize para o 3.1.10 ou versão superior. | Não | AWS SDK for .NET v2 |
AWS SDK for .NET v3 |
Atualize para a versão 3.3.0.0 ou superior. | Sim | AWS SDK for .NET v3 |
AWS SDK for JavaScript v1 |
Atualize para o 2.68.0 ou versão superior. | Sim | AWS SDK for JavaScript |
AWS SDK for JavaScript v2 |
Atualize para o 2.68.0 ou versão superior. | Sim | AWS SDK for JavaScript |
AWS SDK for JavaScript v3 |
Nenhuma outra ação é necessária no momento. Atualize para a versão principal V3 no terceiro trimestre de 2019. | Não | AWS SDK for JavaScript |
AWS SDK for PHP v1 |
Recomenda-se atualizar para a versão mais recente do PHP ou, ao menos, para a versão 2.7.4 com o parâmetro de assinatura definido como v4 na configuração do cliente do S3. | Sim | AWS SDK for PHP |
AWS SDK for PHP v2 |
Recomenda-se atualizar para a versão mais recente do PHP ou, ao menos, para a versão 2.7.4 com o parâmetro de assinatura definido como v4 na configuração do cliente do S3. | Não | AWS SDK for PHP |
AWS SDK for PHP v3 |
Não é necessário atualizar os SDKs. | Não | AWS SDK for PHP |
Boto2 |
Atualize para Boto2 v2.49.0. | Sim | Atualização do Boto 2 |
Boto3 |
Atualize para 1.5.71 (Botocore), 1.4.6 (Boto3). | Sim | Boto 3 - AWS SDK para Python |
AWS CLI |
Atualize para 1.11.108. | Sim | AWS Command Line Interface |
AWS CLI v2 (pré-visualização) |
Não é necessário atualizar os SDKs. | Não | AWS Command Line Interface versão 2 |
AWS SDK for Ruby v1 |
Atualize para Ruby V3. | Sim | Ruby V3 for AWS |
AWS SDK for Ruby v2 |
Atualize para Ruby V3. | Sim | Ruby V3 for AWS |
AWS SDK for Ruby v3 |
Não é necessário atualizar os SDKs. | Não | Ruby V3 for AWS |
Go |
Não é necessário atualizar os SDKs. | Não | AWS SDK for Go |
C++ |
Não é necessário atualizar os SDKs. | Não | AWS SDK for C++ |
AWS Tools for Windows PowerShell ou AWS Tools for PowerShell Core
Se você estiver usando versões de módulo anteriores à 3.3.0.0, deverá atualizar para a 3.3.0.0.
Para obter informações sobre a versão, use o cmdlet do Get-Module
:
Get-Module –Name AWSPowershell Get-Module –Name AWSPowershell.NetCore
Para atualizar para a versão 3.3.0.0, use o cmdlet do Update-Module
:
Update-Module –Name AWSPowershell Update-Module –Name AWSPowershell.NetCore
É possível enviar o tráfego do Signature versão 2 para pre-signed URLs válidas por mais de sete dias.