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 OSS tanpa server Valkey atau Redis mengaktifkan enkripsi dalam transit. Untuk kluster yang dirancang sendiri, Anda dapat mengaktifkan enkripsi dalam transit pada grup replikasi dengan menyetel 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, AWS CLI, atau. ElastiCache API

Semua cache nirserver memiliki enkripsi bergerak yang aktif. Untuk cluster yang dirancang sendiri, Anda dapat mengaktifkan enkripsi in-transit pada cluster cache dengan menyetel parameter TransitEncryptionEnabled ke true (CLI:--transit-encryption-enabled) saat Anda membuat cluster 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 node 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 OSS AUTH fitur Valkey dan Redis, 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 OSS Redis versi 7 dan yang lebih baru.

  • Enkripsi dalam transit hanya didukung 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 caching Anda mendukung TLS konektivitas 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 dalam transit mendukung Transport Layer Security (TLS) versi 1.2 dan 1.3.

  • Enkripsi dalam transit hanya didukung untuk cluster 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 caching Anda mendukung TLS konektivitas 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 mahal, Anda dapat mengurangi dampak kinerja enkripsi dalam transit dengan mempertahankan koneksi AndaTLS.

Opsi Valkey dan OSS Redis lebih lanjut

Untuk informasi lebih lanjut tentang opsi yang tersedia untuk Valkey dan RedisOSS, 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 node ElastiCache (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 TLS Memcached menggunakan Java

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

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 TLS Memcached menggunakan PHP

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

<?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 lebih lanjut tentang menggunakan PHP klien, lihatMenginstal ElastiCache cluster client untuk PHP.