

Versi 4 (V4) dari AWS SDK untuk .NET telah dirilis\!

Untuk informasi tentang melanggar perubahan dan memigrasi aplikasi Anda, lihat [topik migrasi](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html).

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menegakkan versi TLS minimum di AWS SDK untuk .NET
<a name="enforcing-tls"></a>

Untuk meningkatkan keamanan saat berkomunikasi dengan AWS layanan, Anda harus mengkonfigurasi AWS SDK untuk .NET untuk menggunakan TLS 1.2 atau yang lebih baru.

 AWS SDK untuk .NET Menggunakan runtime .NET yang mendasarinya untuk menentukan protokol keamanan mana yang akan digunakan. Secara default, versi.NET saat ini menggunakan protokol terkonfigurasi terbaru yang didukung oleh sistem operasi. Aplikasi Anda dapat mengganti perilaku SDK ini, tetapi *tidak disarankan* untuk melakukannya.

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

Secara default, .NET Core menggunakan protokol terkonfigurasi terbaru yang didukung oleh sistem operasi. AWS SDK untuk .NET Tidak menyediakan mekanisme untuk mengesampingkan ini.

Jika Anda menggunakan versi .NET Core lebih awal dari 2.1, kami *sangat* menyarankan Anda meningkatkan versi.NET Core Anda.

Lihat berikut ini untuk informasi spesifik untuk setiap sistem operasi.

**Windows**

