で最小TLSバージョンを適用する AWS SDK for .NET - AWS SDK for .NET

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

で最小TLSバージョンを適用する AWS SDK for .NET

AWS サービスと通信する際のセキュリティを強化するには、1.2 TLS 以降を使用する AWS SDK for .NET ように を設定する必要があります。

AWS SDK for .NET は、基盤となる .NET ランタイムを使用して、使用するセキュリティプロトコルを決定します。デフォルトでは、 の最新バージョンです。NETオペレーティングシステムがサポートする最新の設定済みプロトコルを使用します。アプリケーションはこのSDK動作を上書きできますが、上書きすることはお勧めしません

。NET コア

デフォルトでは、 です。NET Core は、オペレーティングシステムがサポートする最新の設定済みプロトコルを使用します。 AWS SDK for .NET は、この動作を上書きする機構を提供していません。

を使用している場合。NET 2.1 より前のコアバージョンでは、 をアップグレードすることを強くお勧めします。NET コアバージョン。

オペレーティングシステムごとの固有の情報については、以下を参照してください。

Windows

Windows の最新のディストリビューションでは、デフォルトで TLS 1.2 サポートが有効になっています。 https://learn.microsoft.com/en-us/windows/win32/secauthn/protocols-in-tls-ssl--schannel-ssp-Windows 7 SP1または Windows Server 2008 R2 で実行している場合はSP1、Windows-server/security/tls/#tls-12 TLS で説明されているように、レジストリで 1.2 サポートが有効になっていることを確認する必要があります。 https://learn.microsoft.com/en-us/tls-registry-settings以前のディストリビューションを実行している場合は、オペレーティングシステムをアップグレードする必要があります。Windows TLS での 1.3 サポートの詳細については、必要な最小限のクライアントまたはサーバーバージョンに関する最新の Microsoft ドキュメントを参照してください。

macOS

を実行している場合。NET Core 2.1 以降、1.2 TLS はデフォルトで有効になっています。TLS 1.2 は OS X Mavericks v10.9 以降でサポートされています。。NET コアバージョン 2.1 以降では、https://learn.microsoft.com/en-us/dotnet/core/install/windows?tabs=net80&pivots=os-macos で説明されているように、macOS の新しいバージョンが必要です。

を使用している場合。NET Core 1.0、。NET Core は、個別にインストールする必要がある依存関係である macOS で OpenSSL を使用します。OpenSSL では、バージョン TLS 1.0.1 で 1.2 のサポートが追加され、バージョン TLS 1.1.1 で 1.3 のサポートが追加されました。

Linux

。NET Core on Linux にはSSL、多くの Linux ディストリビューションにバンドルされている Open が必要です。別個にインストールすることもできます。OpenSSL では、バージョン TLS 1.0.1 で 1.2 のサポートが追加され、バージョン TLS 1.1.1 で 1.3 のサポートが追加されました。の最新バージョンを使用している場合。NET Core (2.1 以降) と がパッケージマネージャーをインストールしているため、より新しいバージョンの Open SSLがインストールされている可能性があります。

これを調べるには、ターミナルで openssl version を実行し、バージョンが 1.0.1 より新しいことを確認します。

。NET フレームワーク

の最新バージョンを実行している場合。NET フレームワーク (4.7 以降) と Windows の最新バージョン (クライアントの場合は少なくとも Windows 8、サーバーの場合は Windows Server 2012 以降) では、1.2 TLS が有効になり、デフォルトで使用されます。

を使用している場合。NET オペレーティングシステム設定を使用しないフレームワークランタイム (。NET フレームワーク 3.5 から 4.5.2) では、 AWS SDK for .NET は 1.1 TLS と TLS 1.2 のサポートをサポートされているプロトコルに追加しようとします。を使用している場合。NET Framework 3.5 では、次のように、適切なホットパッチがインストールされている場合にのみ成功します。

  • Windows 10 バージョン 1511 および Windows Server 2016 – KB3156421

  • Windows 8.1 および Windows Server 2012 R2 – KB3154520

  • Windows Server 2012 – KB3154519

  • Windows 7 SP1および Server 2008 R2 SP1 – KB3154518

