ElastiCache enkripsi dalam transit (TLS) - Amazon ElastiCache

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

ElastiCache enkripsi dalam transit (TLS)

Untuk membantu menjaga keamanan data Anda, Amazon ElastiCache dan Amazon EC2 menyediakan mekanisme untuk mencegah akses data Anda yang tidak sah di server. Dengan menyediakan kemampuan enkripsi dalam perjalanan, ElastiCache memberi Anda alat yang dapat Anda gunakan untuk membantu melindungi data Anda saat berpindah dari satu lokasi ke lokasi lain.

Semua cache tanpa server Valkey atau Redis OSS memiliki enkripsi dalam transit yang diaktifkan. Untuk klaster yang dirancang sendiri, Anda dapat mengaktifkan enkripsi bergerak pada grup replikasi dengan menetapkan parameter TransitEncryptionEnabled ke true (CLI: --transit-encryption-enabled) saat Anda membuat grup replikasi. Anda dapat melakukan ini apakah Anda membuat grup replikasi menggunakan AWS Management Console, the AWS CLI, atau ElastiCache API.

Semua cache nirserver memiliki enkripsi bergerak yang aktif. Untuk klaster yang dirancang sendiri, Anda dapat mengaktifkan enkripsi bergerak pada klaster cache dengan mengatur parameter TransitEncryptionEnabled ke true (CLI: --transit-encryption-enabled) saat Anda membuat klaster cache menggunakan operasi CreateCacheCluster (CLI: create-cache-cluster).

Gambaran umum enkripsi bergerak

Enkripsi ElastiCache in-transit Amazon adalah fitur yang memungkinkan Anda meningkatkan keamanan data Anda di titik yang paling rentan — saat transit dari satu lokasi ke lokasi lain. Karena diperlukan beberapa pemrosesan untuk mengenkripsi dan mendekripsi data di titik akhir, mengaktifkan enkripsi bergerak dapat memberikan beberapa dampak pada performa. Anda harus menolok ukur data Anda dengan dan tanpa enkripsi bergerak untuk menentukan dampak terhadap performa pada kasus penggunaan Anda.

ElastiCache enkripsi in-transit mengimplementasikan fitur-fitur berikut:

  • Koneksi klien terenkripsi—koneksi klien ke simpul cache dienkripsi TLS.

  • Koneksi server terenkripsi—data yang bergerak antarsimpul dalam klaster dienkripsi.

  • Autentikasi server—Klien dapat mengautentikasi bahwa koneksinya dilakukan ke server yang benar.

  • Otentikasi klien —menggunakan fitur Valkey dan Redis OSS AUTH, server dapat mengautentikasi klien.

Kondisi enkripsi dalam transit (Valkey dan Redis OSS)

Kendala berikut pada enkripsi ElastiCache in-transit Amazon harus diingat ketika Anda merencanakan implementasi cluster yang dirancang sendiri:

  • Enkripsi dalam transit didukung pada grup replikasi yang menjalankan Valkey 7.2 dan yang lebih baru, dan Redis OSS versi 3.2.6, 4.0.10 dan yang lebih baru.

  • Memodifikasi pengaturan enkripsi dalam transit, untuk klaster yang ada, didukung pada grup replikasi yang menjalankan Valkey 7.2 dan yang lebih baru, dan Redis OSS versi 7 dan yang lebih baru.

  • Enkripsi bergerak didukung hanya untuk grup replikasi yang berjalan di Amazon VPC.

  • Enkripsi dalam transit tidak didukung untuk grup replikasi yang menjalankan tipe node berikut: M1, M2.

    Untuk informasi selengkapnya, lihat Jenis simpul yang didukung.

  • Enkripsi in-transit diaktifkan dengan menetapkan parameter TransitEncryptionEnabled menjadi true secara eksplisit.

  • Pastikan klien cache Anda mendukung konektivitas TLS dan Anda telah mengaktifkannya dalam konfigurasi klien.

  • Penggunaan TLS 1.0 dan TLS 1.1 lama tidak digunakan lagi di semua AWS Wilayah untuk ElastiCache versi 6 ke atas. ElastiCache akan terus mendukung TLS 1.0 dan 1.1 hingga 8 Mei 2025. Pelanggan harus memperbarui perangkat lunak klien mereka sebelum tanggal tersebut.

Kondisi enkripsi dalam transit (Memcached)

Kendala berikut pada enkripsi ElastiCache in-transit Amazon harus diingat ketika Anda merencanakan implementasi cluster yang dirancang sendiri:

  • Enkripsi bergerak didukung pada klaster yang menjalankan Memcached versi 1.6.12 atau yang lebih baru.

  • Enkripsi bergerak mendukung Keamanan Lapisan Pengangkutan (TLS) versi 1.2 dan 1.3.

  • Enkripsi bergerak didukung hanya untuk klaster yang berjalan di Amazon VPC.

  • Enkripsi dalam transit tidak didukung untuk grup replikasi yang menjalankan jenis node berikut: M1, M2, M3, R3, T2.

    Untuk informasi selengkapnya, lihat Jenis simpul yang didukung.

  • Enkripsi bergerak diaktifkan dengan menetapkan parameter TransitEncryptionEnabled ke true secara eksplisit.

  • Anda dapat mengaktifkan enkripsi bergerak pada klaster hanya saat pembuatan klaster. Anda tidak dapat mengaktifkan dan menonaktifkan enkripsi bergerak dengan mengubah klaster.

  • Pastikan klien cache Anda mendukung konektivitas TLS dan Anda telah mengaktifkannya dalam konfigurasi klien.

