

# Como especificar a versão da assinatura na autenticação de solicitações
<a name="specify-signature-version"></a>

 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 Version 2 desativado (defasado) para o Amazon S3](#UsingAWSSDK-sig2-deprecation).

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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) 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:<pre>$ aws configure set default.s3.signature_version s3v4</pre><br />Para um perfil personalizado, execute o comando a seguir:<pre>$ aws configure set profile.your_profile_name.s3.signature_version s3v4</pre> | 
| SDK do Java | Adicione o seguinte ao código:<pre>System.setProperty(SDKGlobalConfiguration.ENABLE_S3_SIGV4_SYSTEM_PROPERTY, "true");</pre><br />Ou, na linha de comando, especifique o seguinte:<pre>-Dcom.amazonaws.services.s3.enableV4</pre> | 
|  SDK do JavaScript | Defina o parâmetro `signatureVersion` como `v4` ao criar o cliente:<pre>var s3 = new AWS.S3({signatureVersion: 'v4'});</pre> | 
| SDK do PHP | Defina o parâmetro `signature` como `v4` ao criar o cliente de serviço do Amazon S3 para o SDK v2 do PHP:<pre><?php <br />$client = S3Client::factory([<br />    'region' => 'YOUR-REGION',<br />    'version' => 'latest',<br />    'signature' => 'v4'<br />]);</pre><br />Ao usar o SDK v3 do PHP, defina o parâmetro `signature_version` como `v4` durante a criação do cliente de serviço do Amazon S3:<pre><?php <br />$s3 = new Aws\S3\S3Client([<br />    'version' => '2006-03-01',<br />    'region' => 'YOUR-REGION',<br />    'signature_version' => 'v4'<br />]);</pre> | 
| SDK do Python-Boto | Especifique o seguinte no arquivo de configuração boto padrão:<pre>[s3] use-sigv4 = True</pre> | 
| SDK do Ruby | SDK do Ruby - versão 1: defina o parâmetro `:s3_signature_version` como `:v4` ao criar o cliente:<pre>s3 = AWS::S3::Client.new(:s3_signature_version => :v4)</pre><br />SDK do Ruby - versão 3: defina o parâmetro `signature_version` como `v4` ao criar o cliente:<pre>s3 = Aws::S3::Client.new(signature_version: 'v4')</pre> | 
| SDK do .NET | Adicione o código a seguir antes de criar o cliente do Amazon S3:<pre>AWSConfigsS3.UseSignatureVersion4 = true;</pre><br />Ou adicione o seguinte ao arquivo config:<pre><appSettings><br />   <add key="AWS.S3.UseSignatureVersion4" value="true" /><br /></appSettings></pre> | 

 

## AWS Signature Version 2 desativado (defasado) para o Amazon S3
<a name="UsingAWSSDK-sig2-deprecation"></a>

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](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) 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](https://docs.aws.amazon.com/general/latest/gr/sigv4_changes.html) 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](#UsingAWSSDK-move-to-Sig4). 

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)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) 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
<a name="UsingAWSSDK-sev2-deprecation-more-info"></a>
+ Para obter mais informações sobre como usar o Signature versão 4, consulte [Assinatura de solicitações de API da AWS](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html).
+ 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](https://docs.aws.amazon.com/general/latest/gr/sigv4_changes.html). 
+ 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](https://forums.aws.amazon.com/ann.jspa?annID=5816) nos fóruns da AWS.
+ Em caso de dúvidas ou preocupações, entre em contato conosco em [Suporte](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html).

   

## Migração do Signature versão 2 para o Signature versão 4
<a name="UsingAWSSDK-move-to-Sig4"></a>

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 Version 2 desativado (defasado) para o Amazon S3](#UsingAWSSDK-sig2-deprecation).

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)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) 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 [Como especificar a versão da assinatura na autenticação de solicitações](#specify-signature-version).


| 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 para Java v1 | Atualize para Java 1.11.201\+ ou v2. | Sim | [Como especificar a versão da assinatura na autenticação de solicitações](#specify-signature-version) | 
| AWS SDK para Java v2 da  | Não é necessário atualizar os SDKs. | Não | [AWS SDK para Java](https://aws.amazon.com/sdk-for-java/) | 
| AWS SDK para .NET v1  | Atualize para o 3.1.10 ou versão superior. | Sim | [AWS SDK para .NET](https://github.com/aws/aws-sdk-net/tree/aws-sdk-net-v1/) | 
| AWS SDK para .NET v2  | Atualize para o 3.1.10 ou versão superior. | Não | [AWS SDK para .NET v2](https://github.com/aws/aws-sdk-net/tree/aws-sdk-net-v2/) | 
| AWS SDK para .NET v3  | Atualize para a versão 3.3.0.0 ou superior. | Sim | [AWS SDK para .NET v3](https://github.com/aws/aws-sdk-net) | 
| AWS SDK para JavaScript v1  | Atualize para o 2.68.0 ou versão superior. | Sim | [AWS SDK para JavaScript](https://github.com/aws/aws-sdk-js) | 
| AWS SDK para JavaScript v2  | Atualize para o 2.68.0 ou versão superior. | Sim | [AWS SDK para JavaScript](https://github.com/aws/aws-sdk-js) | 
| AWS SDK para 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 para JavaScript](https://github.com/aws/aws-sdk-js) | 
| AWS SDK para 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 para PHP](https://aws.amazon.com/sdk-for-php/) | 
| AWS SDK para 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 para PHP](https://aws.amazon.com/sdk-for-php/) | 
| AWS SDK para PHP v3  | Não é necessário atualizar os SDKs. | Não | [AWS SDK para PHP](https://aws.amazon.com/sdk-for-php/) | 
| Boto2  | Atualize para Boto2 v2.49.0. | Sim | [Atualização do Boto](https://github.com/boto/boto/commit/16729da27b95d6dbbd81bcebb43bcf099ce23fd3) | 
| Boto3  | Atualize para 1.5.71 (Botocore), 1.4.6 (Boto3). | Sim | [Boto 3 - AWS SDK for Python](https://github.com/boto/boto3) | 
| AWS CLI  | Atualize para 1.11.108. | Sim | [AWS Command Line Interface](https://aws.amazon.com/cli/) | 
| AWS CLI v2 (pré-visualização)  | Não é necessário atualizar os SDKs. | Não | [AWS Command Line Interface versão 2](https://github.com/aws/aws-cli/tree/v2) | 
| AWS SDK para Ruby v1  | Atualize para Ruby V3. | Sim | [Ruby V3 for AWS](https://rubygems.org/gems/aws-sdk/versions) | 
| AWS SDK para Ruby v2  | Atualize para Ruby V3. | Sim | [Ruby V3 for AWS](https://rubygems.org/gems/aws-sdk/versions) | 
| AWS SDK para Ruby v3  | Não é necessário atualizar os SDKs. | Não | [Ruby V3 for AWS](https://rubygems.org/gems/aws-sdk/versions) | 
| Go  | Não é necessário atualizar os SDKs. | Não | [AWS SDK para Go](https://aws.amazon.com/sdk-for-go/) | 
| C\+\+  | Não é necessário atualizar os SDKs. | Não | [AWS SDK para C\+\+](https://aws.amazon.com/sdk-for-cpp/) | 

**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.