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

AWS SDK for JavaScript V3 APIリファレンスガイドでは、バージョン 3 (V3) のすべてのAPIオペレーションについて詳しく説明しています AWS SDK for JavaScript 。

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

最小TLSバージョンを適用する

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

重要

AWS SDK for JavaScript v3 は、特定の AWS サービスエンドポイントでサポートされている最上位TLSバージョンを自動的にネゴシエートします。オプションで 1TLS.2 や 1.3 など、アプリケーションで必要な最小TLSバージョンを適用できますが、1.3 TLS は一部の AWS サービスエンドポイントではサポートされていないため、1.3 TLS を適用すると一部の呼び出しが失敗する場合があることに注意してください。

Transport Layer Security (TLS) は、ネットワーク経由で交換されるデータのプライバシーと整合性を確保するために、ウェブブラウザやその他のアプリケーションで使用されるプロトコルです。

Node.js TLSでの検証と強制

Node.js AWS SDK for JavaScript で を使用する場合、基盤となる Node.js セキュリティレイヤーを使用してTLSバージョンを設定します。

Node.js 12.0.0 以降では、1.3 をサポートする OpenSSL 1.1.1b TLS の最小バージョンを使用します。 AWS SDK for JavaScript v3 のデフォルトは、使用可能な場合は TLS 1.3 を使用しますが、必要に応じて下位バージョンに設定されます。

OpenSSL と のバージョンを確認する TLS

コンピュータで Node.js が使用する OpenSSL のバージョンを取得するには、次のコマンドを実行します。

node -p process.versions

リスト内の OpenSSL のバージョンは、次の例に示すように、Node.js で使用されるバージョンです。

openssl: '1.1.1b'

コンピュータで Node.js がTLS使用する のバージョンを取得するには、Node シェルを起動し、次のコマンドを順番に実行します。

> var tls = require("tls"); > var tlsSocket = new tls.TLSSocket(); > tlsSocket.getProtocol();

次の例に示すように、最後のコマンドは TLSバージョンを出力します。

'TLSv1.3'

Node.js はデフォルトでこのバージョンの を使用しTLS、呼び出しが成功しなかった場合TLSは別のバージョンの のネゴシエートを試みます。

の最小バージョンを適用する TLS

Node.js は、呼び出しが失敗TLSすると のバージョンをネゴシエートします。このネゴシエーション中に、コマンドラインからスクリプトを実行するとき、または JavaScript コード内のリクエストごとに、許容される最小TLSバージョンを適用できます。

コマンドラインから最小TLSバージョンを指定するには、Node.js バージョン 11.0.0 以降を使用する必要があります。特定の Node.js バージョンをインストールするには、まず「Node Version Managerのインストールと更新」のステップを使用して、Node Version Manager(nvm)をインストールします。続いて、次のコマンドを実行し、特定バージョンの Node.js をインストールして使用します。

nvm install 11 nvm use 11
Enforce TLS 1.2

TLS 1.2 が最小許容バージョンになるようにするには、次の例に示すように、スクリプトの実行時に --tls-min-v1.2引数を指定します。

node --tls-min-v1.2 yourScript.js

JavaScript コード内の特定のリクエストの最小許容TLSバージョンを指定するには、次の例に示すように、 httpOptionsパラメータを使用してプロトコルを指定します。

import https from "https"; import { NodeHttpHandler } from "@smithy/node-http-handler"; import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({ region: "us-west-2", requestHandler: new NodeHttpHandler({ httpsAgent: new https.Agent( { secureProtocol: 'TLSv1_2_method' } ) }) });
Enforce TLS 1.3

TLS 1.3 が許容される最小バージョンになるようにするには、次の例に示すように、スクリプトの実行時に --tls-min-v1.3引数を指定します。

node --tls-min-v1.3 yourScript.js

JavaScript コード内の特定のリクエストの最小許容TLSバージョンを指定するには、次の例に示すように、 httpOptionsパラメータを使用してプロトコルを指定します。

import https from "https"; import { NodeHttpHandler } from "@smithy/node-http-handler"; import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({ region: "us-west-2", requestHandler: new NodeHttpHandler({ httpsAgent: new https.Agent( { secureProtocol: 'TLSv1_3_method' } ) }) });

ブラウザスクリプトTLSで検証して強制する

ブラウザスクリプト JavaScript で SDKの を使用すると、ブラウザの設定によって、使用される のバージョンが制御TLSされます。ブラウザTLSで使用される のバージョンは、スクリプトで検出または設定できず、ユーザーが設定する必要があります。ブラウザスクリプトTLSで使用される のバージョンを検証して適用するには、特定のブラウザの手順を参照してください。

Microsoft Internet Explorer
  1. Internet Explorer を開きます。

  2. メニューバーから、[ツール] - [インターネットオプション] - [詳細設定] タブを選択します。

  3. セキュリティカテゴリまで下にスクロールし、「Use 1TLS.2」のオプションボックスを手動でオンにします。

  4. [OK] をクリックします。

  5. ブラウザを閉じて、Internet Explorer を再起動します。

Microsoft Edge
  1. Windows メニューの検索ボックスに「」と入力しますInternet options

  2. [最も一致する検索結果] で、[インターネットオプション] をクリックします。

  3. [インターネットのプロパティ] ウィンドウの [詳細設定] タブで、[セキュリティ] セクションまで下にスクロールします。

  4. ユーザー 1.2 TLS のチェックボックスをオンにします。

  5. [OK] をクリックします。

Google Chrome
  1. Google Chrome を開きます。

  2. Alt + F キーを押し、[設定] を選択します。

  3. 下にスクロールし、[詳細設定] を選択します。

  4. [システム] まで下にスクロールし、[パソコンのプロキシ設定を開く] をクリックします。

  5. [詳細設定] タブを選択します。

  6. セキュリティカテゴリまでスクロールし、「Use 1TLS.2」のオプションボックスを手動でオンにします。

  7. [OK] をクリックします。

  8. ブラウザを閉じて Google Chrome を再起動します。

Mozilla Firefox
  1. Firefox を開きます。

  2. アドレスバーに「about:config」と入力し、Enter キーを押します。

  3. [検索] フィールドに「tls」と入力します。[security.tls.version.min] のエントリを見つけてダブルクリックします。

  4. 整数値を 3 に設定すると、1.2 TLS のプロトコルがデフォルトになります。

  5. [OK] をクリックします。

  6. ブラウザを閉じて Mozilla Firefox を再起動します。

Apple Safari

SSL プロトコルを有効にするオプションはありません。Safari バージョン 7 以降を使用している場合、1.2 TLS は自動的に有効になります。