

 [Panduan Referensi API AWS SDK untuk JavaScript V3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) menjelaskan secara rinci semua operasi API untuk AWS SDK untuk JavaScript versi 3 (V3). 

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

# Menerapkan versi TLS minimum
<a name="enforcing-tls"></a>

Untuk menambahkan peningkatan keamanan saat berkomunikasi dengan AWS layanan, konfigurasikan AWS SDK untuk JavaScript untuk menggunakan TLS 1.2 atau yang lebih baru. 

Transport Layer Security (TLS) adalah protokol yang digunakan oleh browser web dan aplikasi lain untuk memastikan privasi dan integritas data yang dipertukarkan melalui jaringan.

**penting**  
Mulai 10 Juni 2024, kami [mengumumkan](https://aws.amazon.com/blogs//security/faster-aws-cloud-connections-with-tls-1-3/) bahwa TLS 1.3 tersedia di titik akhir API AWS layanan di setiap Wilayah. AWS AWS SDK untuk JavaScript V3 tidak menegosiasikan versi TLS itu sendiri. Sebaliknya, ia menggunakan versi TLS yang ditentukan oleh Node.js, yang dapat dikonfigurasi melalui. `https.Agent` AWS merekomendasikan menggunakan versi Active LTS Node.js saat ini.

## Verifikasi dan terapkan TLS di Node.js
<a name="node-verify-enforce-tls"></a>

Saat Anda menggunakan AWS SDK untuk JavaScript with Node.js, layer keamanan Node.js yang mendasarinya digunakan untuk mengatur versi TLS.

Node.js 12.0.0 dan yang lebih baru menggunakan versi minimum OpenSSL 1.1.1b, yang mendukung TLS 1.3. Node.js default untuk menggunakan TLS 1.3 bila tersedia. Anda dapat secara eksplisit menentukan versi yang berbeda jika diperlukan.

### Verifikasi versi OpenSSL dan TLS
<a name="verify-tls-version"></a>

Untuk mendapatkan versi OpenSSL yang digunakan oleh Node.js di komputer Anda, jalankan perintah berikut.

```
node -p process.versions
```

Versi OpenSSL dalam daftar adalah versi yang digunakan oleh Node.js, seperti yang ditunjukkan pada contoh berikut.

```
openssl: '1.1.1b'
```

Untuk mendapatkan versi TLS yang digunakan oleh Node.js di komputer Anda, jalankan shell Node dan jalankan perintah berikut, secara berurutan.

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

Perintah terakhir menampilkan versi TLS, seperti yang ditunjukkan pada contoh berikut.

```
'TLSv1.3'
```

Node.js default untuk menggunakan versi TLS ini, dan mencoba menegosiasikan versi TLS lain jika panggilan tidak berhasil.

### Memeriksa Versi TLS Minimum dan Maksimum yang Didukung
<a name="checking-tls-version-min-max"></a>

Pengembang dapat memeriksa versi TLS minimum dan maksimum yang didukung di Node.js menggunakan skrip berikut:

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

Perintah terakhir menampilkan versi TLS minimum dan maksimum default, seperti yang ditunjukkan pada contoh berikut.

```
Supported TLS versions: TLSv1.2 to TLSv1.3
```

### Menerapkan versi minimum TLS
<a name="enforce-tls-version"></a>

Node.js menegosiasikan versi TLS saat panggilan gagal. Anda dapat menerapkan versi TLS minimum yang diizinkan selama negosiasi ini, baik saat menjalankan skrip dari baris perintah atau per permintaan dalam kode Anda. JavaScript 

Untuk menentukan versi TLS minimum dari baris perintah, Anda harus menggunakan Node.js versi 11.4.0 atau yang lebih baru. Untuk menginstal versi Node.js tertentu, pertama instal Node Version Manager (nvm) menggunakan langkah-langkah yang ditemukan di [Node version manager menginstal dan memperbarui](https://github.com/nvm-sh/nvm#installing-and-updating). Kemudian jalankan perintah berikut untuk menginstal dan menggunakan versi tertentu dari Node.js. 

```
nvm install 11
nvm use 11
```

------
#### [ Enforce TLS 1.2 ]

Untuk menegakkan bahwa TLS 1.2 adalah versi minimum yang diizinkan, tentukan `--tls-min-v1.2` argumen saat menjalankan skrip Anda, seperti yang ditunjukkan pada contoh berikut.

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

Untuk menentukan versi TLS minimum yang diizinkan untuk permintaan tertentu dalam JavaScript kode Anda, gunakan `minVersion` parameter untuk menentukan protokol, seperti yang ditunjukkan pada contoh berikut.

```
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 ]

Untuk menegakkan bahwa TLS 1.3 adalah versi minimum yang diizinkan, tentukan `--tls-min-v1.3` argumen saat menjalankan skrip Anda, seperti yang ditunjukkan pada contoh berikut.

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

Untuk menentukan versi TLS minimum yang diizinkan untuk permintaan tertentu dalam JavaScript kode Anda, gunakan `minVersion` parameter untuk menentukan protokol, seperti yang ditunjukkan pada contoh berikut.

```
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'
            }
        )
    })
});
```

------

## Verifikasi dan terapkan TLS dalam skrip browser
<a name="browser-verify-enforce-tls"></a>

Saat Anda menggunakan SDK for JavaScript dalam skrip browser, pengaturan browser mengontrol versi TLS yang digunakan. Versi TLS yang digunakan oleh browser tidak dapat ditemukan atau diatur oleh skrip dan harus dikonfigurasi oleh pengguna. Untuk memverifikasi dan menerapkan versi TLS yang digunakan dalam skrip browser, lihat instruksi untuk browser spesifik Anda.

------
#### [ Microsoft Internet Explorer ]

1. Buka **Internet Explorer**.

1. Dari bilah menu, pilih **Tools** - **Internet Options** - **Advanced** tab.

1. Gulir ke bawah ke kategori **Keamanan**, centang kotak opsi secara manual untuk **Gunakan TLS 1.2**.

1. Klik **OK**.

1. Tutup browser Anda dan mulai ulang Internet Explorer.

------
#### [ Microsoft Edge ]

1. Di kotak pencarian menu Windows, ketik*Internet options*.

1. Di bawah **Best match**, klik **Internet Options**.

1. Di jendela **Internet Properties**, pada tab **Advanced**, gulir ke bawah ke bagian **Keamanan**.

1. Centang kotak centang **User TLS 1.2**.

1. Klik **OK**.

------
#### [ Google Chrome ]

1. Buka **Google Chrome**.

1. Klik **Alt F** dan pilih **Pengaturan**.

1. Gulir ke bawah dan pilih **Tampilkan pengaturan lanjutan...** .

1. Gulir ke bawah ke bagian **Sistem** dan klik **Buka pengaturan proxy...** .

1. Pilih tab **Advanced**.

1. Gulir ke bawah ke kategori **Keamanan**, centang kotak opsi secara manual untuk **Gunakan TLS 1.2**.

1. Klik **OK**.

1. Tutup browser Anda dan mulai ulang Google Chrome.

------
#### [ Mozilla Firefox ]

1. Buka **Firefox**.

1. Di bilah alamat, ketik **about:config** dan tekan Enter.

1. Di bidang **Pencarian**, masukkan **tls.** Temukan dan klik dua kali entri untuk **security.tls.version.min**.

1. Atur nilai integer ke 3 untuk memaksa protokol TLS 1.2 menjadi default.

1. Klik **OK**.

1. Tutup browser Anda dan mulai ulang Mozilla Firefox.

------
#### [ Apple Safari ]

Tidak ada opsi untuk mengaktifkan protokol SSL. Jika Anda menggunakan Safari versi 7 atau lebih tinggi, TLS 1.2 diaktifkan secara otomatis.

------

## Mengambil Versi TLS di Permintaan v3 AWS SDK untuk JavaScript
<a name="retrieve-tls-version"></a>

Anda dapat mencatat versi TLS yang digunakan dalam permintaan AWS SDK dengan skrip berikut:

```
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);
});
```

Perintah terakhir menampilkan versi TLS yang digunakan, seperti yang ditunjukkan pada contoh berikut.

```
Using TLS version: TLSv1.3
```