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

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

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

最小 TLS バージョンを強制する

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

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

重要

2024 年 6 月 10 日現在、TLS 1.3 が各 AWS リージョン AWS のサービス API エンドポイントで利用可能であることを発表しました。v3 AWS SDK for JavaScript は TLS バージョン自体をネゴシエートしません。代わりに、https.Agent を介して設定可能な Node.js によって決定される TLS バージョンを使用します。 AWS では、現在の Active LTS バージョンの Node.js を使用することをお勧めします。

Node.js での TLS の検証と適用

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

Node.js 12.0.0 以降では、TLS 1.3 をサポートする OpenSSL 1.1.1b 以降のバージョンが使用されます。Node.js は、使用可能な場合はデフォルトで 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 バージョンを確認できます。

import tls from "tls"; console.log("Supported TLS versions:", tls.DEFAULT_MIN_VERSION + " to " + tls.DEFAULT_MAX_VERSION);

最後のコマンドは、次の例に示すようにデフォルトの最小および最大の TLS のバージョンを出力します。

Supported TLS versions: TLSv1.2 to TLSv1.3

TLS の最小バージョンの指定

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

コマンドラインから TLS の最小バージョンを指定するには、Node.js バージョン 11.4.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 バージョンを指定するには、次の例に示すように、minVersion パラメータを使用してプロトコルを指定します。

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( { minVersion: 'TLSv1.2' } ) }) });
Enforce TLS 1.3

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

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

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

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( { minVersion: 'TLSv1.3' } ) }) });

ブラウザスクリプトでの TLS の検証と適用

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

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

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

  3. [セキュリティ] まで下にスクロールし、[TLS 1.2 の使用] チェックボックスを手動でオンにします。

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

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

Microsoft Edge
  1. Windows メニューの検索ボックスに、「インターネットオプション」と入力します。

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

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

  4. [TLS 1.2 の使用] チェックボックスをオンにします。

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

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

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

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

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

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

  6. [セキュリティ] まで下にスクロールし、[TLS 1.2 の使用] チェックボックスを手動でオンにします。

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

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

Mozilla Firefox
  1. Firefox を開きます。

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

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

  4. TLS 1.2 プロトコルをデフォルトに指定するには、整数値を 3 に設定します。

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

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

Apple Safari

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

v3 リクエストでの TLS AWS SDK for JavaScript バージョンの取得

AWS SDK リクエストで使用される TLS バージョンは、次のスクリプトを使用してログに記録できます。

import { S3Client, ListBucketsCommand } from "@aws-sdk/client-s3"; import tls from "tls"; const client = new S3Client({ region: "us-east-1" }); const tlsSocket = new tls.TLSSocket(); client.middlewareStack.add((next, context) => async (args) => { console.log(`Using TLS version: ${tlsSocket.getProtocol()}`); return next(args); });

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

Using TLS version: TLSv1.3