AWSSDK for RubyでTLS の最小バージョンを強制する
AWS SDK for Ruby と AWS 間の通信は、Secure Sockets Layer (SSL) または Transport Layer Security (TLS) を使用して保護されます。SSL のすべてのバージョン、および 1.2 より前の TLS バージョンには、AWS との通信のセキュリティを侵害する可能性のある脆弱性があります。このため、TLS バージョン 1.2 以降をサポートする Ruby のバージョンを持つ AWS SDK for Ruby を使用していることを確認する必要があります。
Ruby は OpenSSL ライブラリを使用して HTTP 接続を保護します。システムパッケージマネージャーyum、apt など)、公式インストーラ
サポートされているバージョンの Ruby を OpenSSL 1.0.1 以降とともに使用している場合、AWS SDK for Ruby は TLS 1.2 を優先し、クライアントとサーバーの両方でサポートされている最新バージョンの SSL または TLS を使用します。これは、AWS のサービス では常に TLS 1.2 以上です。(SDK は、use_ssl=true で Ruby Net::HTTP クラスを使用します)。
OpenSSL バージョンの確認
Ruby のインストール環境で OpenSSL 1.0.1 以降が使用されていることを確認するには、次のコマンドを入力します。
ruby -r openssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL バージョンを取得する別の方法として、openssl 実行可能ファイルに直接クエリを実行できます。最初に、次のコマンドを使用して、適切な実行可能ファイルを検索します。
ruby -r rbconfig -e 'puts RbConfig::CONFIG["configure_args"]'
出力には OpenSSL インストール環境の場所を示す --with-openssl-dir=/path/to/openssl が含まれています。このパスを書き留めておきます。OpenSSL のバージョンを確認するには、次のコマンドを入力します。
cd /path/to/openssl bin/openssl version
この後者の方法は、Ruby の一部のインストール環境では動作しない可能性があります。
TLS サポートのアップグレード
Ruby インストール環境で使用されている OpenSSL のバージョンが 1.0.1 より前の場合は、Ruby のインストールガイド./configure の実行時に --with-openssl-dir=/path/to/upgraded/openssl を渡します。