

O AWS SDK para .NET V3 entrou no modo de manutenção.

Recomendamos que você migre para a [AWS SDK para .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Para obter detalhes e informações adicionais sobre como migrar, consulte nosso [anúncio do modo de manutenção](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Aplicando uma versão mínima do TLS no AWS SDK para .NET
<a name="enforcing-tls"></a>

Para aumentar a segurança ao se comunicar com AWS serviços, você deve configurar o AWS SDK para .NET para usar o TLS 1.2 ou posterior.

O AWS SDK para .NET usa o tempo de execução do.NET subjacente para determinar qual protocolo de segurança usar. Por padrão, as versões atuais do .NET usam o protocolo configurado mais recentemente que for compatível com o sistema operacional. Seu aplicativo pode substituir esse comportamento do SDK, mas *não é recomendado* fazê-lo.

## .NET Core
<a name="enforcing-tls-dotnet-core"></a>

Por padrão, o .NET Core usa o protocolo configurado mais recentemente que for compatível com o sistema operacional. O AWS SDK para .NET não fornece um mecanismo para substituir isso.

Se você estiver usando uma versão do .NET Core anterior à 2.1, recomendamos *veementemente* que atualize sua versão do .NET Core.

Consulte os itens a seguir para obter informações específicas sobre cada sistema operacional.

**Windows**

As distribuições modernas do Windows têm o suporte para TLS 1.2 [habilitado por padrão](https://learn.microsoft.com/en-us/windows/win32/secauthn/protocols-in-tls-ssl--schannel-ssp-). Se você estiver executando o Windows 7 SP1 ou o Windows Server 2008 R2 SP1, precisará garantir que o suporte ao TLS 1.2 esteja habilitado no registro, conforme descrito em [https://learn.microsoft.com/en-us/windows- server/security/tls/tls -registry-settings \#tls -12](https://learn.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings#tls-12). Se estiver executando uma distribuição anterior, você deverá atualizar seu sistema operacional. Para obter informações sobre o suporte ao TLS 1.3 no Windows, consulte a documentação mais recente da Microsoft para ver as versões mínimas exigidas de cliente ou servidor.

**macOS**

Se estiver executando o .NET Core 2.1 ou posterior, o TLS 1.2 estará habilitado por padrão. O TLS 1.2 é compatível com o [OS X Mavericks v10.9 ou posterior](https://support.apple.com/en-us/103373). [.NET Core versão 2.1 e versões posteriores exigem versões mais recentes do macOS, conforme descrito em? https://learn.microsoft.com/en-us/ dotnet/core/install/windows tabs=net80&pivots=os-macos](https://learn.microsoft.com/en-us/dotnet/core/install/windows?tabs=net80&pivots=os-macos).

Caso você esteja usando o .NET Core 1.0, o .NET Core [usa OpenSSL no macOS](https://github.com/dotnet/announcements/issues/21), uma dependência que deve ser instalada separadamente. O OpenSSL adicionou suporte para TLS 1.2 na versão 1.0.1 e adicionou suporte para TLS 1.3 na versão 1.1.1.

**Linux**

O .NET Core no Linux requer OpenSSL, que é fornecido junto com muitas distribuições Linux. Mas também pode ser instalado separadamente. O OpenSSL adicionou suporte para TLS 1.2 na versão 1.0.1 e adicionou suporte para TLS 1.3 na versão 1.1.1. Caso você esteja usando uma versão moderna do .NET Core (2.1 ou posterior) e tenha instalado um gerenciador de pacotes, é provável que uma versão mais moderna do OpenSSL tenha sido instalada para você.

Para ter certeza, você pode executar o **`openssl version`** em um terminal e verificar se a versão é posterior à 1.0.1.

## NET Framework
<a name="enforcing-tls-dotnet-framework"></a>

Se você estiver executando uma versão moderna do .NET Framework (4.7 ou posterior) e uma versão moderna do Windows (pelo menos o Windows 8 para clientes, o Windows Server 2012 ou posterior para servidores), o TLS 1.2 será habilitado e usado por padrão.

Se você estiver usando um runtime do.NET Framework que não usa as configurações do sistema operacional (.NET Framework 3.5 a 4.5.2), eles AWS SDK para .NET tentarão [adicionar suporte para TLS 1.1 e TLS 1.2](https://github.com/aws/aws-sdk-net/blob/aws-sdk-net-v3.7/sdk/src/Core/Amazon.Runtime/Pipeline/HttpHandler/AmazonSecurityProtocolManager.cs) aos protocolos suportados. Se você estiver usando o .NET Framework 3.5, esse processo só será bem-sucedido se o hot patch apropriado estiver instalado, da seguinte forma:
+ Windows 10 versão 1511 e Windows Server 2016 — [KB3156421](https://support.microsoft.com/kb/3156421)
+ Windows 8.1 e Windows Server 2012 R2 — [KB3154520](https://support.microsoft.com/kb/3154520)
+ Windows Server 2012 — [KB3154519](https://support.microsoft.com/kb/3154519)
+ Windows 7 SP1 e Server 2008 R2 SP1 — [KB3154518](https://support.microsoft.com/kb/3154518)

**Atenção**  
A partir de 15 de agosto de 2024, o suporte para o.NET Framework 3.5 AWS SDK para .NET será encerrado e a versão mínima do.NET Framework será alterada para 4.7.2. Para acessar mais informações, consulte a postagem no blog [Important changes coming for .NET Framework 3.5 and 4.5 targets of the AWS SDK para .NET](https://aws.amazon.com/blogs/developer/important-changes-coming-for-net-framework-3-5-and-4-5-targets-of-the-aws-sdk-for-net/).

Se seu aplicativo estiver sendo executado em um novo.NET Framework no Windows 7 SP1 ou no Windows Server 2008 R2 SP1, você precisará garantir que o suporte ao TLS 1.2 esteja habilitado no registro, conforme descrito em [https://learn.microsoft.com/en-us/windows- server/security/tls/tls -registry-settings \#tls -12](https://learn.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings#tls-12). Nas versões mais recentes do Windows, ele está [habilitado por padrão](https://learn.microsoft.com/en-us/windows/win32/secauthn/protocols-in-tls-ssl--schannel-ssp-).

Para obter as melhores práticas detalhadas para usar o TLS com o.NET Framework, consulte o artigo da Microsoft em [https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls](https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls).

## Ferramentas da AWS para PowerShell
<a name="enforcing-tls-ps"></a>

[Ferramentas da AWS para PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/)use o AWS SDK para .NET para todas as chamadas para AWS serviços. O comportamento do seu ambiente depende da versão do Windows PowerShell que você está executando, da seguinte forma.

**Windows PowerShell 2.0 a 5.x**

O Windows PowerShell 2.0 a 5.x é executado no.NET Framework. Você pode verificar qual runtime do.NET (2.0 ou 4.0) está sendo usado PowerShell usando o comando a seguir.

```
$PSVersionTable.CLRVersion
```
+ Ao usar o .NET Runtime 2.0, siga as instruções fornecidas anteriormente em relação ao AWS SDK para .NET e ao .NET Framework 3.5.
**Atenção**  
A partir de 15 de agosto de 2024, o suporte para o.NET Framework 3.5 AWS SDK para .NET será encerrado e a versão mínima do.NET Framework será alterada para 4.7.2. Para acessar mais informações, consulte a postagem no blog [Important changes coming for .NET Framework 3.5 and 4.5 targets of the AWS SDK para .NET](https://aws.amazon.com/blogs/developer/important-changes-coming-for-net-framework-3-5-and-4-5-targets-of-the-aws-sdk-for-net/).
+ Ao usar o .NET Runtime 4.0, siga as instruções fornecidas anteriormente em relação ao AWS SDK para .NET e ao .NET Framework 4\+.

**Windows PowerShell 6.0**

O Windows PowerShell 6.0 e versões mais recentes são executados no.NET Core. Você pode verificar qual versão do .NET Core está sendo usada executando o comando a seguir.

```
[System.Reflection.Assembly]::GetEntryAssembly().GetCustomAttributes([System.Runtime.Versioning.TargetFrameworkAttribute], $true).FrameworkName
```

Siga as instruções fornecidas anteriormente em relação à versão relevante do.NET Core AWS SDK para .NET e à respectiva.

## Xamarin
<a name="enforcing-tls-xamarin"></a>

[Para o Xamarin, veja as instruções em -layer-security. https://learn.microsoft.com/en-us/ xamarin/cross-platform/app-fundamentals/transport](https://learn.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/transport-layer-security) Em resumo:

**Para Android**
+ Requer o Android 5.0 ou posterior.
+ **Propriedades do projeto**, **opções do Android**: a HttpClient implementação deve ser definida como **Android** e a SSL/TLS implementação definida como **TLS 1.2\+ nativo**.

**Para iOS**
+ Requer o iOS 7 ou posterior.
+ **Propriedades do projeto**, **versão iOS**: HttpClient a implementação deve ser definida como **NSUrlSessão**.

**No macOS**
+ Requer o macOS 10.9 ou posterior.
+ **Opções do projeto**, **compilação**, **compilação do Mac**: HttpClient a implementação deve ser definida como **NSUrlSessão**.

## Unity
<a name="enforcing-tls-unity"></a>

Você deve usar o Unity 2018.2 ou posterior e usar o tempo de execução de scripts equivalente ao .NET 4.x. Você pode definir isso em **Configurações do projeto**, **Configuração**, **Player**, conforme descrito em [https://docs.unity3d.com/2019.1/Documentation/Manual/ScriptingRuntimeUpgrade.html.](https://docs.unity3d.com/2019.1/Documentation/Manual/ScriptingRuntimeUpgrade.html) O tempo de execução de script equivalente do.NET 4.x permite o suporte ao TLS 1.2 em todas as plataformas Unity que executam Mono ou CPP. IL2 

## Navegador (para Blazor) WebAssembly
<a name="enforcing-tls-browser"></a>

WebAssembly é executado no navegador em vez de no servidor e usa o navegador para lidar com o tráfego HTTP. Portanto, o suporte a TLS é determinado pelo suporte do navegador.

[O Blazor WebAssembly, na versão prévia do ASP.NET Core 3.1, é suportado somente em navegadores que oferecem suporte WebAssembly, conforme descrito em -platforms. https://learn.microsoft.com/en-us/ aspnet/core/blazor/supported](https://learn.microsoft.com/en-us/aspnet/core/blazor/supported-platforms) Todos os principais navegadores eram compatíveis com o TLS 1.2 antes do suporte. WebAssembly Se esse for o caso do seu navegador, se o seu aplicativo for executado, ele poderá se comunicar por TLS 1.2.

Consulte a documentação do seu navegador para obter mais informações e verificação.