警告

2024 年 8 月 15 日以降、 AWS SDK for .NET は のサポートを終了します。NET Framework 3.5 および では、最小 が変更されます。NET 4.7.2 へのフレームワークバージョン。詳細については、ブログ記事の「 で予定されている重要な変更」を参照してください。NET のフレームワーク 3.5 および 4.5 ターゲット AWS SDK for .NET

アプリケーションが新しい で実行されている場合。NET Windows 7 SP1または Windows Server 2008 R2 のフレームワークではSP1、Windows-server/security/tls/#tls-12 TLS で説明されているように、レジストリで 1.2 サポートが有効になっていることを確認する必要があります。 https://learn.microsoft.com/en-us/tls-registry-settings新しいバージョンの Windows の場合、これはデフォルトで有効になっています。

TLS で を使用するための詳細なベストプラクティスについては、「」を参照してください。NET Framework については、https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls」の「Microsoft 記事」を参照してください。

AWS Tools for PowerShell

AWS Tools for PowerShell AWS サービスへのすべての呼び出し AWS SDK for .NET に を使用します。環境の動作は、次のように実行中の Windows PowerShell のバージョンによって異なります。

Windows PowerShell 2.0 から 5.x

Windows PowerShell 2.0 から 5.x は で実行されます。NET フレームワーク。次のコマンド PowerShell を使用して、 によって使用されている NET. ランタイム (2.0 または 4.0) を確認できます。

$PSVersionTable.CLRVersion

Windows PowerShell 6.0

Windows PowerShell 6.0 以降は で実行されます。NET コア。のバージョンを確認できます。NET Core は、次のコマンドを実行して使用されています。

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

AWS SDK for .NET および関連するバージョンの については、前述の指示に従ってください。NET コア。

Xamarin

Xamarin については、https://learn.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/transport-layer-security の指示を参照してください。要約は、以下のとおりです。

Android の場合

  • Android 5.0 以降が必要です。

  • プロジェクトプロパティ Android オプション : HttpClient 実装は Android に設定され、SSL/TLS 実装はネイティブ TLS 1.2+ に設定する必要があります。

iOS の場合

  • iOS 7 以降が必要です。

  • プロジェクトプロパティ iOS ビルド : HttpClient 実装は に設定する必要がありますNSUrlSession

macOS の場合

  • macOS 10.9 以降が必要です。

  • プロジェクトオプション ビルド Mac ビルド : HttpClient 実装は に設定する必要がありますNSUrlSession

Unity

Unity 2018.2 以降を使用し、 を使用する必要があります。NET 4.x 同等のスクリプティングランタイム。これは、 https://docs.unity3d.com/2019.1/ドキュメント/マニュアル/ScriptingRuntimeUpgrade.html で説明されているように、プロジェクト設定設定 、プレイヤー で設定できます。。NET 4.x 等価スクリプティングランタイムは、Mono または を実行するすべての Unity プラットフォームに対して TLS 1.2 サポートを有効にしますIL2CPP。

ブラウザ (Blazor 用 WebAssembly)

WebAssembly はサーバーではなくブラウザで実行され、HTTPトラフィックの処理にブラウザを使用します。したがって、TLSサポートはブラウザのサポートによって決まります。

Blazor WebAssembly、 のプレビュー。 ASPNET Core 3.1 は、https://learn.microsoft.com/en-us/aspnet/core/blazor/supported-platforms で説明されているように WebAssembly、 をサポートするブラウザでのみサポートされています。をサポートする前に、すべてのメインストリームブラウザが TLS 1.2 をサポートしました WebAssembly。これがブラウザの場合、アプリケーションが実行されると、1.2 TLS 経由で通信できます。

詳細と検証については、ブラウザのドキュメントを参照してください。