Distribusi modern Windows memiliki dukungan TLS 1.2 yang [diaktifkan secara default](https://learn.microsoft.com/en-us/windows/win32/secauthn/protocols-in-tls-ssl--schannel-ssp-). Jika Anda menjalankan Windows 7 SP1 atau Windows Server 2008 R2 SP1, Anda perlu memastikan bahwa dukungan TLS 1.2 diaktifkan di registri, seperti yang dijelaskan di [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). Jika Anda menjalankan distribusi sebelumnya, Anda harus meng-upgrade sistem operasi Anda. Untuk informasi tentang dukungan TLS 1.3 di Windows, periksa dokumentasi Microsoft terbaru untuk versi klien atau server minimum yang diperlukan.

**macOS**

Jika Anda menjalankan .NET Core 2.1 atau yang lebih baru, TLS 1.2 diaktifkan secara default. TLS 1.2 didukung oleh [OS X Mavericks](https://support.apple.com/en-us/103373) v10.9 atau yang lebih baru. [.NET Core versi 2.1 dan yang lebih baru memerlukan versi macOS yang lebih baru, seperti yang dijelaskan di? 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).

Jika Anda menggunakan .NET Core 1.0, .NET Core [menggunakan OpenSSL di macOS, dependensi yang harus diinstal secara](https://github.com/dotnet/announcements/issues/21) terpisah. OpenSSL menambahkan dukungan untuk TLS 1.2 di versi 1.0.1, dan menambahkan dukungan untuk TLS 1.3 di versi 1.1.1.

**Linux**

.NET Core di Linux membutuhkan OpenSSL, yang dibundel dengan banyak distribusi Linux. Tapi itu juga bisa dipasang secara terpisah. OpenSSL menambahkan dukungan untuk TLS 1.2 di versi 1.0.1, dan menambahkan dukungan untuk TLS 1.3 di versi 1.1.1. Jika Anda menggunakan versi modern .NET Core (2.1 atau yang lebih baru) dan telah menginstal manajer paket, kemungkinan versi OpenSSL yang lebih modern diinstal untuk Anda.

Yang pasti, Anda dapat menjalankan **`openssl version`**di terminal dan memverifikasi bahwa versinya lebih lambat dari 1.0.1.

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

Jika Anda menjalankan versi modern.NET Framework (4.7 atau yang lebih baru) dan versi modern Windows (setidaknya Windows 8 untuk klien, Windows Server 2012 atau yang lebih baru untuk server), TLS 1.2 diaktifkan dan digunakan secara default.

Jika Anda menggunakan runtime .NET Framework yang tidak menggunakan pengaturan sistem operasi (.NET Framework 3.5 hingga 4.5.2), AWS SDK untuk .NET akan mencoba [menambahkan dukungan untuk TLS 1.1 dan TLS 1.2](https://github.com/aws/aws-sdk-net/blob/main/sdk/src/Core/Amazon.Runtime/Pipeline/HttpHandler/AmazonSecurityProtocolManager.cs) ke protokol yang didukung. Jika Anda menggunakan .NET Framework 3.5, ini akan berhasil hanya jika hot patch yang sesuai diinstal, sebagai berikut:
+ Windows 10 versi 1511 dan Windows Server 2016 - [KB3156421](https://support.microsoft.com/kb/3156421)
+ Windows 8.1 dan Windows Server 2012 R2 - [KB3154520](https://support.microsoft.com/kb/3154520)
+ Windows Server 2012 — [KB3154519](https://support.microsoft.com/kb/3154519)
+ Windows 7 SP1 dan Server 2008 R2 SP1 - [KB3154518](https://support.microsoft.com/kb/3154518)

**Awas**  
Pada 15 Agustus 2024, dukungan AWS SDK untuk .NET berakhir untuk .NET Framework 3.5 dan mengubah versi.NET Framework minimum menjadi 4.7.2. Untuk informasi lebih lanjut, lihat posting blog [Perubahan penting yang datang untuk target.NET Framework 3.5 dan 4.5 dari AWS SDK untuk .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/).

Jika aplikasi Anda berjalan pada .NET Framework yang lebih baru pada Windows 7 SP1 atau Windows Server 2008 R2 SP1, Anda perlu memastikan bahwa dukungan TLS 1.2 diaktifkan di registri, seperti yang dijelaskan di [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). Versi Windows yang lebih baru telah [mengaktifkannya secara default](https://learn.microsoft.com/en-us/windows/win32/secauthn/protocols-in-tls-ssl--schannel-ssp-).

Untuk praktik terbaik mendetail untuk menggunakan TLS dengan.NET Framework, lihat artikel Microsoft di [https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls](https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls).

## Alat AWS untuk PowerShell
<a name="enforcing-tls-ps"></a>

[Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/)gunakan AWS SDK untuk .NET untuk semua panggilan ke AWS layanan. Perilaku lingkungan Anda tergantung pada versi Windows yang PowerShell Anda jalankan, sebagai berikut.

**Windows PowerShell 2.0 hingga 5.x**

Windows PowerShell 2.0 hingga 5.x berjalan di .NET Framework. Anda dapat memverifikasi runtime.NET mana (2.0 atau 4.0) yang digunakan PowerShell dengan menggunakan perintah berikut.

```
$PSVersionTable.CLRVersion
```
+ Saat menggunakan.NET Runtime 2.0, ikuti petunjuk yang diberikan sebelumnya mengenai AWS SDK untuk .NET dan .NET Framework 3.5.
**Awas**  
Pada 15 Agustus 2024, dukungan AWS SDK untuk .NET berakhir untuk .NET Framework 3.5 dan mengubah versi.NET Framework minimum menjadi 4.7.2. Untuk informasi lebih lanjut, lihat posting blog [Perubahan penting yang datang untuk target.NET Framework 3.5 dan 4.5 dari AWS SDK untuk .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/).
+ Saat menggunakan.NET Runtime 4.0, ikuti petunjuk yang diberikan sebelumnya mengenai AWS SDK untuk .NET dan .NET Framework 4\+.

**Windows PowerShell 6.0**

Windows PowerShell 6.0 dan yang lebih baru berjalan di .NET Core. Anda dapat memverifikasi versi.NET Core mana yang digunakan dengan menjalankan perintah berikut.

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

Ikuti petunjuk yang diberikan sebelumnya mengenai AWS SDK untuk .NET dan versi yang relevan dari.NET Core.

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

[Untuk Xamarin, lihat petunjuk di https://learn.microsoft.com/en-us/ xamarin/cross-platform/app-fundamentals/transport -layer-security.](https://learn.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/transport-layer-security) Ringkasnya:

**Untuk Android**
+ Membutuhkan Android 5.0 atau yang lebih baru.
+ **Properties Proyek**, **Opsi Android**: HttpClient implementasi harus disetel ke **Android** dan SSL/TLS implementasinya disetel ke **Native TLS 1.2\+**.

**Untuk iOS**
+ Membutuhkan iOS 7 atau yang lebih baru.
+ **Properties Project**, **iOS Build**: HttpClient implementasi harus disetel ke **NSUrlSession**.

**Untuk macOS**
+ Memerlukan macOS 10.9 atau yang lebih baru.
+ **Project Options**, **Build**, **Mac Build**: HttpClient implementasi harus diatur ke **NSUrlSession**.

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

Anda harus menggunakan Unity 2018.2 atau yang lebih baru, dan menggunakan runtime scripting .NET 4.x Equivalent. Anda dapat mengatur ini di **Pengaturan Proyek**, **Konfigurasi**, **Pemain**, seperti yang dijelaskan [https://docs.unity3d.com/2019.1/Documentation/Manual/ScriptingRuntimeUpgradedi.html.](https://docs.unity3d.com/2019.1/Documentation/Manual/ScriptingRuntimeUpgrade.html) Runtime scripting Setara .NET 4.x memungkinkan dukungan TLS 1.2 untuk semua platform Unity yang menjalankan Mono atau CPP. IL2 

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

WebAssembly berjalan di browser bukan di server, dan menggunakan browser untuk menangani lalu lintas HTTP. Oleh karena itu, dukungan TLS ditentukan oleh dukungan browser.

[Blazor WebAssembly, dalam pratinjau untuk ASP.NET Core 3.1, hanya didukung di browser yang mendukung WebAssembly, seperti yang dijelaskan di -platform. https://learn.microsoft.com/en-us/ aspnet/core/blazor/supported](https://learn.microsoft.com/en-us/aspnet/core/blazor/supported-platforms) Semua browser mainstream mendukung TLS 1.2 sebelum mendukung. WebAssembly Jika ini adalah kasus untuk browser Anda, maka jika aplikasi Anda berjalan, itu dapat berkomunikasi melalui TLS 1.2.

Lihat dokumentasi browser Anda untuk informasi dan verifikasi selengkapnya.