Praktik terbaik enkripsi bergerak

  • Karena pemrosesan diperlukan untuk mengenkripsi dan mendekripsi data di titik akhir, menerapkan enkripsi bergerak dapat mengurangi performa. Lakukan tolok ukur terhadap enkripsi bergerak dibandingkan dengan tanpa enkripsi pada data Anda sendiri untuk menentukan dampaknya terhadap performa untuk implementasi Anda.

  • Karena membuat koneksi baru bisa menghabiskan banyak daya komputasi, Anda dapat mengurangi dampak enkripsi bergerak pada performa dengan mempersistensi koneksi TLS Anda.

Opsi Valkey dan Redis OSS lebih lanjut

Untuk informasi lebih lanjut tentang opsi yang tersedia untuk Valkey dan Redis OSS, lihat tautan berikut.

Mengaktifkan enkripsi dalam transit untuk Memcached

Untuk mengaktifkan enkripsi bergerak saat membuat klaster Memcached menggunakan Konsol Manajemen AWS , buat pilihan berikut:

  • Pilih Memcached sebagai mesin Anda.

  • Pilih versi mesin 1.6.12 atau yang lebih baru.

  • Pada Enkripsi bergerak, pilih Aktifkan.

Untuk step-by-step prosesnya, lihatMembuat cluster untuk Valkey atau Redis OSS.

Menghubungkan ke node diaktifkan dengan enkripsi dalam transit menggunakan Openssl (Memcached)

Untuk mengakses data dari ElastiCache node Memcached yang diaktifkan dengan enkripsi dalam transit, Anda perlu menggunakan klien yang bekerja dengan Secure Socket Layer (SSL). Anda juga dapat menggunakan s_client Openssl di Amazon Linux dan Amazon Linux 2.

Untuk menggunakan s_client Openssl untuk terhubung ke klaster Memcached dengan enkripsi bergerak diaktifkan di Amazon Linux 2 atau Amazon Linux:

/usr/bin/openssl s_client -connect memcached-node-endpoint:memcached-port

Membuat klien Memcached TLS menggunakan Java

Untuk membuat klien dalam mode TLS, lakukan hal berikut untuk menginisialisasi klien dengan yang sesuai: SSLContext

import java.security.KeyStore; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManagerFactory; import net.spy.memcached.AddrUtil; import net.spy.memcached.ConnectionFactoryBuilder; import net.spy.memcached.MemcachedClient; public class TLSDemo { public static void main(String[] args) throws Exception { ConnectionFactoryBuilder connectionFactoryBuilder = new ConnectionFactoryBuilder(); // Build SSLContext TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init((KeyStore) null); SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, tmf.getTrustManagers(), null); // Create the client in TLS mode connectionFactoryBuilder.setSSLContext(sslContext); MemcachedClient client = new MemcachedClient(connectionFactoryBuilder.build(), AddrUtil.getAddresses("mycluster.fnjyzo.cfg.use1.cache.amazonaws.com:11211")); // Store a data item for an hour. client.set("theKey", 3600, "This is the data value"); } }

Membuat klien Memcached TLS menggunakan PHP

Untuk membuat klien dalam mode TLS, lakukan hal berikut untuk menginisialisasi klien dengan yang sesuai: SSLContext

<?php /** * Sample PHP code to show how to create a TLS Memcached client. In this example we * will use the Amazon ElastiCache Auto Descovery feature, but TLS can also be * used with a Static mode client. * See Using the ElastiCache Cluster Client for PHP (https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/AutoDiscovery.Using.ModifyApp.PHP.html) for more information * about Auto Discovery and persistent-id. */ /* Configuration endpoint to use to initialize memcached client. * this is only an example */ $server_endpoint = "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com"; /* Port for connecting to the cluster. * This is only an example */ $server_port = 11211; /* Initialize a persistent Memcached client and configure it with the Dynamic client mode */ $tls_client = new Memcached('persistent-id'); $tls_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::DYNAMIC_CLIENT_MODE); /* Add the memcached's cluster server/s */ $tls_client->addServer($server_endpoint, $server_port); /* Configure the client to use TLS */ if(!$tls_client->setOption(Memcached::OPT_USE_TLS, 1)) { echo $tls_client->getLastErrorMessage(), "\n"; exit(1); } /* Set your TLS context configurations values. * See MemcachedTLSContextConfig in memcached-api.php for all configurations */ $tls_config = new MemcachedTLSContextConfig(); $tls_config->hostname = '*.mycluster.fnjyzo.use1.cache.amazonaws.com'; $tls_config->skip_cert_verify = false; $tls_config->skip_hostname_verify = false; /* Use the created TLS context configuration object to create OpenSSL's SSL_CTX and set it to your client. * Note: These TLS context configurations will be applied to all the servers connected to this client. */ $tls_client->createAndSetTLSContext((array)$tls_config); /* test the TLS connection with set-get scenario: */ /* store the data for 60 seconds in the cluster. * The client will decide which cache host will store this item. */ if($tls_client->set('key', 'value', 60)) { print "Successfully stored key\n"; } else { echo "Failed to set key: ", $tls_client->getLastErrorMessage(), "\n"; exit(1); } /* retrieve the key */ if ($tls_client->get('key') === 'value') { print "Successfully retrieved key\n"; } else { echo "Failed to get key: ", $tls_client->getLastErrorMessage(), "\n"; exit(1); }

Untuk informasi selengkapnya tentang menggunakan klien PHP, lihat Menginstal klien ElastiCache cluster untuk PHP.